Skip to content

Instantly share code, notes, and snippets.

@cfbastarz
Created January 2, 2026 19:36
Show Gist options
  • Select an option

  • Save cfbastarz/25d97773cd2d75cd43a26e53fbf329d3 to your computer and use it in GitHub Desktop.

Select an option

Save cfbastarz/25d97773cd2d75cd43a26e53fbf329d3 to your computer and use it in GitHub Desktop.
Compilção MPAS stochastic physics
# Code checkout
git clone --recursive https://github.com/dtcenter/MPAS-Model.git
cd MPAS-Model
git checkout remotes/origin/gsl/MPAS_stoch_physics
cd src/core_atmosphere
rm -rf stochastic_physics
git clone --recursive https://github.com/dtcenter/stochastic_physics.git
cd stochastic_physics
git checkout remotes/origin/gsl/MPAS_stoch_physics
**Nota:** Acrescentar ao arquivo /mnt/beegfs/carlos.bastarz/SPPT/MPAS-Model/src/core_atmosphere/stochastic_physics/Makefile o include do netcdf-fortran `-I/opt/ohpc/pub/libs/intel/impi/netcdf-fortran/4.5.3/include`
```
FCINCLUDES_STOCH = $(FCINCLUDES) -I../../framework -I../../external/esmf_time_f90 -I/opt/ohpc/pub/libs/intel/impi/netcdf-fortran/4.5.3/include
```
## Build
module purge
module load ohpc
module swap gnu9 intel
module swap openmpi4 impi
module load hwloc
module load phdf5
module load netcdf
module load netcdf-fortran
module swap intel intel/2022.1.0
module load cmake/3.21.3
module load pnetcdf/1.12.2
pnetcdf-config --prefix
export PNETCDF=/opt/ohpc/pub/libs/intel/impi/pnetcdf/1.12.2
cd /mnt/beegfs/carlos.bastarz/SPPT/MPAS-Model
make -j1 ifort CORE=init_atmosphere AUTOCLEAN=true
===
*******************************************************************************
MPAS was built with default single-precision reals.
Debugging is off.
Parallel version is on.
Using the mpi_f08 module.
Papi libraries are off.
TAU Hooks are off.
MPAS was built without OpenMP support.
MPAS was built without OpenMP-offload GPU support.
MPAS was built without OpenACC accelerator support.
Position-dependent code was generated.
The shared framework and init_atmosphere core were cleaned and re-compiled.
MPAS was built with .F files.
The native timer interface is being used
Using the SMIOL library.
*******************************************************************************
===
**Nota:** esse código contém um utilitário (/mnt/beegfs/carlos.bastarz/SPPT/MPAS-Model/src/core_atmosphere/tools/manage_externals/checkout_externals) que deveria se encarregar de obter os códigos das físicas a partir do GitHub (vide arquivo /mnt/beegfs/carlos.bastarz/SPPT/MPAS-Model/src/core_atmosphere/Externals.cfg), mas por algum motivo não funcionou para mim. Tive que baixar esses códigos manualmente:
cd /mnt/beegfs/carlos.bastarz/SPPT/MPAS-Model/src/core_atmosphere/physics
git clone https://github.com/NCAR/MMM-physics.git physics_mmm
cd /mnt/beegfs/carlos.bastarz/SPPT/MPAS-Model/src/core_atmosphere/physics/physics_noaa
rm -rf *
git clone https://github.com/NCAR/TEMPO.git
git clone https://github.com/NOAA-GSL/UGWP.git
git clone https://github.com/NOAA-GSL/RUCLSM.git
git clone https://github.com/NCAR/MYNN-EDMF.git
git clone https://github.com/NOAA-GSL/GFL.git
git clone https://github.com/NOAA-GSL/SMOKE.git
cd /mnt/beegfs/carlos.bastarz/SPPT/MPAS-Model
make -j1 ifort CORE=atmosphere
===
mpif90 -O3 -o atmosphere_model driver/*.o -L. -ldycore -lops -lframework -L/mnt/beegfs/carlos.bastarz/SPPT/tmp/MPAS-Model/src/external/SMIOL -lsmiolf -lsmiol -L/opt/ohpc/pub/libs/intel/impi/pnetcdf/1.12.2/lib -lpnetcdf -I./external/esmf_time_f91 -L./external/esmf_time_f90 -lesmf_time -lmkl_intel_lp64 -lmkl_core -lmkl_sequential
./libdycore.a(stochy_data_mod.o): In function `stochy_data_mod_mp_read_pattern_':
stochy_data_mod.F90:(.text+0xf7d): undefined reference to `netcdf_mp_nf90_get_var_1d_fourbyteint_'
stochy_data_mod.F90:(.text+0x10ac): undefined reference to `netcdf_mp_nf90_get_var_1d_eightbytereal_'
stochy_data_mod.F90:(.text+0x1190): undefined reference to `netcdf_mp_nf90_get_var_1d_eightbytereal_'
./libdycore.a(stochy_data_mod.o): In function `stochy_data_mod_mp_init_stochdata_ocn_':
stochy_data_mod.F90:(.text+0x24c1): undefined reference to `netcdf_mp_nf90_open_'
stochy_data_mod.F90:(.text+0x2555): undefined reference to `netcdf_mp_nf90_get_att_one_fourbyteint_'
stochy_data_mod.F90:(.text+0x2665): undefined reference to `netcdf_mp_nf90_inq_varid_'
stochy_data_mod.F90:(.text+0x26e9): undefined reference to `netcdf_mp_nf90_inq_varid_'
stochy_data_mod.F90:(.text+0x27d3): undefined reference to `netcdf_mp_nf90_inq_varid_'
stochy_data_mod.F90:(.text+0x2857): undefined reference to `netcdf_mp_nf90_inq_varid_'
stochy_data_mod.F90:(.text+0x28e1): undefined reference to `netcdf_mp_nf90_inq_varid_'
./libdycore.a(stochy_data_mod.o):stochy_data_mod.F90:(.text+0x2961): more undefined references to `netcdf_mp_nf90_inq_varid_' follow
./libdycore.a(stochy_data_mod.o): In function `stochy_data_mod_mp_init_stochdata_':
stochy_data_mod.F90:(.text+0x4d3b): undefined reference to `netcdf_mp_nf90_open_'
stochy_data_mod.F90:(.text+0x4dcb): undefined reference to `netcdf_mp_nf90_get_att_one_fourbyteint_'
stochy_data_mod.F90:(.text+0x5585): undefined reference to `netcdf_mp_nf90_inq_varid_'
stochy_data_mod.F90:(.text+0x5608): undefined reference to `netcdf_mp_nf90_inq_varid_'
stochy_data_mod.F90:(.text+0x56f1): undefined reference to `netcdf_mp_nf90_inq_varid_'
stochy_data_mod.F90:(.text+0x5774): undefined reference to `netcdf_mp_nf90_inq_varid_'
stochy_data_mod.F90:(.text+0x5801): undefined reference to `netcdf_mp_nf90_inq_varid_'
./libdycore.a(stochy_data_mod.o):stochy_data_mod.F90:(.text+0x588a): more undefined references to `netcdf_mp_nf90_inq_varid_' follow
./libdycore.a(get_stochy_pattern.o): In function `get_stochy_pattern_mod_mp_write_stoch_restart_atm_':
get_stochy_pattern.F90:(.text+0xbfd8): undefined reference to `netcdf_mp_nf90_create_'
get_stochy_pattern.F90:(.text+0xc009): undefined reference to `netcdf_mp_nf90_put_att_one_fourbyteint_'
get_stochy_pattern.F90:(.text+0xc043): undefined reference to `netcdf_mp_nf90_def_dim_'
get_stochy_pattern.F90:(.text+0xc06f): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc095): undefined reference to `netcdf_mp_nf90_def_dim_'
get_stochy_pattern.F90:(.text+0xc0c1): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc0f7): undefined reference to `netcdf_mp_nf90_def_dim_'
get_stochy_pattern.F90:(.text+0xc123): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc149): undefined reference to `netcdf_mp_nf90_def_dim_'
get_stochy_pattern.F90:(.text+0xc175): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc1ab): undefined reference to `netcdf_mp_nf90_def_dim_'
get_stochy_pattern.F90:(.text+0xc1d7): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc1fd): undefined reference to `netcdf_mp_nf90_def_dim_'
get_stochy_pattern.F90:(.text+0xc229): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc25e): undefined reference to `netcdf_mp_nf90_def_dim_'
get_stochy_pattern.F90:(.text+0xc28a): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc33d): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xc36d): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc403): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xc433): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc4e6): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xc516): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc5ac): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xc5dc): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc6a3): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xc6d3): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc76e): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xc79e): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc858): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xc888): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc922): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xc952): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xc96d): undefined reference to `netcdf_mp_nf90_enddef_'
get_stochy_pattern.F90:(.text+0xcb9c): undefined reference to `netcdf_mp_nf90_def_dim_'
get_stochy_pattern.F90:(.text+0xcbc8): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xcc72): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xcca2): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xcd40): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xcd70): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xcf20): undefined reference to `netcdf_mp_nf90_close_'
./libdycore.a(get_stochy_pattern.o): In function `get_stochy_pattern_mod_mp_write_pattern_..1':
get_stochy_pattern.F90:(.text+0xd7be): undefined reference to `netcdf_mp_nf90_put_var_1d_fourbyteint_'
get_stochy_pattern.F90:(.text+0xd844): undefined reference to `netcdf_mp_nf90_put_var_1d_eightbytereal_'
./libdycore.a(get_stochy_pattern.o): In function `get_stochy_pattern_mod_mp_write_stoch_restart_ocn_':
get_stochy_pattern.F90:(.text+0xdd2e): undefined reference to `netcdf_mp_nf90_close_'
get_stochy_pattern.F90:(.text+0xdddd): undefined reference to `netcdf_mp_nf90_create_'
get_stochy_pattern.F90:(.text+0xde0e): undefined reference to `netcdf_mp_nf90_put_att_one_fourbyteint_'
get_stochy_pattern.F90:(.text+0xde48): undefined reference to `netcdf_mp_nf90_def_dim_'
get_stochy_pattern.F90:(.text+0xde74): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xde9a): undefined reference to `netcdf_mp_nf90_def_dim_'
get_stochy_pattern.F90:(.text+0xdec6): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xdef8): undefined reference to `netcdf_mp_nf90_def_dim_'
get_stochy_pattern.F90:(.text+0xdf24): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xdfd7): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xe007): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xe09d): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xe0cd): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xe180): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xe1b0): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xe246): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xe276): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xe309): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xe339): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xe3d1): undefined reference to `netcdf_mp_nf90_def_var_manydims_'
get_stochy_pattern.F90:(.text+0xe401): undefined reference to `netcdf_mp_nf90_put_att_text_'
get_stochy_pattern.F90:(.text+0xe41c): undefined reference to `netcdf_mp_nf90_enddef_'
./libdycore.a(get_stochy_pattern.o): In function `get_stochy_pattern_mod_mp_write_pattern_..0':
get_stochy_pattern.F90:(.text+0xec81): undefined reference to `netcdf_mp_nf90_put_var_1d_fourbyteint_'
get_stochy_pattern.F90:(.text+0xecf7): undefined reference to `netcdf_mp_nf90_put_var_1d_eightbytereal_'
./libdycore.a(get_stochy_pattern.o): In function `get_stochy_pattern_mod_mp_write_pattern_':
get_stochy_pattern.F90:(.text+0xf83b): undefined reference to `netcdf_mp_nf90_put_var_1d_fourbyteint_'
get_stochy_pattern.F90:(.text+0xf8c0): undefined reference to `netcdf_mp_nf90_put_var_1d_eightbytereal_'
get_stochy_pattern.F90:(.text+0xf934): undefined reference to `netcdf_mp_nf90_put_var_1d_eightbytereal_'
make[2]: *** [Makefile:13: mpas] Error 1
make[2]: Leaving directory '/mnt/beegfs/carlos.bastarz/SPPT/tmp/MPAS-Model/src'
make[1]: *** [Makefile:1533: mpas_main] Error 2
make[1]: Leaving directory '/mnt/beegfs/carlos.bastarz/SPPT/tmp/MPAS-Model'
make: *** [Makefile:327: ifort] Error 2
===
**Nota:** Acredito que este erro esteja relacionado com a configuração do NetCDF na Egeon.
carlos.bastarz@inpe.br (02/01/2026)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment