SMOKE
Instalando y usando SMOKE en hydra
Página de SMOKE: https://www.cmascenter.org/smoke/
Contenido |
Compilar
Archivo comprimido desde la página web (bajo registro previo)
smoke_v49.Linux2_x86_64ifort.tar.gz
intel
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
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
Usar
Empecemos por el test-case
NOTA: Los shells son todos #!/bin/csh
, pero de verdad se utiliza #!/bin/tcsh
test-case
Sacado de la página de SMOKE https://github.com/CEMPD/SMOKE-TestCase/ (previo registro)
Directorio de trabajo: /home/solange.luque/MODELOS/SMOKE/DATA
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
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
Generando
export LD_LIBRARY_PATH=/opt/netcdf/netcdf-4/gnu/10.2.1/lib/ mkdir mkdir /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/scripts/logs cd nonpoint/ ./Annual_np_oilgas_12US1_2017gb_17j_TestCase.csh >& run_nonpoint.log