SMOKE

De Wikicima
Saltar a: navegación, buscar

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

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

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

Herramientas personales