GEOS-ESM / GEOSgcm_App

Repo containing the scripts for running the GEOS Earth System Model GCM
Apache License 2.0
2 stars 1 forks source link

FMS init for Single Column model and GFDL microphysics #115

Open wmputman opened 4 years ago

wmputman commented 4 years ago

@narnold1 has encountered an issue with running the single column model with the GFDL microphysics that requires FMS to read the GFDL microphysics namelist. It seems that FMS does not get initialized in SCM. Which raises the question of how do we initialize FMS. It seems we only do this in FV3 (except, somehow MOM must also init FMS).

So we need to discuss a strategy for how to make the fms_init call in the context of SCM, GCM and AOGCM.

mathomp4 commented 4 years ago

I suppose that would be true. The SCM uses Datmo which has no need to run FMS at all!

We would have the same issue if we revived the Latlon core and tried to run GFDL microphysics. (Do we need to keep compiling it? It's still in Git though I'm pretty sure it would die instantly due to changes in Connectivity in AGCM.)

mathomp4 commented 4 years ago

I suppose fms_init must be pretty robust as it is mentioned 98 (!) times in the current GEOSgcm. Though 70 of those are in MOM5 itself.

I suppose we'd need a more knowledgable person to figure this out (maybe @bena-nasa ?), but looking at how fms_init is called in GEOS at the moment, I think we could add an fms_init() call to Moist GC, say, if someone calls for GFDL microphysics. It seems to have no issue being called over-and-over and the first person wins?

mathomp4 commented 4 years ago

From FMS:

!   <OVERVIEW>
!     Initializes the FMS module and also calls the initialization routines for all
!     modules in the MPP package. Will be called automatically if the user does
!     not call it.
!   </OVERVIEW>
!   <DESCRIPTION>
!      Initialization routine for the fms module. It also calls initialization routines
!      for the mpp, mpp_domains, and mpp_io modules. Although this routine
!      will be called automatically by other fms_mod routines, users should
!      explicitly call fms_init. If this routine is called more than once it will
!      return silently. There are no arguments.
!   </DESCRIPTION>

Looks like it can be called multiple times and will return silently. Though:

Will be called automatically if the user does not call it.

seems to not be true...