Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add DOCN to moab driver #6249

Merged
merged 26 commits into from
Mar 29, 2024
Merged

Add DOCN to moab driver #6249

merged 26 commits into from
Mar 29, 2024

Conversation

iulian787
Copy link
Contributor

@iulian787 iulian787 commented Feb 21, 2024

Add support for the MOAB coupler in data-ocean.

This allows running F-cases that have ocean as the only data model and use MPAS-Seaice with the moab coupler.

On the component data side, instance a new imoab application whose degrees of freedom are aligned with the regular
domain decomposition from the data model. More changes were needed on the coupler side, because previous coupled cases did not have samegrid_ao flag true.
Also, changes in the intel compiler or bios on chrysalis uncovered other needs about initialization of
mpi_reduce variables. (mpi_reduce is needed for comparisons between mct and moab fields,
in debug/verification mode)

Also add MOAB libs to perlmutter.

[BFB]

Copy link

github-actions bot commented Feb 21, 2024

PR Preview Action v1.4.7
🚀 Deployed preview to https://E3SM-Project.github.io/E3SM/pr-preview/pr-6249/
on branch gh-pages at 2024-03-28 22:53 UTC

@rljacob rljacob added the BFB PR leaves answers BFB label Feb 22, 2024
@rljacob rljacob requested a review from wlin7 February 26, 2024 17:18
@@ -1,2 +1,3 @@
string(APPEND CMAKE_C_FLAGS_RELEASE " -O2")
string(APPEND CMAKE_Fortran_FLAGS_RELEASE " -O2")
set(MOAB_PATH "/nfs/gce/projects/climate/software/moab/devel/mpich-4.0/gcc-11.1.0")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These MOAB_PATH values need to be in config_machines using the MOAB_ROOT environment var, using the established pattern (checking if it's already set etc).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I have to wait until you merge #6308 because its needs the changes to the MPAS framework cmake. I'll rebase this after you merge 6308.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've rebased this branch and removed all the MOAB_PATHs

@@ -10,3 +10,4 @@ set(MPIFC "ftn")
set(SCC "gcc")
set(SCXX "g++")
set(SFC "gfortran")
set(MOAB_PATH "/global/cfs/cdirs/e3sm/software/moab/gnu")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same

@@ -29,3 +29,4 @@ string(APPEND CMAKE_Fortran_FLAGS " -fp-model=consistent -fimf-use-svml")
string(APPEND CMAKE_Fortran_FLAGS_RELEASE " -g -traceback")
string(APPEND CMAKE_Fortran_FLAGS " -DHAVE_ERF_INTRINSICS")
string(APPEND CMAKE_CXX_FLAGS " -fp-model=consistent")
set(MOAB_PATH "/global/cfs/cdirs/e3sm/software/moab/intel")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same

vijaysm and others added 21 commits March 28, 2024 14:49
…ities (for OCN) since they are culled - and creates a discontinuous ID space
…ransfer information. This commit also has several other fixes for the data ocean model to work correctly during setup/init
…ignGlobalIDs

that only exists in a specific MOAB branch
also, we have an extra ocean instance used for flux calculations
code should work with mct driver
… can use comm graph to communicate with MOAB decomposition
…tion correctly. So_t and area/frac values are propagating correctly for example
use NO_CULLING for data ocean
fractions ofrac are copied now from atmosphere frac to ocean,
then projected to atm ?

global ids are retrieved from gsmap now instead of domain
for flux ao calculations
domain ocean is not init properly for data ocean

maybe the correct change is to initialize it properly on ocean
data side

it crashes now in phys atm, something is still missing
these are local in the module
no need to retrieve them every time
aream needs to be copied for atm, and
projected for ocean, when samegrid_ao is true
it would lead to a seq_map_map call to be left out for MCT driver
workflow
read ocean domain file on coupler side only
pass the file name with infodata, similar to land and rof mesh files
use frac, area, mask from mct, not from domain file
use only one instance of ocean on component side, corresponding to
mct grid
need to define GLOBAL_ID tag to ocean instances, after reading the
mesh, otherwise the tag is not retrieved from the instance at restart
component_mod depends on cplcomp_exchange_mod
we use this for computing the L2 norm of the errors
either on component side or coupler side
current intel compiler on chrysalis complains about a
not initialized variable
It is used in a MPI reduce sum
rljacob and others added 4 commits March 28, 2024 14:49
Remove moab includes which should not be needed for
building.
intel still has runtime issues related to -lm undefined
symbol: __libm_sincos_e7

mct driver is fine, even though it is linked using -lm
could be hdf5 dependency
also, only on the master task
@rljacob rljacob force-pushed the iulian787/data_ocean_model branch from 896afef to b170f68 Compare March 28, 2024 22:49
Remove MOAB_PATH from perlmutter and anlgce
@rljacob
Copy link
Member

rljacob commented Mar 28, 2024

@jgfouca the MOAB_PATH's were removed and this was rebased on to the head of master. F-cases still build and run on perlmutter with moab.
tested with: ./create_newcase --case F1850mb --res ne4pg2_oQU480 --compset F1850 --driver moab

rljacob added a commit that referenced this pull request Mar 29, 2024
Add support for the MOAB coupler in data-ocean.

This allows running F-cases that have ocean as the only data model and use MPAS-Seaice with the moab coupler.

On the component data side, instance a new imoab application whose degrees of freedom are aligned with the regular
domain decomposition from the data model. More changes were needed on the coupler side,
because previous coupled cases did not have samegrid_ao flag true.
Also, changes in the intel compiler or bios on chrysalis uncovered other needs about initialization of
mpi_reduce variables. (mpi_reduce is needed for comparisons between mct and moab fields,
in debug/verification mode)

Also add MOAB libs to perlmutter.

[BFB]
@rljacob rljacob merged commit 6b9ecaa into master Mar 29, 2024
11 checks passed
@rljacob rljacob deleted the iulian787/data_ocean_model branch March 29, 2024 18:12
@rljacob rljacob changed the title Implement data ocean model for moab driver Add DOCN to moab driver Aug 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BFB PR leaves answers BFB Coupler data-models
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants