Hi, what is my best approach to implement coupling of CICE6 to ROMS ? And is this the right place to ask this question ?
Just in case, has anybody done this already and willing to share the code changes necessary in CICE6 ?
In the past I have played with a coupled ROMS-CICE5 system but I did not implement the coupling so I have no experience with CICE code as such.
After adapting env.machine and cice.setting (gnu compiler, netcdf) CICE6 standalone compiles fine on my machine (Ubuntu 18.04, 8 cores).
Now, as recommended in the CICE Documentation I looked at the already implemented CESM coupling capability that uses MCT. It appears to be activated from cpp option CESMCOUPLED. The driver lives under cicecore/drivers/mct/cesm1/. Eventually I would copy that folder into something like cicecore/drivers/mct/ROMS where the adaptations to ROMS would be made.
But as a first step I try to compile CICE with the CESMCOUPLED flag on (without actually planning to run it)
changes in
cice.settings
setenv ICE_DRVOPT mct/cesm1
in cice.build
setenv ICE_CPPDEFS "-DCESMCOUPLED"
now the first question would be how does CICE find the MCT libraries ?
I downloaded MCT2.1, built the library and I'm now looking for the right place to inform CICE about their existence.
I tried adding the MCT inc and lib path to the cice.build
## List of source code directories (in order of importance).
cat >! Filepath << EOF
local/MCT/lib
local/MCT/include
${ICE_SANDBOX}/cicecore/drivers/${ICE_DRVOPT}
${ICE_SANDBOX}/cicecore/cicedynB/dynamics
the compilation fails as soon as one of the mct module is called.
Obviously I need to tell CICE something else about the MCT library.
Apologies for these naive questions but are the mct modules actually compiled with CICE ? Do I need to direct CICE to the build code of MCT?
Any help and leads would be much appreciated.
thank you
Stefan
Just in case, has anybody done this already and willing to share the code changes necessary in CICE6 ?
In the past I have played with a coupled ROMS-CICE5 system but I did not implement the coupling so I have no experience with CICE code as such.
After adapting env.machine and cice.setting (gnu compiler, netcdf) CICE6 standalone compiles fine on my machine (Ubuntu 18.04, 8 cores).
Now, as recommended in the CICE Documentation I looked at the already implemented CESM coupling capability that uses MCT. It appears to be activated from cpp option CESMCOUPLED. The driver lives under cicecore/drivers/mct/cesm1/. Eventually I would copy that folder into something like cicecore/drivers/mct/ROMS where the adaptations to ROMS would be made.
But as a first step I try to compile CICE with the CESMCOUPLED flag on (without actually planning to run it)
changes in
cice.settings
setenv ICE_DRVOPT mct/cesm1
in cice.build
setenv ICE_CPPDEFS "-DCESMCOUPLED"
now the first question would be how does CICE find the MCT libraries ?
I downloaded MCT2.1, built the library and I'm now looking for the right place to inform CICE about their existence.
I tried adding the MCT inc and lib path to the cice.build
## List of source code directories (in order of importance).
cat >! Filepath << EOF
local/MCT/lib
local/MCT/include
${ICE_SANDBOX}/cicecore/drivers/${ICE_DRVOPT}
${ICE_SANDBOX}/cicecore/cicedynB/dynamics
the compilation fails as soon as one of the mct module is called.
Code:
/cicecore/drivers/mct/cesm1/ice_cpl_indices.F90:3:6:
use mct_mod
1
Fatal Error: Can't open module file ‘mct_mod.mod’ for reading at (1): No such file or directory
compilation terminated.
Obviously I need to tell CICE something else about the MCT library.
Apologies for these naive questions but are the mct modules actually compiled with CICE ? Do I need to direct CICE to the build code of MCT?
Any help and leads would be much appreciated.
thank you
Stefan