SMOKE

De Wikicima
(Diferencias entre revisiones)
Saltar a: navegación, buscar
(gcc - debug)
 
(No se muestran 18 ediciones intermedias realizadas por 2 usuarios)
Línea 1: Línea 1:
Instalando y usando SMOKE en hydra
+
Instalando y usando ''Sparse Matrix Operator Kernel Emissions (SMOKE)'' en hydra
   
 
Página de SMOKE: [https://www.cmascenter.org/smoke/ https://www.cmascenter.org/smoke/]
 
Página de SMOKE: [https://www.cmascenter.org/smoke/ https://www.cmascenter.org/smoke/]
Línea 100: Línea 100:
 
== gcc - debug ==
 
== gcc - debug ==
 
Directorio de instalación <code>/home/solange.luque/MODELOS/SMOKE_dbg</code>
 
Directorio de instalación <code>/home/solange.luque/MODELOS/SMOKE_dbg</code>
  +
  +
'''NOTA:''' Todo se tendría que llamar <code>Linux2_x86_64_dbg</code>, pero después no encuentra en la compilación de I/O - API, el <code>ioapi/Makinclude.Linux2_x86_64_dbg</code>, puiesto que sí existe un <code>ioapi/Makinclude.Linux2_x86_64dbg</code> (que rompimos, ver CMAQ gnu - debug). Hacemos ''trampas'', poniéndole el nombre <code>Linux2_x86_64</code>
   
 
Desplegando código
 
Desplegando código
Línea 118: Línea 120:
 
cd src
 
cd src
 
cp Makeinclude Makeinclude.old
 
cp Makeinclude Makeinclude.old
cp Makeinclude Makeinclude.Linux2_x86_64_dbg
+
cp Makeinclude Makeinclude.Linux2_x86_64
 
rm Makeinclude
 
rm Makeinclude
diff Makeinclude.Linux2_x86_64_dbg Makeinclude.old
+
diff Makeinclude.Linux2_x86_64 Makeinclude.old
 
30d29
 
30d29
 
< SMK_HOME = /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src
 
< SMK_HOME = /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src
Línea 148: Línea 150:
 
> # EFLAG = -ffixed-line-length-132 -fno-backslash # GNU Fortran
 
> # EFLAG = -ffixed-line-length-132 -fno-backslash # GNU Fortran
 
60c59
 
60c59
< MFLAGS = -g -Wall -Wextra -Warray-temporaries -Wconversion -fimplicit-none -fbacktrace -fcheck=all -ffpe-trap=zero,overflow,underflow -finit-real=nan
+
< MFLAGS = -g -Wall -Wextra -Warray-temporaries -Wconversion -fimplicit-none -fbacktrace -fcheck=all
  +
-ffpe-trap=zero,overflow,underflow -finit-real=nan
 
---
 
---
 
> MFLAGS = -traceback
 
> MFLAGS = -traceback
Línea 164: Línea 166:
 
/opt/load-libs.sh
 
/opt/load-libs.sh
 
source /opt/env_scripts/load_gnu-10.2.1_openmpi-4.1.2.sh
 
source /opt/env_scripts/load_gnu-10.2.1_openmpi-4.1.2.sh
export BIN=Linux2_x86_64_dbg
+
export BIN=Linux2_x86_64
ln -s Makeinclude.Linux2_x86_64_dbg ./Makeinclude
+
ln -s Makeinclude.Linux2_x86_64 ./Makeinclude
 
make >& run_make.log
 
make >& run_make.log
ls ../Linux2_x86_64_dbg | grep -v .o | grep -v .mod
+
ls ../Linux2_x86_64 | grep -v .o | grep -v .mod
 
aggwndw bluesky2inv cemscan cntlmat extractida gcntl4carb
 
aggwndw bluesky2inv cemscan cntlmat extractida gcntl4carb
 
grdmat grwinven invsplit libfileset.a metscan mrgelev
 
grdmat grwinven invsplit libfileset.a metscan mrgelev
Línea 177: Línea 179:
   
 
Empecemos por el test-case
 
Empecemos por el test-case
  +
  +
== Errores de sistema encontrados ==
   
 
'''NOTA:''' Los shells son todos <code>#!/bin/csh</code>, pero de verdad se utiliza <code>#!/bin/tcsh</code> [https://forum.cmascenter.org/t/source-too-many-arguments-is-not-csh/3679 CMAS Source Too many arguments is not csh!]
 
'''NOTA:''' Los shells son todos <code>#!/bin/csh</code>, pero de verdad se utiliza <code>#!/bin/tcsh</code> [https://forum.cmascenter.org/t/source-too-many-arguments-is-not-csh/3679 CMAS Source Too many arguments is not csh!]
  +
  +
Se tuvo que pedir la instalación de paquetes adicionales:
  +
* GNU arbitrary precision calculator language [https://packages.debian.org/bullseye/bc bc]
  +
* classic UNIX line editor [https://packages.debian.org/bullseye/ed ed]
   
 
== test-case ==
 
== test-case ==
Línea 305: Línea 313:
 
cd ../point
 
cd ../point
 
./Annual_pt_oilgas_onetime_12US1_2017gb_17j_TestCase.csh >& run_Annual_onetime.log
 
./Annual_pt_oilgas_onetime_12US1_2017gb_17j_TestCase.csh >& run_Annual_onetime.log
  +
</pre>
  +
  +
=== gcc - debug ===
  +
Directorio de trabajo: <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg</code>
  +
  +
[https://drive.google.com/drive/folders/18hiiGSlFQ6gWtXmEdkemBwoyUly1dJEV googleDrive]
  +
<pre>
  +
SMOKE-TestCase-BEIS4-inputs.tar.gz-20221026T133036Z-001.zip SMOKE-TestCase-inputs.tar.gz-20221026T133039Z-001.zip
  +
SMOKE-TestCase-BEIS4-output.tar.gz-20221026T133038Z-001.zip SMOKE-TestCase-output.tar.gz-20221026T133041Z-001.zip
  +
</pre>
  +
  +
<pre style="shell">
  +
unzip /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase-BEIS4-inputs.tar.gz-20221026T133036Z-001.zip
  +
unzip /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase-inputs.tar.gz-20221026T133039Z-001.zip
  +
unzip /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase-BEIS4-output.tar.gz-20221026T133038Z-001.zip
  +
unzip /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase-output.tar.gz-20221026T133041Z-001.zip
  +
tar xvfz SMOKE-TestCase-BEIS4-inputs.tar.gz
  +
tar xvfz SMOKE-TestCase-BEIS4-output.tar.gz
  +
tar xvfz SMOKE-TestCase-inputs.tar.gz
  +
tar xvfz SMOKE-TestCase-output.tar.gz
  +
</pre>
  +
  +
Nos queda:
  +
<pre style="shell">
  +
ls
  +
biogenics_output SMOKE-TestCase-BEIS4-inputs.tar.gz
  +
ge_dat SMOKE-TestCase-BEIS4-output.tar.gz
  +
output_forQA SMOKE-TestCase-inputs.tar.gz
  +
smoke4.7 SMOKE-TestCase-output.tar.gz
  +
SMOKE-TestCase
  +
</pre>
  +
  +
Descargamos archivos para simular en <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg</code>
  +
  +
<pre style="shell">
  +
mkdir git
  +
cd git
  +
git clone https://github.com/CEMPD/SMOKE-TestCase.git
  +
ls
  +
SMOKE-TestCase
  +
</pre>
  +
  +
Seteando entorno
  +
<pre style="shell">
  +
/opt/load-libs.sh 3
  +
source /opt/env_scripts/load_gnu-10.2.1_mpich-3.4.2.sh
  +
</pre>
  +
  +
Preparando directorio para simular <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg</code>
  +
<pre style="shell">
  +
cp -R /home/solange.luque/estudios/SMOKE/TestCase_dbg/git/SMOKE-TestCase/scripts ./
  +
cd scripts
  +
diff directory_definitions.csh /home/solange.luque/estudios/SMOKE/TestCase_dbg/git/SMOKE-TestCase/scripts/directory_definitions.csh
  +
13c13
  +
< setenv INSTALL_DIR "/home/solange.luque/estudios/SMOKE/TestCase_dbg"
  +
---
  +
> setenv INSTALL_DIR "/proj/ie/proj/SMOKE/chef"
  +
19c19
  +
< setenv MET_ROOT "/home/solange.luque/estudios/SMOKE/TestCase_dbg/SMOKE-TestCase/inputs/biogenics"
  +
---
  +
> setenv MET_ROOT "/proj/ie/proj/TRECH/emissions/mcip"
  +
24c24
  +
< setenv MET_ROOT_3D "/home/solange.luque/estudios/SMOKE/TestCase_dbg/SMOKE-TestCase/inputs/biogenics"
  +
---
  +
> setenv MET_ROOT_3D "/proj/ie/proj/TRECH/emissions/mcip"
  +
46c46
  +
< setenv SMOKE_LOCATION "/home/solange.luque/MODELOS/SMOKE_dbg/gcc/Linux2_x86_64"
  +
---
  +
> setenv SMOKE_LOCATION "/proj/ie/proj/CMAS/CMAQ/christos/SMOKE_REPO/exec/Linux2_x86_64ifort_medium"
  +
53c53
  +
< setenv IOAPI_LOCATION "/home/solange.luque/libraries/ioapi/v3.2-20200828/gnu/Linux2_x86_64"
  +
---
  +
> setenv IOAPI_LOCATION "/proj/ie/proj/CMAS/CMAQ/christos/SMOKE_test/SMOKE_4.8.1/subsys/ioapi-3.2/Linux2_x86_64ifort_medium"
  +
</pre>
  +
  +
  +
Ajustando scripts al cluster:
  +
<pre type="shell">
  +
$ cat /home/solange.luque/estudios/SMOKE/TestCase_dbg/smoke4.7/scripts/emf/smk_ar_annual_emf.csh | grep py
  +
set log_analyzer = $SCRIPTS/log_analyzer/log_analyzer.py
  +
set path_parser = $SCRIPTS/run/path_parser.py
  +
</pre>
  +
  +
  +
* línea #1 de <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg/smoke4.7/scripts/log_analyzer/log_analyzer.py</code>, <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg/smoke4.7/scripts/run/path_parser.py</code>, <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg/smoke4.7/scripts/annual_report/annual_report_v2.py</code>
  +
<pre style"python">
  +
#!/usr/bin/env python3
  +
</pre>
  +
  +
Error de c-shell en el script <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg/smoke4.7/scripts/run/set_months_v4.csh</code>, sintaxis errónea en dar la cantidad de argumentos: está <code>$#</code> y tiene que ser <code>$#argv</code> [https://www.unix.com/shell-programming-and-scripting/42713-read-number-arguments-c-shell.html web], en línea # 30:
  +
<pre style="shell">
  +
if ( $#argv == 3 ) then
  +
</pre>
  +
  +
En <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg/smoke4.7/scripts/platform</code> está seteado por default la abreviación de intel, así que hay que cambiarlo.
  +
  +
<pre style="fortran">
  +
#set comp_abbrv = ifort
  +
set comp_abbrv = gcc
  +
</pre>
  +
  +
Desde <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg/scripts</code>
  +
<pre style="shell">
  +
mkdir /home/solange.luque/estudios/SMOKE/TestCase_dbg/scripts/logs
  +
cd nonpoint/
  +
./Annual_np_oilgas_12US1_2017gb_17j_TestCase.csh >& run_nonpoint.log
  +
</pre>
  +
  +
Nota: Antes de correr, si no es la primera vez que se lo hace, hay que borrar el log <code>timelog_np_oilgas_SMOKE-TestCase_12US1_all.txt</code> que está en <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg/SMOKE-TestCase/intermed/np_oilgas/logs
  +
</code>. Sino, el programa timetracker tira error de que tiene multiple primary keys disponibles.
  +
  +
<pre style="shell">
  +
rm /home/solange.luque/estudios/SMOKE/TestCase_dbg/SMOKE-TestCase/intermed/np_oilgas/logs/timelog_np_oilgas_SMOKE-TestCase_12US1_all.txt
  +
</pre>
  +
  +
Mensaje de error en <code>run_nonpoint.log</code>
  +
  +
<pre style="shell">
  +
(...)
  +
At line 1902 of file /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/wrrephdr.f
  +
Fortran runtime error: Index '20' of dimension 1 of array 'outdnam' above upper bound of 19
  +
  +
Error termination. Backtrace:
  +
#0 0x14e579400bd0 in ???
  +
#1 0x14e579401685 in ???
  +
#2 0x14e579401c76 in ???
  +
#3 0x55e8e8e454dc in wrrephdr_
  +
at /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/wrrephdr.f:1902
  +
#4 0x55e8e8e3a2e9 in smkreport
  +
at /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/smkreport.f:406
  +
#5 0x55e8e8df5978 in main
  +
at /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/smkreport.f:47
  +
SMOKE ---------------
  +
Copyright (c)2004 Environmental Modeling for Policy Development
  +
(...)
  +
</pre>
  +
  +
Correr el siguiente sector:
  +
<pre style="shell">
  +
cd ../point
  +
./Annual_pt_oilgas_onetime_12US1_2017gb_17j_TestCase.csh >& run_Annual_onetime.log
  +
</pre>
  +
  +
Mismo mensaje de error que en <code>nonpoint</code> en <code>run_Annual_onetime.log</code>:
  +
  +
<pre style="shell">
  +
(...)
  +
At line 560 of file /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/bldrepidx.f
  +
Fortran runtime error: Index '20' of dimension 1 of array 'outdnam' above upper bound of 19
  +
  +
Error termination. Backtrace:
  +
#0 0x14f1d4b2bbd0 in ???
  +
#1 0x14f1d4b2c685 in ???
  +
#2 0x14f1d4b2cc76 in ???
  +
#3 0x55d128c00dac in bldrepidx_
  +
at /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/bldrepidx.f:560
  +
#4 0x55d128c2e775 in smkreport
  +
at /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/smkreport.f:179
  +
#5 0x55d128bea978 in main
  +
at /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/smkreport.f:47
  +
SMOKE ---------------
  +
(...)
 
</pre>
 
</pre>
   
Línea 483: Línea 653:
 
77: comment= "US"
 
77: comment= "US"
 
</pre>
 
</pre>
  +
  +
= Uso y manejo =
  +
  +
== Nuevo dominio de simulación ==
  +
Instrucciones Creación de los archivos necesarios para un nuevo dominio de simulación [[/NuevoDominio]] acá

Última revisión de 12:17 14 dic 2022

Instalando y usando Sparse Matrix Operator Kernel Emissions (SMOKE) en hydra

Página de SMOKE: https://www.cmascenter.org/smoke/

Manual de usuarie User's manual v4.5

Contenido

[editar] Compilar

Archivo comprimido desde la página web (bajo registro previo)

smoke_v49.Linux2_x86_64ifort.tar.gz

[editar] intel

En del directorio


tar xvfz smoke_v49.Linux2_x86_64ifort.tar.gz
cd subsys/smoke
ls
Linux2_x86_64ifort  src
ls Linux2_x86_64ifort/
aggwndw      cntlmat     gentpro   inlineto2d  met4moves   mrgelev    normbeis4  smkinven   surgtool  uam2ncf
beld3to2     elevpoint   geofac    invsplit    metcombine  mrggrid    pktreduc   smkmerge   temporal
bluesky2inv  extractida  grdmat    layalloc    metscan     mrgpt      saregroup  smkreport  tmpbeis3
cemscan      gcntl4carb  grwinven  laypoint    movesmrg    normbeis3  smk2emis   spcmat     tmpbeis4

[editar] gcc

Directorio de instalación /home/solange.luque/MODELOS/SMOKE

Desplegando código

mv ~/smoke_v49.Linux2_x86_64ifort.tar.gz ./
mkdir gcc/
tar xvfz ../smoke_v49.Linux2_x86_64ifort.tar.gz 
mv subsys/smoke/src ./
mv subsys/smoke/Linux2_x86_64ifort ./
rmdir subsys/smoke/
rmdir subsys
mkdir Linux2_x86_64

Compilando

cd src
cp Makeinclude Makeinclude.old
cp Makeinclude Makeinclude.Linux2_x86_64
diff Makeinclude.Linux2_x86_64 Makeinclude.old
31c31
< BASEDIR = /home/solange.luque/MODELOS/SMOKE/gcc/src
---
> BASEDIR = ${SMK_HOME}/subsys/smoke/src
35c35
< IOBASE  = /home/solange.luque/libraries/ioapi/v3.2-20200828/gnu
---
> IOBASE  = ${SMK_HOME}/subsys/ioapi
40c40
< INSTDIR = /home/solange.luque/MODELOS/SMOKE/gcc/${BIN}
---
> INSTDIR = /somewhere/apps/${BIN}
48,49c48,49
< # IFLAGS = -I${IOINC} -I${INCDIR} -I${IOBIN}                #  Intel, Absoft, Pathscale, UNIX Fortran
<  IFLAGS = -I${IOINC} -I${INCDIR} -I${IOBIN}                #  GNU   Fortran
---
>  IFLAGS = -I${IOINC} -I${INCDIR} -I${IOBIN}                #  Intel, Absoft, Pathscale, UNIX Fortran
> # IFLAGS = -I${IOINC} -I${INCDIR} -I${IOBIN}                #  GNU   Fortran
53,54c53,54
< # EFLAG = -extend-source 132 -zero                       #  Intel Fortran
<  EFLAG = -ffixed-line-length-132  -fno-backslash       #  GNU   Fortran
---
>  EFLAG = -extend-source 132 -zero                       #  Intel Fortran
> # EFLAG = -ffixed-line-length-132  -fno-backslash       #  GNU   Fortran
59c59
< MFLAGS  = -fbacktrace
---
> MFLAGS  = -traceback

Hay un error de sintaxis Fortran en /home/solange.luque/libraries/ioapi/v3.2-20200828/gnu/ioapi/fixed_src/PARMS3.EXT, en la línea #104, queda:

!        INTEGER, PARAMETER :: M3TYPES( NM3TYPES ) =                             &
!     &        (/ M3INT, M3REAL, M3DBLE, M3INT8 /)
        INTEGER, PARAMETER :: M3TYPES( NM3TYPES ) = (/ M3INT, M3REAL, M3DBLE, M3INT8 /)

Copilamos

/opt/load-libs.sh
source /opt/env_scripts/load_gnu-10.2.1_openmpi-4.1.2.sh
export BIN=Linux2_x86_64
ln -s Makeinclude.Linux2_x86_64 ./Makeinclude
make >& run_make.log
ls ../Linux2_x86_64 | grep -v .o | grep -v .mod
aggwndw        bluesky2inv        cemscan        cntlmat        extractida        gcntl4carb
grdmat         grwinven           invsplit       libfileset.a   metscan           mrgelev
mrggrid        mrgpt              pktreduc       smk2emis       smkinven          smkmerge
spcmat         tmpbeis3           tmpbeis4       uam2ncf

[editar] gcc - debug

Directorio de instalación /home/solange.luque/MODELOS/SMOKE_dbg

NOTA: Todo se tendría que llamar Linux2_x86_64_dbg, pero después no encuentra en la compilación de I/O - API, el ioapi/Makinclude.Linux2_x86_64_dbg, puiesto que sí existe un ioapi/Makinclude.Linux2_x86_64dbg (que rompimos, ver CMAQ gnu - debug). Hacemos trampas, poniéndole el nombre Linux2_x86_64

Desplegando código

mv ~/smoke_v49.Linux2_x86_64ifort.tar.gz ./
mkdir gcc/
cd gcc
tar xvfz /home/solange.luque/MODELOS/SMOKE/smoke_v49.Linux2_x86_64ifort.tar.gz
mv subsys/smoke/src ./
mv subsys/smoke/Linux2_x86_64ifort ./
rmdir subsys/smoke/
rmdir subsys
mkdir Linux2_x86_64

Compilando

cd src
cp Makeinclude Makeinclude.old
cp Makeinclude Makeinclude.Linux2_x86_64
rm Makeinclude
diff Makeinclude.Linux2_x86_64 Makeinclude.old
30d29
< SMK_HOME = /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src
32c31
< BASEDIR = /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src
---
> BASEDIR = ${SMK_HOME}/subsys/smoke/src
36c35
< IOBASE  = /home/solange.luque/libraries/ioapi/v3.2-20200828/gnu
---
> IOBASE  = ${SMK_HOME}/subsys/ioapi
41c40
< INSTDIR = /home/solange.luque/MODELOS/SMOKE/gcc/${BIN}
---
> INSTDIR = /somewhere/apps/${BIN}
49,50c48,49
< # IFLAGS = -I${IOINC} -I${INCDIR} -I${IOBIN}                #  Intel, Absoft, Pathscale, UNIX Fortran
<  IFLAGS = -I${IOINC} -I${INCDIR} -I${IOBIN}                #  GNU   Fortran
---
>  IFLAGS = -I${IOINC} -I${INCDIR} -I${IOBIN}                #  Intel, Absoft, Pathscale, UNIX Fortran
> # IFLAGS = -I${IOINC} -I${INCDIR} -I${IOBIN}                #  GNU   Fortran
54,55c53,54
< # EFLAG = -extend-source 132 -zero                       #  Intel Fortran
<  EFLAG = -ffixed-line-length-132  -fno-backslash       #  GNU   Fortran
---
>  EFLAG = -extend-source 132 -zero                       #  Intel Fortran
> # EFLAG = -ffixed-line-length-132  -fno-backslash       #  GNU   Fortran
60c59
< MFLAGS = -g -Wall -Wextra -Warray-temporaries -Wconversion -fimplicit-none -fbacktrace -fcheck=all 
  -ffpe-trap=zero,overflow,underflow -finit-real=nan
---
> MFLAGS  = -traceback

Hay un error de sintaxis Fortran en /home/solange.luque/libraries/ioapi/v3.2-20200828/gnu/ioapi/fixed_src/PARMS3.EXT, en la línea #104, queda:

!        INTEGER, PARAMETER :: M3TYPES( NM3TYPES ) =                             &
!     &        (/ M3INT, M3REAL, M3DBLE, M3INT8 /)
        INTEGER, PARAMETER :: M3TYPES( NM3TYPES ) = (/ M3INT, M3REAL, M3DBLE, M3INT8 /)

Copilamos

/opt/load-libs.sh
source /opt/env_scripts/load_gnu-10.2.1_openmpi-4.1.2.sh
export BIN=Linux2_x86_64
ln -s Makeinclude.Linux2_x86_64 ./Makeinclude
make >& run_make.log
ls ../Linux2_x86_64 | grep -v .o | grep -v .mod
aggwndw        bluesky2inv        cemscan        cntlmat        extractida        gcntl4carb
grdmat         grwinven           invsplit       libfileset.a   metscan           mrgelev
mrggrid        mrgpt              pktreduc       smk2emis       smkinven          smkmerge
spcmat         tmpbeis3           tmpbeis4       uam2ncf

[editar] Usar

Empecemos por el test-case

[editar] Errores de sistema encontrados

NOTA: Los shells son todos #!/bin/csh, pero de verdad se utiliza #!/bin/tcsh CMAS Source Too many arguments is not csh!

Se tuvo que pedir la instalación de paquetes adicionales:

  • GNU arbitrary precision calculator language bc
  • classic UNIX line editor ed

[editar] test-case

Post en: foro CMAS

Sacado de la página de SMOKE https://github.com/CEMPD/SMOKE-TestCase/ (previo registro)

Directorio de trabajo: /home/solange.luque/MODELOS/SMOKE/DATA

googleDrive

SMOKE-TestCase-BEIS4-inputs.tar.gz-20221026T133036Z-001.zip       SMOKE-TestCase-inputs.tar.gz-20221026T133039Z-001.zip
SMOKE-TestCase-BEIS4-output.tar.gz-20221026T133038Z-001.zip       SMOKE-TestCase-output.tar.gz-20221026T133041Z-001.zip
unzip SMOKE-TestCase-BEIS4-inputs.tar.gz-20221026T133036Z-001.zip
unzip SMOKE-TestCase-BEIS4-output.tar.gz-20221026T133038Z-001.zip
unzip SMOKE-TestCase-inputs.tar.gz-20221026T133039Z-001.zip
unzip SMOKE-TestCase-output.tar.gz-20221026T133041Z-001.zip
tar xvfz SMOKE-TestCase-BEIS4-inputs.tar.gz  
tar xvfz SMOKE-TestCase-BEIS4-output.tar.gz  
tar xvfz SMOKE-TestCase-inputs.tar.gz  
tar xvfz SMOKE-TestCase-output.tar.gz

Nos queda:

ls
biogenics_output  SMOKE-TestCase-BEIS4-inputs.tar.gz                           
SMOKE-TestCase-inputs.tar.gz-20221026T133039Z-001.zip
ge_dat            SMOKE-TestCase-BEIS4-inputs.tar.gz-20221026T133036Z-001.zip  
SMOKE-TestCase-output.tar.gz
output_forQA      SMOKE-TestCase-BEIS4-output.tar.gz                           
SMOKE-TestCase-output.tar.gz-20221026T133041Z-001.zip
smoke4.7          SMOKE-TestCase-BEIS4-output.tar.gz-20221026T133038Z-001.zip
SMOKE-TestCase    SMOKE-TestCase-inputs.tar.gz

Descargamos archivos para simular en /home/solange.luque/MODELOS/SMOKE/DATA

mkdir scripts
git clone https://github.com/CEMPD/SMOKE-TestCase.git
ls 
SMOKE-TestCase

[editar] gcc

Seteando entorno

/opt/load-libs.sh 3
source /opt/env_scripts/load_gnu-10.2.1_mpich-3.4.2.sh

Preparando directorio para simular /home/solange.luque/estudios/SMOKE-TestCase

cp -R ~/MODELOS/SMOKE/DATA/SMOKE-TestCase/scripts ./
cd scripts 
diff directory_definitions.csh ~/MODELOS/SMOKE/scripts/SMOKE-TestCase/scripts/directory_definitions.csh 
13c13
< setenv INSTALL_DIR "/home/solange.luque/MODELOS/SMOKE/DATA"
---
> setenv INSTALL_DIR "/proj/ie/proj/SMOKE/chef"
19c19
< setenv MET_ROOT "/home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/inputs/biogenics"
---
> setenv MET_ROOT "/proj/ie/proj/TRECH/emissions/mcip"
24c24
< setenv MET_ROOT_3D "/home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/inputs/biogenics"
---
> setenv MET_ROOT_3D "/proj/ie/proj/TRECH/emissions/mcip"
46c46
< setenv SMOKE_LOCATION "/home/solange.luque/MODELOS/SMOKE/gcc/Linux2_x86_64"
---
> setenv SMOKE_LOCATION "/proj/ie/proj/CMAS/CMAQ/christos/SMOKE_REPO/exec/Linux2_x86_64ifort_medium"
53c53
< setenv IOAPI_LOCATION "/home/solange.luque/libraries/ioapi/v3.2-20200828/gnu/Linux2_x86_64"
---
> setenv IOAPI_LOCATION "/proj/ie/proj/CMAS/CMAQ/christos/SMOKE_test/SMOKE_4.8.1/subsys/ioapi-3.2/Linux2_x86_64ifort_medium"


Ajustando scripts al cluster:

$ cat /home/solange.luque/MODELOS/SMOKE/DATA/smoke4.7/scripts/emf/smk_ar_annual_emf.csh | grep py
set log_analyzer = $SCRIPTS/log_analyzer/log_analyzer.py
set path_parser  = $SCRIPTS/run/path_parser.py


  • línea #1 de /home/solange.luque/MODELOS/SMOKE/DATA/smoke4.7/scripts/log_analyzer/log_analyzer.py, /home/solange.luque/MODELOS/SMOKE/DATA/smoke4.7/scripts/run/path_parser.py, /home/solange.luque/MODELOS/SMOKE/DATA/smoke4.7/scripts/annual_report/annual_report_v2.py
#!/usr/bin/env python3

Error de c-shell en el script /home/solange.luque/MODELOS/SMOKE/DATA/smoke4.7/scripts/run/set_months_v4.csh, sintaxis errónea en dar la cantidad de argumentos: está $# y tiene que ser $#argv web, en línea # 30:

if ( $#argv == 3 ) then

En /home/solange.luque/MODELOS/SMOKE/DATA/smoke4.7/scripts/platform está seteado por default la abreviación de intel, así que hay que cambiarlo.

#set comp_abbrv = ifort
set comp_abbrv = gcc

Desde /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/scripts/

mkdir /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/scripts/logs
cd nonpoint/
./Annual_np_oilgas_12US1_2017gb_17j_TestCase.csh >& run_nonpoint.log

Nota: Antes de correr, si no es la primera vez que se lo hace, hay que borrar el log timelog_np_oilgas_SMOKE-TestCase_12US1_all.txt que está en /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/intermed/np_oilgas/logs/. Sino, el programa timetracker tira error de que tiene multiple primary keys disponibles.

cd /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/intermed/np_oilgas/logs
rm timelog_np_oilgas_SMOKE-TestCase_12US1_all.txt


Correr el siguiente sector:

cd ../point
./Annual_pt_oilgas_onetime_12US1_2017gb_17j_TestCase.csh >& run_Annual_onetime.log

[editar] gcc - debug

Directorio de trabajo: /home/solange.luque/estudios/SMOKE/TestCase_dbg

googleDrive

SMOKE-TestCase-BEIS4-inputs.tar.gz-20221026T133036Z-001.zip       SMOKE-TestCase-inputs.tar.gz-20221026T133039Z-001.zip
SMOKE-TestCase-BEIS4-output.tar.gz-20221026T133038Z-001.zip       SMOKE-TestCase-output.tar.gz-20221026T133041Z-001.zip
unzip /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase-BEIS4-inputs.tar.gz-20221026T133036Z-001.zip
unzip /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase-inputs.tar.gz-20221026T133039Z-001.zip
unzip /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase-BEIS4-output.tar.gz-20221026T133038Z-001.zip
unzip /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase-output.tar.gz-20221026T133041Z-001.zip
tar xvfz SMOKE-TestCase-BEIS4-inputs.tar.gz  
tar xvfz SMOKE-TestCase-BEIS4-output.tar.gz  
tar xvfz SMOKE-TestCase-inputs.tar.gz  
tar xvfz SMOKE-TestCase-output.tar.gz

Nos queda:

ls
biogenics_output  SMOKE-TestCase-BEIS4-inputs.tar.gz                           
ge_dat            SMOKE-TestCase-BEIS4-output.tar.gz
output_forQA      SMOKE-TestCase-inputs.tar.gz
smoke4.7          SMOKE-TestCase-output.tar.gz
SMOKE-TestCase    

Descargamos archivos para simular en /home/solange.luque/estudios/SMOKE/TestCase_dbg

mkdir git
cd git
git clone https://github.com/CEMPD/SMOKE-TestCase.git
ls 
SMOKE-TestCase

Seteando entorno

/opt/load-libs.sh 3
source /opt/env_scripts/load_gnu-10.2.1_mpich-3.4.2.sh

Preparando directorio para simular /home/solange.luque/estudios/SMOKE/TestCase_dbg

cp -R /home/solange.luque/estudios/SMOKE/TestCase_dbg/git/SMOKE-TestCase/scripts ./
cd scripts 
diff directory_definitions.csh /home/solange.luque/estudios/SMOKE/TestCase_dbg/git/SMOKE-TestCase/scripts/directory_definitions.csh 
13c13
< setenv INSTALL_DIR "/home/solange.luque/estudios/SMOKE/TestCase_dbg"
---
> setenv INSTALL_DIR "/proj/ie/proj/SMOKE/chef"
19c19
< setenv MET_ROOT "/home/solange.luque/estudios/SMOKE/TestCase_dbg/SMOKE-TestCase/inputs/biogenics"
---
> setenv MET_ROOT "/proj/ie/proj/TRECH/emissions/mcip"
24c24
< setenv MET_ROOT_3D "/home/solange.luque/estudios/SMOKE/TestCase_dbg/SMOKE-TestCase/inputs/biogenics"
---
> setenv MET_ROOT_3D "/proj/ie/proj/TRECH/emissions/mcip"
46c46
< setenv SMOKE_LOCATION "/home/solange.luque/MODELOS/SMOKE_dbg/gcc/Linux2_x86_64"
---
> setenv SMOKE_LOCATION "/proj/ie/proj/CMAS/CMAQ/christos/SMOKE_REPO/exec/Linux2_x86_64ifort_medium"
53c53
< setenv IOAPI_LOCATION "/home/solange.luque/libraries/ioapi/v3.2-20200828/gnu/Linux2_x86_64"
---
> setenv IOAPI_LOCATION "/proj/ie/proj/CMAS/CMAQ/christos/SMOKE_test/SMOKE_4.8.1/subsys/ioapi-3.2/Linux2_x86_64ifort_medium"


Ajustando scripts al cluster:

$ cat /home/solange.luque/estudios/SMOKE/TestCase_dbg/smoke4.7/scripts/emf/smk_ar_annual_emf.csh | grep py
set log_analyzer = $SCRIPTS/log_analyzer/log_analyzer.py
set path_parser  = $SCRIPTS/run/path_parser.py


  • línea #1 de /home/solange.luque/estudios/SMOKE/TestCase_dbg/smoke4.7/scripts/log_analyzer/log_analyzer.py, /home/solange.luque/estudios/SMOKE/TestCase_dbg/smoke4.7/scripts/run/path_parser.py, /home/solange.luque/estudios/SMOKE/TestCase_dbg/smoke4.7/scripts/annual_report/annual_report_v2.py
#!/usr/bin/env python3

Error de c-shell en el script /home/solange.luque/estudios/SMOKE/TestCase_dbg/smoke4.7/scripts/run/set_months_v4.csh, sintaxis errónea en dar la cantidad de argumentos: está $# y tiene que ser $#argv web, en línea # 30:

if ( $#argv == 3 ) then

En /home/solange.luque/estudios/SMOKE/TestCase_dbg/smoke4.7/scripts/platform está seteado por default la abreviación de intel, así que hay que cambiarlo.

#set comp_abbrv = ifort
set comp_abbrv = gcc

Desde /home/solange.luque/estudios/SMOKE/TestCase_dbg/scripts

mkdir /home/solange.luque/estudios/SMOKE/TestCase_dbg/scripts/logs
cd nonpoint/
./Annual_np_oilgas_12US1_2017gb_17j_TestCase.csh >& run_nonpoint.log

Nota: Antes de correr, si no es la primera vez que se lo hace, hay que borrar el log timelog_np_oilgas_SMOKE-TestCase_12US1_all.txt que está en /home/solange.luque/estudios/SMOKE/TestCase_dbg/SMOKE-TestCase/intermed/np_oilgas/logs . Sino, el programa timetracker tira error de que tiene multiple primary keys disponibles.

rm /home/solange.luque/estudios/SMOKE/TestCase_dbg/SMOKE-TestCase/intermed/np_oilgas/logs/timelog_np_oilgas_SMOKE-TestCase_12US1_all.txt

Mensaje de error en run_nonpoint.log

(...)
At line 1902 of file /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/wrrephdr.f
Fortran runtime error: Index '20' of dimension 1 of array 'outdnam' above upper bound of 19

Error termination. Backtrace:
#0  0x14e579400bd0 in ???
#1  0x14e579401685 in ???
#2  0x14e579401c76 in ???
#3  0x55e8e8e454dc in wrrephdr_
        at /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/wrrephdr.f:1902
#4  0x55e8e8e3a2e9 in smkreport
        at /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/smkreport.f:406
#5  0x55e8e8df5978 in main
        at /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/smkreport.f:47
     SMOKE ---------------
     Copyright (c)2004 Environmental Modeling for Policy Development
(...)

Correr el siguiente sector:

cd ../point
./Annual_pt_oilgas_onetime_12US1_2017gb_17j_TestCase.csh >& run_Annual_onetime.log

Mismo mensaje de error que en nonpoint en run_Annual_onetime.log:

(...)
At line 560 of file /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/bldrepidx.f
Fortran runtime error: Index '20' of dimension 1 of array 'outdnam' above upper bound of 19

Error termination. Backtrace:
#0  0x14f1d4b2bbd0 in ???
#1  0x14f1d4b2c685 in ???
#2  0x14f1d4b2cc76 in ???
#3  0x55d128c00dac in bldrepidx_
        at /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/bldrepidx.f:560
#4  0x55d128c2e775 in smkreport
        at /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/smkreport.f:179
#5  0x55d128bea978 in main
        at /home/solange.luque/MODELOS/SMOKE_dbg/gcc/src/emqa/smkreport.f:47
     SMOKE ---------------
(...)

[editar] intel

Trabajanod con la compilación de intel

cd /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/scripts
cp directory_definitions.csh directory_definitions.csh.gcc
diff directory_definitions.csh directory_definitions.csh.gcc
46c46
< setenv SMOKE_LOCATION "/home/solange.luque/MODELOS/SMOKE/intel/subsys/smoke/Linux2_x86_64ifort"
---
> setenv SMOKE_LOCATION "/home/solange.luque/MODELOS/SMOKE/gcc/Linux2_x86_64"
53c53
< setenv IOAPI_LOCATION "/home/solange.luque/libraries/ioapi/v3.2-20200828/intel/Linux2_x86_64ifort"
---
> setenv IOAPI_LOCATION "/home/solange.luque/libraries/ioapi/v3.2-20200828/gnu/Linux2_x86_64"

Ejexcutando:

cd nonpoint/
cp run_nonpoint.log run_nonpoint.log.gcc 
./Annual_np_oilgas_12US1_2017gb_17j_TestCase.csh >& run_nonpoint.log
ls /home/solange.luque/estudios/CMAQ-ideal/DATA/mcip/AMBA/
GRIDBDY2D_160702.nc  GRIDDOT2D_160702.nc   METCRO2D_160702.nc  namelist.mcip
GRIDCRO2D_160702.nc  LUFRAC_CRO_160702.nc  METCRO3D_160702.nc  SOI_CRO_160702.nc
GRIDDESC             METBDY3D_160702.nc    METDOT3D_160702.nc

[editar] inventarios

SMOKE parte de unos ficheros de inventarios de emisiones que están en ASCII. SMOKE lo que hace, es procesarlos para generar los mapas de emisiones para ingestar a CMAQ.

Encontramos un pdf con mucha información del significado de cada elemento de los inventarios EPA-Emissions

[editar] nopoint

Agarramos estos inventarios como ejemplo:

Fichero base del TestCase:

/home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/inputs/np_oilgas/np_oilgas_2017NEI_NONPOINT_20200501_04may2020_nf_v1.csv
../read_table.bash np_oilgas_2017NEI_NONPOINT_20200501_04may2020_nf_v1.csv country 0.6598465 ,
1: country_cd= "US"
2: region_cd= "17001"
3: tribal_code= 
4: census_tract_cd= 
5: shape_id= 
6: scc= "2310021501"
7: emis_type= 
8: poll= "VOC"
9: ann_value= 0.6598465
10: ann_pct_red= 
11: control_ids= 
12: control_measures= 
13: current_cost= 
14: cumulative_cost= 
15: projection_factor= 
16: reg_codes= 
17: calc_method= 6
18: calc_year= 2017
19: date_updated= 20200430
20: data_set_id= "2017EPA_NONPOINT"
21: jan_value= 
22: feb_value= 
23: mar_value= 
24: apr_value= 
25: may_value= 
26: jun_value= 
27: jul_value= 
28: aug_value= 
29: sep_value= 
30: oct_value= 
31: nov_value= 
32: dec_value= 
33: jan_pctred= 
34: feb_pctred= 
35: mar_pctred= 
36: apr_pctred= 
37: may_pctred= 
38: jun_pctred= 
39: jul_pctred= 
40: aug_pctred= 
41: sep_pctred= 
42: oct_pctred= 
43: nov_pctred= 
44: dec_pctred= 
45: comment= 

Archivo con el significado de cada pixel/county de los US:

/home/solange.luque/MODELOS/SMOKE/DATA/ge_dat/costcy_for_2017platform_24apr2020_nf_v1.txt

[editar] point

En: /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/inputs/pt_oilgas

 ../read_table.bash pt_oilgas_2017NEIpost_POINT_20200618_09feb2021_v0.csv country 0.0757 ,
1: country_cd= "US"
2: region_cd= "01073"
3: tribal_code= 
4: facility_id= "1001411"
5: unit_id= "63024513"
6: rel_point_id= "57750712"
7: process_id= "86737214"
8: agy_facility_id= "010730267"
9: agy_unit_id= "9"
10: agy_rel_point_id= "9"
11: agy_process_id= "1"
12: scc= "20200252"
13: poll= "540841"
14: ann_value= 0.0757
15: ann_pct_red= 
16: facility_name= "SOUTHERN NATURAL GAS CORP."
17: erptype= "2"
18: stkhgt= 38
19: stkdiam= 2.5
20: stktemp= 615
21: stkflow= 220.7666
22: stkvel= 45
23: naics= "486210"
24: longitude= -86.76774
25: latitude= 33.59422
26: ll_datum= 
27: horiz_coll_mthd= 
28: design_capacity= 
29: design_capacity_units= 
30: reg_codes= 
31: fac_source_type= "110"
32: unit_type_code= "999"
33: control_ids= 
34: control_measures= 
35: current_cost= 
36: cumulative_cost= 
37: projection_factor= 
38: submitter_id= "ALJCBOH"
39: calc_method= 8
40: data_set_id= "2017JeffCty"
41: facil_category_code= "HAP"
42: oris_facility_code= " "
43: oris_boiler_id= 
44: ipm_yn= 
45: calc_year= "2017"
46: date_updated= 20200617
47: fug_height= 
48: fug_width_xdim= 
49: fug_length_ydim= 
50: fug_angle= 
51: zipcode= "35217"
52: annual_avg_hours_per_year= 
53: jan_value= 
54: feb_value= 
55: mar_value= 
56: apr_value= 
57: may_value= 
58: jun_value= 
59: jul_value= 
60: aug_value= 
61: sep_value= 
62: oct_value= 
63: nov_value= 
64: dec_value= 
65: jan_pctred= 
66: feb_pctred= 
67: mar_pctred= 
68: apr_pctred= 
69: may_pctred= 
70: jun_pctred= 
71: jul_pctred= 
72: aug_pctred= 
73: sep_pctred= 
74: oct_pctred= 
75: nov_pctred= 
76: dec_pctred= 
77: comment=  "US"

[editar] Uso y manejo

[editar] Nuevo dominio de simulación

Instrucciones Creación de los archivos necesarios para un nuevo dominio de simulación /NuevoDominio acá

Herramientas personales