SMOKE

De Wikicima
(Diferencias entre revisiones)
Saltar a: navegación, buscar
(test-case)
 
(No se muestran 16 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 180: Línea 180:
   
 
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 310: Línea 316:
 
</pre>
 
</pre>
   
=== gcc - dbug ===
+
=== gcc - debug ===
 
Directorio de trabajo: <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg</code>
 
Directorio de trabajo: <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg</code>
   
Línea 334: Línea 340:
 
ls
 
ls
 
biogenics_output SMOKE-TestCase-BEIS4-inputs.tar.gz
 
biogenics_output SMOKE-TestCase-BEIS4-inputs.tar.gz
SMOKE-TestCase-inputs.tar.gz-20221026T133039Z-001.zip
+
ge_dat SMOKE-TestCase-BEIS4-output.tar.gz
ge_dat SMOKE-TestCase-BEIS4-inputs.tar.gz-20221026T133036Z-001.zip
+
output_forQA SMOKE-TestCase-inputs.tar.gz
SMOKE-TestCase-output.tar.gz
+
smoke4.7 SMOKE-TestCase-output.tar.gz
output_forQA SMOKE-TestCase-BEIS4-output.tar.gz
+
SMOKE-TestCase
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
 
 
</pre>
 
</pre>
   
Descargamos archivos para simular en <code>/home/solange.luque/MODELOS/SMOKE/DATA</code>
+
Descargamos archivos para simular en <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg</code>
   
 
<pre style="shell">
 
<pre style="shell">
mkdir scripts
+
mkdir git
  +
cd git
 
git clone https://github.com/CEMPD/SMOKE-TestCase.git
 
git clone https://github.com/CEMPD/SMOKE-TestCase.git
 
ls
 
ls
Línea 355: Línea 361:
 
</pre>
 
</pre>
   
Preparando directorio para simular <code>/home/solange.luque/estudios/SMOKE-TestCase</code>
+
Preparando directorio para simular <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg</code>
 
<pre style="shell">
 
<pre style="shell">
cp -R ~/MODELOS/SMOKE/DATA/SMOKE-TestCase/scripts ./
+
cp -R /home/solange.luque/estudios/SMOKE/TestCase_dbg/git/SMOKE-TestCase/scripts ./
 
cd scripts
 
cd scripts
diff directory_definitions.csh ~/MODELOS/SMOKE/scripts/SMOKE-TestCase/scripts/directory_definitions.csh
+
diff directory_definitions.csh /home/solange.luque/estudios/SMOKE/TestCase_dbg/git/SMOKE-TestCase/scripts/directory_definitions.csh
 
13c13
 
13c13
< setenv INSTALL_DIR "/home/solange.luque/MODELOS/SMOKE/DATA"
+
< setenv INSTALL_DIR "/home/solange.luque/estudios/SMOKE/TestCase_dbg"
 
---
 
---
 
> setenv INSTALL_DIR "/proj/ie/proj/SMOKE/chef"
 
> setenv INSTALL_DIR "/proj/ie/proj/SMOKE/chef"
 
19c19
 
19c19
< setenv MET_ROOT "/home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/inputs/biogenics"
+
< setenv MET_ROOT "/home/solange.luque/estudios/SMOKE/TestCase_dbg/SMOKE-TestCase/inputs/biogenics"
 
---
 
---
 
> setenv MET_ROOT "/proj/ie/proj/TRECH/emissions/mcip"
 
> setenv MET_ROOT "/proj/ie/proj/TRECH/emissions/mcip"
 
24c24
 
24c24
< setenv MET_ROOT_3D "/home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/inputs/biogenics"
+
< 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"
 
> setenv MET_ROOT_3D "/proj/ie/proj/TRECH/emissions/mcip"
 
46c46
 
46c46
< setenv SMOKE_LOCATION "/home/solange.luque/MODELOS/SMOKE/gcc/Linux2_x86_64"
+
< 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"
 
> setenv SMOKE_LOCATION "/proj/ie/proj/CMAS/CMAQ/christos/SMOKE_REPO/exec/Linux2_x86_64ifort_medium"
Línea 385: Línea 391:
 
Ajustando scripts al cluster:
 
Ajustando scripts al cluster:
 
<pre type="shell">
 
<pre type="shell">
$ cat /home/solange.luque/MODELOS/SMOKE/DATA/smoke4.7/scripts/emf/smk_ar_annual_emf.csh | grep py
+
$ 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 log_analyzer = $SCRIPTS/log_analyzer/log_analyzer.py
 
set path_parser = $SCRIPTS/run/path_parser.py
 
set path_parser = $SCRIPTS/run/path_parser.py
Línea 391: Línea 397:
   
   
* línea #1 de <code>/home/solange.luque/MODELOS/SMOKE/DATA/smoke4.7/scripts/log_analyzer/log_analyzer.py</code>, <code>/home/solange.luque/MODELOS/SMOKE/DATA/smoke4.7/scripts/run/path_parser.py</code>, <code>/home/solange.luque/MODELOS/SMOKE/DATA/smoke4.7/scripts/annual_report/annual_report_v2.py</code>
+
* 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">
 
<pre style"python">
 
#!/usr/bin/env python3
 
#!/usr/bin/env python3
 
</pre>
 
</pre>
   
Error de c-shell en el script <code>/home/solange.luque/MODELOS/SMOKE/DATA/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:
+
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">
 
<pre style="shell">
 
if ( $#argv == 3 ) then
 
if ( $#argv == 3 ) then
 
</pre>
 
</pre>
   
En <code>/home/solange.luque/MODELOS/SMOKE/DATA/smoke4.7/scripts/platform</code> está seteado por default la abreviación de intel, así que hay que cambiarlo.
+
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">
 
<pre style="fortran">
Línea 408: Línea 414:
 
</pre>
 
</pre>
   
Desde <code>/home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/scripts/</code>
+
Desde <code>/home/solange.luque/estudios/SMOKE/TestCase_dbg/scripts</code>
 
<pre style="shell">
 
<pre style="shell">
mkdir /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/scripts/logs
+
mkdir /home/solange.luque/estudios/SMOKE/TestCase_dbg/scripts/logs
 
cd nonpoint/
 
cd nonpoint/
 
./Annual_np_oilgas_12US1_2017gb_17j_TestCase.csh >& run_nonpoint.log
 
./Annual_np_oilgas_12US1_2017gb_17j_TestCase.csh >& run_nonpoint.log
 
</pre>
 
</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/MODELOS/SMOKE/DATA/SMOKE-TestCase/intermed/np_oilgas/logs/</code>. Sino, el programa timetracker tira error de que tiene multiple primary keys disponibles.
+
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">
 
<pre style="shell">
cd /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/intermed/np_oilgas/logs
+
rm /home/solange.luque/estudios/SMOKE/TestCase_dbg/SMOKE-TestCase/intermed/np_oilgas/logs/timelog_np_oilgas_SMOKE-TestCase_12US1_all.txt
rm timelog_np_oilgas_SMOKE-TestCase_12US1_all.txt
 
 
</pre>
 
</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:
 
Correr el siguiente sector:
Línea 428: Línea 455:
 
</pre>
 
</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>
   
 
=== intel ===
 
=== intel ===
Línea 605: Línea 652:
 
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