CMAQ
Instalando y usando CMAQ en hydra
Contenido |
Instalando librerias
Instalación en /home/solange.luque/MODELOS/CMAQ/[comp]
.
Existe un foro: https://forum.cmascenter.org/t/ioapi-installtion-unable/805
ioapi
Agarrar librerías ioapi
Instalándolas en /home/solange.luque/libraries/
intel
mkdir -p ioapi/v3.2-20200828/intel cd ioapi/v3.2-20200828/intel tar xvfz ~/ioapi-3.2-20200828.tar.gz mv ioapi-3.2-20200828/* ./ rmdir ioapi-3.2-20200828 export BIN=Linux2_x86_64ifort mkdir Linux2_x86_64ifort ln -s /opt/netcdf/netcdf-4/intel/2021.4.0/lib/*.so Linux2_x86_64ifort/ ln -s /opt/netcdf/netcdf-4/intel/2021.4.0/lib/libnetcdf.a Linux2_x86_64ifort/ ln -s /opt/netcdf/netcdf-4/intel/2021.4.0/lib/libnetcdff.a Linux2_x86_64ifort/ ln -s /opt/hdf5/hdf5-1.10.5/intel/2021.4.0/lib/libhdf5*a Linux2_x86_64ifort/ ln -s /opt/hdf5/hdf5-1.10.5/intel/2021.4.0/lib/libhdf5*so Linux2_x86_64ifort/ ln -s /usr/lib/x86_64-linux-gnu/*curl*a Linux2_x86_64ifort/ ln -s /usr/lib/x86_64-linux-gnu/*curl*so Linux2_x86_64ifort/ cp ioapi/Makefile.nocpl ioapi/Makefile cp m3tools/Makefile.nocpl m3tools/Makefile cp Makefile.template Makefile
Editamos los Makefiles (Makefile
y ioapi/Makeinclude.Linux2_x86_64ifort
)
diff Makefile Makefile.template 138,145c138,145 < BIN = Linux2_x86_64ifort < BASEDIR = ${PWD} < INSTALL = /home/solange.luque/MODELOS/CMAQ/intel/LIBRARIES/ioapi < LIBINST = $(INSTALL)/$(BIN) < BININST = $(INSTALL)/$(BIN) < CPLMODE = nocpl < IOAPIDEFS = < PVMINCL = --- > # BIN = Linux2_x86_64 > # BASEDIR = ${PWD} > # INSTALL = ${HOME} > # LIBINST = $(INSTALL)/$(BIN) > # BININST = $(INSTALL)/$(BIN) > # CPLMODE = nocpl > # IOAPIDEFS = > # PVMINCL =
Instalamos librerías
make configure >& run_configure.log make all >& run_make.log
- NOTA:** No compila pensamos por incompatibilidades entre librerías (eg.
curl
sólo está compilado con gnu)
- NOTA:** No compila pensamos por incompatibilidades entre librerías (eg.
gnu
mkdir -p ioapi/v3.2-20200828/gnu cd ioapi/v3.2-20200828/gnu tar xvfz ~/ioapi-3.2-20200828.tar.gz mv ioapi-3.2-20200828/* ./ rmdir ioapi-3.2-20200828 export BIN=Linux2_x86_64 mkdir Linux2_x86_64 ln -s /opt/netcdf/netcdf-4/gnu/10.2.1/lib/*.so Linux2_x86_64/ ln -s /opt/netcdf/netcdf-4/gnu/10.2.1/lib/libnetcdf.a Linux2_x86_64/ ln -s /opt/netcdf/netcdf-4/gnu/10.2.1/lib/libnetcdff.a Linux2_x86_64/ ln -s /opt/hdf5/hdf5-1.10.5/gnu/10.2.1/lib/libhdf5*a Linux2_x86_64/ ln -s /opt/hdf5/hdf5-1.10.5/gnu/10.2.1/lib/libhdf5*so Linux2_x86_64/ ln -s /usr/lib/x86_64-linux-gnu/*curl*a Linux2_x86_64/ ln -s /usr/lib/x86_64-linux-gnu/*curl*so Linux2_x86_64/ cp ioapi/Makefile.nocpl ioapi/Makefile cp m3tools/Makefile.nocpl m3tools/Makefile cp Makefile.template Makefile
Editamos los Makefiles (Makefile
y ioapi/Makeinclude.Linux2_x86_64ifort
)
diff Makefile Makefile.template 138,145c138,145 < BIN = Linux2_x86_64 < BASEDIR = ${PWD} < INSTALL = /home/solange.luque/MODELOS/CMAQ/gnu/LIBRARIES/ioapi < LIBINST = $(INSTALL)/$(BIN) < BININST = $(INSTALL)/$(BIN) < CPLMODE = nocpl < IOAPIDEFS = < PVMINCL = --- > # BIN = Linux2_x86_64 > # BASEDIR = ${PWD} > # INSTALL = ${HOME} > # LIBINST = $(INSTALL)/$(BIN) > # BININST = $(INSTALL)/$(BIN) > # CPLMODE = nocpl > # IOAPIDEFS = > # PVMINCL =
Instalamos librerías
make configure >& run_configure.log make all >& run_make.log
Si no hay problemas
$ ls -l Linux2_x86_64/ | grep rwx | grep -v lrwxrwxrwx | awk '{print $9}' | tr '\n' ' ' airs2m3 bcwndw camxtom3 datshift dayagg factor findwndw greg2jul gregdate gridprobe insertgrid jul2greg juldate juldiff julshift kfxtract latlon m3agmask m3agmax m3combo m3cple m3diff m3edhdr m3fake m3hdr m3interp m3mask m3merge m3pair m3probe m3stat m3totxt m3tproc m3tshift m3wndw m3xtract mpasdiff mpasstat mpastom3 mtxblend mtxbuild mtxcalc mtxcple presterp presz projtool randomstat selmrg2d timediff timeshift vertimeproc vertintegral vertot wndwdesc wrfgriddesc wrftom3
Instalando:
mkdir ~/MODELOS/CMAQ/gnu/LIBRARIES/ioapi make install >& run_install.log ls ~/MODELOS/CMAQ/gnu/LIBRARIES/ioapi/Linux2_x86_64/ airs2m3 greg2jul julshift m3cple m3merge m3utilio.mod modpdata.mod mtxcalc timediff wrftom3 bcwndw gregdate kfxtract m3diff m3pair m3wndw modwrfio.mod mtxcple timeshift camxtom3 gridprobe latlon m3edhdr m3probe m3xtract mpasdiff presterp vertimeproc datshift insertgrid libioapi.a m3fake m3stat modatts3.mod mpasstat presz vertintegral dayagg jul2greg m3agmask m3hdr m3totxt modgctp.mod mpastom3 projtool vertot factor juldate m3agmax m3interp m3tproc modmpasfio.mod mtxblend randomstat wndwdesc findwndw juldiff m3combo m3mask m3tshift modncfio.mod mtxbuild selmrg2d wrfgriddesc cp ioapi/fixed_src/* Linux2_x86_64/ cp ioapi/fixed_src/* /home/solange.luque/MODELOS/CMAQ/gnu/LIBRARIES/ioapi/Linux2_x86_64/
CMAQ
NOTA: Asegurarse que no hay ningún entorno de compiladores activado automáticamente en el .bashrc
Yendo al directorio de trabajo
/home/solange.luque/MODELOS/CMAQ/gnu/ mkdir src cd src git clone https://github.com/USEPA/CMAQ.git CMAQ-master head -n 1 ../../../README.md CMAQv5.4 cd CMAQ-master/ ls bldit_project.csh CCTM config_cmaq.csh DOCS license.md POST PREP PYTOOLS README.md UTIL
Preparando configuración de la compilación
cp bldit_project.csh bldit_project.csh.old diff bldit_project.csh bldit_project.csh.old 19,20c19 < #set CMAQ_HOME = ${PWD}/CMAQ_Project < set CMAQ_HOME = /home/solange.luque/MODELOS/CMAQ/gnu/src/CMAQ-master/CMAQ_Project --- > set CMAQ_HOME = /home/username/path
Compilamos!
./bldit_project.csh >& run_bldit.log tail run_bldit.log mkdir: created directory '/home/solange.luque/MODELOS/CMAQ/gnu/src/CMAQ-master/CMAQ_Project/POST/hr2day' mkdir: created directory '/home/solange.luque/MODELOS/CMAQ/gnu/src/CMAQ-master/CMAQ_Project/POST/hr2day/scripts' mkdir: created directory '/home/solange.luque/MODELOS/CMAQ/gnu/src/CMAQ-master/CMAQ_Project/POST/sitecmp' mkdir: created directory '/home/solange.luque/MODELOS/CMAQ/gnu/src/CMAQ-master/CMAQ_Project/POST/sitecmp/scripts' mkdir: created directory '/home/solange.luque/MODELOS/CMAQ/gnu/src/CMAQ-master/CMAQ_Project/POST/sitecmp_dailyo3' mkdir: created directory '/home/solange.luque/MODELOS/CMAQ/gnu/src/CMAQ-master/CMAQ_Project/POST/sitecmp_dailyo3/scripts' mkdir: created directory '/home/solange.luque/MODELOS/CMAQ/gnu/src/CMAQ-master/CMAQ_Project/POST/writesite' mkdir: created directory '/home/solange.luque/MODELOS/CMAQ/gnu/src/CMAQ-master/CMAQ_Project/POST/writesite/scripts' Configuration and Run Scripts have been Extracted and placed in: /home/solange.luque/MODELOS/CMAQ/gnu/src/CMAQ-master/CMAQ_Project You may now edit these scripts to conform to your system and run options.
Vamos al directorio
cd CMAQ_Project/ cp config_cmaq.csh config_cmaq.csh.old diff config_cmaq.csh config_cmaq.csh.old 144,145d143 < < echo "Compiling using gcc..." 153,162c151,158 < setenv IOAPI_INCL_DIR /home/solange.luque/libraries/ioapi/v3.2-20200828/gnu/Linux2_x86_64 #> I/O API include header files < setenv IOAPI_LIB_DIR /home/solange.luque/libraries/ioapi/v3.2-20200828/gnu/Linux2_x86_64 #> I/O API libraries < #setenv IOAPI_INCL_DIR ${IOAPI}/ioapi_inc_gcc #> I/O API include header files < #setenv IOAPI_LIB_DIR ${IOAPI}/ioapi_lib_gcc #> I/O API libraries < setenv NETCDF_LIB_DIR /opt/netcdf/netcdf-4/gnu/10.2.1/lib #> netCDF C directory path < setenv NETCDF_INCL_DIR /opt/netcdf/netcdf-4/gnu/10.2.1/include #> netCDF C directory path < setenv NETCDFF_LIB_DIR /opt/netcdf/netcdf_c-4.8.1_fortran-4.5.3/gnu/10.2.1/lib #> netCDF Fortran directory path < setenv NETCDFF_INCL_DIR /opt/netcdf/netcdf_c-4.8.1_fortran-4.5.3/gnu/10.2.1/include #> netCDF Fortran directory path < setenv MPI_INCL_DIR /opt/openmpi/openmpi-4.1.2/gnu/10.2.1/include #> MPI Include directory path < setenv MPI_LIB_DIR /opt/openmpi/openmpi-4.1.2/gnu/10.2.1/lib #> MPI Lib directory path --- > setenv IOAPI_INCL_DIR iopai_inc_gcc #> I/O API include header files > setenv IOAPI_LIB_DIR ioapi_lib_gcc #> I/O API libraries > setenv NETCDF_LIB_DIR netcdf_lib_gcc #> netCDF C directory path > setenv NETCDF_INCL_DIR netcdf_inc_gcc #> netCDF C directory path > setenv NETCDFF_LIB_DIR netcdff_lib_gcc #> netCDF Fortran directory path > setenv NETCDFF_INCL_DIR netcdff_inc_gcc #> netCDF Fortran directory path > setenv MPI_INCL_DIR mpi_incl_gcc #> MPI Include directory path > setenv MPI_LIB_DIR mpi_lib_gcc #> MPI Lib directory path 166c162 < setenv myFC /opt/openmpi/openmpi-4.1.2/gnu/10.2.1/bin/mpifort --- > setenv myFC mpifort 170c167 < setenv myFFLAGS "XXXXXXXXXXXXXXXX -fallow-argument-mismatch" < setenv myFRFLAGS "-ffree-form -ffree-line-length-none -funroll-loops -finit-character=32 -frecursive -fallow-argument-mismatch" < setenv myLINK_FLAG “-fopenmp” ... > setenv myFRFLAGS "-ffree-form -ffree-line-length-none -funroll-loops -finit-character=32" ./config_cmaq.csh gcc >& run_config-cmaq.log cat run_config-cmaq.log Compiler is set to gcc
NOTA: en caso que aparezca en el run_config-cmaq.log 0: Event not found.
, editar el config_cmaq.csh
e imprimir por pantalla la variable $CMAQ_LIB
. Ahí se creean unos directorios que si ha habido algún problema, no se llenan bien. Es recomendable borrarlos y volver a lanzar.
rm -rf /home/solange.luque/MODELOS/CMAQ/gnu/src/CMAQ-master/lib/x86_64/gcc/ioapi
Compilar el Chemistry Transport Model (CCTM)
cd CCTM/scripts/ mkdir BLD_CCTM_v54_gcc cp -R /opt/openmpi/openmpi-4.1.2/gnu/10.2.1/include/* BLD_CCTM_v54_gcc/ ./bldit_cctm.csh gcc >& run_bldit_cctm.log
NOTA: Si se está intentando una recompilación, antes vaciar el directorio
rm BLD_CCTM_v54_gcc/*