GEOS-ESM / MAPL

MAPL is a foundation layer of the GEOS architecture, whose original purpose is to supplement the Earth System Modeling Framework (ESMF)
https://geos-esm.github.io/MAPL/
Apache License 2.0
27 stars 18 forks source link

What ESMF build options are necessary to build MAPL? #76

Closed LiamBindle closed 4 years ago

LiamBindle commented 4 years ago

Hi everyone,

I've been working on setting up a CI build matrix for GCHP, and as a part of that I'm building ESMF with Spack. ESMF's Spack package has a number of options, and I was wondering if you could help me understand which of these are necessary for MAPL. These options are to enable support for

Obviously the MPI and NetCDF options need to be on, but what about the others? Are ParallelIO, pNetCDF, or xerces necessary?

Thanks in advance,

Liam

mathomp4 commented 4 years ago

@LiamBindle For GEOS, pretty much the only requirement is MPI. Now, when I build in Baselibs, I also enable netCDF support because, well, it's essentially free as I'm always building netCDF. But, I don't think MAPL in itself uses any of ESMF's netCDF capabilities (though @bena-nasa or @atrayano might know differently).

If I recall, when I did my spack GEOS, I built with:

packages:
   hdf5:
     variants: +fortran+szip+hl+threadsafe
     # Note that cdo requires threadsafe, but hdf5 doesn't
     # seem to want that with parallel. Hmm.
   netcdf:
     variants: +hdf4+dap
   esmf:
     variants: ~pnetcdf~xerces
   gftl:
     variants: +pfunit

So, no pnetcdf or xerces.

Though at that time I had to hack the ESMF package as it was a bit basic and quite working. (Plus I had to hack in a "use this beta snapshot tarball". Now that 8 is released, I might actually try again.)

(Also note: not sure how I fixed that hdf5/cdo business. I might have just not built cdo...I think this is not quite my final packages.yaml.)

LiamBindle commented 4 years ago

@mathomp4 Thanks for the info. The spec I'm using is esmf@8.0.0 target=x86_64 -lapack -pio -pnetcdf -xerces ^openmpi@3.1.4, and it sounds like that's okay, so I'll continue with that.

Thanks again,

Liam