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
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
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
Desde /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/scripts/
export LD_LIBRARY_PATH=/opt/netcdf/netcdf-4/gnu/10.2.1/lib/ mkdir /home/solange.luque/MODELOS/SMOKE/DATA/SMOKE-TestCase/scripts/logs cd nonpoint/ ./Annual_np_oilgas_12US1_2017gb_17j_TestCase.csh >& run_nonpoint.log
Correr el siguiente sector:
cd ../point ./Annual_pt_oilgas_onetime_12US1_2017gb_17j_TestCase.csh >& run_Annual_onetime.log
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