Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

pio_nc4.c:(.text+0x3212): undefined reference to `nc_inq_filter_avail'

cristian-vasile.achim

Cristian Achim
New Member
Hello,

I am trying to use cesm2.2.2 on our supercomputer Mahti. This is `_compilers.xml` entry:

```

<!-- ******************* MAHTI ********************* -->
<compiler MACH="mahti" COMPILER="gnu">
<CFLAGS>
<base> -std=gnu99 </base>
<append compile_threaded="TRUE"> -fopenmp </append>
</CFLAGS>
<FFLAGS>
<append compile_threaded="TRUE"> -fopenmp </append>
<append> -w -fallow-argument-mismatch -fallow-invalid-boz -lopenblas</append>
</FFLAGS>
<LDFLAGS>
<append compile_threaded="TRUE"> -fopenmp </append>
</LDFLAGS>
<NETCDF_C_PATH>$(NETCDF_C_INSTALL_ROOT)</NETCDF_C_PATH>
<NETCDF_FORTRAN_PATH>$(NETCDF_FORTRAN_INSTALL_ROOT)</NETCDF_FORTRAN_PATH>
<!-- <NETCDF_PATH>$(NETCDF_FORTRAN_INSTALL_ROOT)</NETCDF_PATH> --> <!--- Before running do export NETCDF_PATH=... -->
<PNETCDF_PATH>$(PARALLEL_NETCDF_INSTALL_ROOT)</PNETCDF_PATH>
<SLIBS>
<append>-L$(OPENBLAS_INSTALL_ROOT) -lopenblas -L$(NETCDF_PATH)/lib -lnetcdff -lnetcdf -Wl,-rpath=$(NETCDF_PATH)/lib -Wl,-rpath=$(PARALLEL_NETCDF_INSTALL_ROOT)/lib</append>
</SLIBS>
<ESMF_LIBDIR>/fmi/datasets/CESM-INPUT/esmf710r/lib/libO/Linux.intel.64.openmpi.default</ESMF_LIBDIR>
</compiler>
````
And this is the `_machines.xml` entry:

```

<!-- MAHTI -->
<machine MACH="mahti">
<DESC>Atos BullSequana XH2000, 128 pes/node (two 64-core processors) and 256 GB of memory/node, batch system is SLURM</DESC>
<OS>LINUX</OS>
<COMPILERS>gnu</COMPILERS>
<MPILIBS>openmpi</MPILIBS>
<PROJECT>project_2008521</PROJECT>
<CHARGE_ACCOUNT>project_2008521</CHARGE_ACCOUNT>
<CIME_OUTPUT_ROOT>/scratch/project_2008521/$USER/CIME_OUTPUT/</CIME_OUTPUT_ROOT>
<DIN_LOC_ROOT>/scratch/project_2008521/CESM-INPUT/inputdata</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/scratch/project_2008521/CESM-INPUT/inputdata/atm/datm7</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>/scratch/project_2008521/archive/$CASE</DOUT_S_ROOT>
<BASELINE_ROOT>/projappl/project_2008521/CESM-INPUT/cime/cesm_baselines</BASELINE_ROOT>
<CCSM_CPRNC>/projappl/project_2008521/cesm213/cime/tools/cprnc/cprnc</CCSM_CPRNC>
<GMAKE_J>64</GMAKE_J>
<BATCH_SYSTEM>slurm</BATCH_SYSTEM>
<SUPPORTED_BY>cristian at csc, monika at fmi</SUPPORTED_BY>
<MAX_TASKS_PER_NODE>128</MAX_TASKS_PER_NODE>
<MAX_MPITASKS_PER_NODE>64</MAX_MPITASKS_PER_NODE>
<PROJECT_REQUIRED>TRUE</PROJECT_REQUIRED>
<mpirun mpilib="default">
<executable>srun</executable>
</mpirun>
<module_system type="module" allow_error="true">
<init_path lang="perl">/usr/share/lmod/lmod/init/perl</init_path>
<init_path lang="python">/usr/share/lmod/lmod/init/env_modules_python.py</init_path>
<init_path lang="csh">/usr/share/lmod/lmod/init/csh</init_path>
<init_path lang="sh">/usr/share/lmod/lmod/init/sh</init_path>
<cmd_path lang="perl">/usr/share/lmod/lmod/libexec/lmod perl</cmd_path>
<cmd_path lang="python">/usr/share/lmod/lmod/libexec/lmod python</cmd_path>
<cmd_path lang="csh">module</cmd_path>
<cmd_path lang="sh">module</cmd_path>
<modules>
<command name="purge"/>
<command name="load">cmake</command>
<!-- <command name="load">perl/5.34.1</command> -->
<command name="load">python-data/3.8-22.10</command>
<command name="load">gcc/11.2.0</command>
<command name="load">openmpi/4.1.2</command>
<command name="load">openblas</command>
<command name="load">parallel-netcdf/1.12.2</command>
<command name="load">netcdf-c/4.8.1</command>
<command name="load">netcdf-fortran/4.5.3</command>
</modules>
</module_system>
```
The `./gdescribe_version` gives this:
```
$ ./describe_version
------------------------------------------------------------------------
git describe:
release-cesm2.2.2-0-g779b0a3
```





Have you made any changes to files in the source tree?
- Describe any changes (code, xml files, etc.)
I added entries to the `.xml` files corresponding to our machine Mahti. Those entries worked without issues with the **cesm2.1.1**.

Describe every step you took leading up to the problem:
- Describe every step you took, starting with the create_newcase command and including any changes you made to xml files, user_nl files, etc. Please try to reproduce the problem first using your own instructions.

When I create a case the build step failed:
```
/scratch/project_2008521/cristian/CIME_OUTPUT/test_1/bld/gnu/openmpi/nodebug/nothreads/mct/lib/libpioc.a(pio_nc4.c.o): in function `PIOc_inq_filter_avail':
pio_nc4.c:(.text+0x3212): undefined reference to `nc_inq_filter_avail'
```

If this is a port to a new machine: Please attach any files you added or changed for the machine port (e.g., config_compilers.xml, config_machines.xml, and config_batch.xml) and tell us the compiler version you are using on this machine.
Please attach any log files showing error messages or other useful information.

- If the error occurs during the build, please attach the appropriate build log file showing the compilation error message.
- If the error occurs during the run, please attach all log files from the run (cpl.log, cesm.log and all component log files).



Describe your problem or question:
 

Attachments

  • cesm_log.txt
    66.4 KB · Views: 0

jedwards

CSEG and Liaisons
Staff member
Try updating PIO to the lastest release. To do this edit file Externals.cfg and replace the pio tag with pio2_6_4,
then run ./manage_externals/checkout_externals pio
 

cristian-vasile.achim

Cristian Achim
New Member
Hello,

Thank you for your fast reply.
In the root folder I have the file Externals.cfg, but I have no pio word.

[cam]
tag = cam_cesm2_2_rel_09
protocol = git
repo_url = GitHub - ESCOMP/CAM: Community Atmosphere Model
local_path = components/cam
externals = Externals_CAM.cfg
required = True

[cice]
tag = cice5-cesm2.2.2-20231220
protocol = git
repo_url = GitHub - ESCOMP/CESM_CICE5: CESM2 Version of CICE
local_path = components/cice
required = True

[cdeps]
hash = d808b7c
protocol = git
repo_url = GitHub - ESCOMP/CDEPS: Community Data Models for Earth Prediction Systems
local_path = components/cdeps
required = True

[cime]
tag = cime5.8.32.9
protocol = git
repo_url = GitHub - ESMCI/cime: Common Infrastructure for Modeling the Earth
local_path = cime
externals = ../Externals_cime.cfg
required = True

[cism]
tag = cism2_1_69_b
protocol = git
repo_url = GitHub - ESCOMP/CISM-wrapper: Community Ice Sheet Model wrapper for CESM
local_path = components/cism
externals = Externals_CISM.cfg
required = True

[clm]
tag = release-cesm2.2.04
protocol = git
repo_url = GitHub - ESCOMP/CTSM: Community Terrestrial Systems Model (includes the Community Land Model of CESM)
local_path = components/clm
externals = Externals_CLM.cfg
required = True

[fms]
tag = fi_20200609_cesm2.2_231205
protocol = git
repo_url = GitHub - ESCOMP/FMS_interface
local_path = libraries/FMS
externals = Externals_FMS.cfg
required = False

[mom]
tag = mi_20200908
protocol = git
repo_url = GitHub - ESCOMP/MOM_interface: CESM interface to MOM Ocean Model
local_path = components/mom
externals = Externals.cfg
required = False

[mosart]
tag = mosart1_0_37_1
protocol = git
repo_url = GitHub - ESCOMP/MOSART: Model for Scale Adaptive River Transport, Mosart, part of the Community Earth System Model
local_path = components/mosart
required = True

[pop]
tag = pop2_cesm2_2_rel_n01
protocol = git
repo_url = GitHub - ESCOMP/POP2-CESM: Parallel Ocean Program (POP2) in CESM
local_path = components/pop
externals = Externals_POP.cfg
required = True

[rtm]
tag = rtm1_0_72
protocol = git
repo_url = GitHub - ESCOMP/RTM: River Transport Model, RTM, part of the Community Earth System Model
local_path = components/rtm
required = True

[ww3]
tag = ww3_200710
protocol = git
repo_url = GitHub - ESCOMP/WW3-CESM: WaveWatch III (WW3) in CESM
local_path = components/ww3
required = True

[externals_description]
schema_version = 1.0.01
 

jedwards

CSEG and Liaisons
Staff member
Sorry - I had that incorrect. In cesm/cime/src/externals/ you will find directories pio1 and pio2. Replace the pio2 directory with a
clone of the pio repository
 

cristian-vasile.achim

Cristian Achim
New Member
This is what I did:
Sorry - I had that incorrect. In cesm/cime/src/externals/ you will find directories pio1 and pio2. Replace the pio2 directory with a
clone of the pio repository

This is what I did:

Code:
```
git clone https://github.com/NCAR/ParallelIO.git pio2
cd pio2
git checkout pio2_6_4
```

Then:
Code:
```
create_newcase --compset FWmadSD --res f09_f09_mg17 --case test_1 --mach mahti
 cd test_1/
./case.setup
./case.build
```


In the end I still get the same error:

Code:
```
Building cesm from /projappl/project_2008521/cesm2.2.2/cime/src/drivers/mct/cime_config/buildexe with output to /scratch/project_2008521/cristian/CIME_OUTPUT/test_1/bld/cesm.bldlog.250131-144849
pio_nc4.c:(.text+0x3212): undefined reference to `nc_inq_filter_avail'
```
 

cristian-vasile.achim

Cristian Achim
New Member
It could be the version of netcdf you are using? Latest is 4.9.2
I do not know much about netcdf and cesm in general. For the moment I am using v4.8.1 (the higher version in our cluster).

I will check the possibility to use the 4.9.2. , but before starting to manually compile and test other versions, is there way to know for sure? Is there some list of dependencies that I can check?
 
Top