Go through questions from last week: Jan 20
More questions:
- Are there more special config options that make sense? (stand-alone modes for each component?) – Stage-2 Question
- For example: (atmlnd_only, no_lnd)
- Top level restarts for coup_csm version? – Examine with CAM group
- Timemgr namelist for coup_csm version? – ditto
Questions for next time: - Revist top level picture again – especially how states handled.
- List of behavior of namelist items – what you can or can not set on branch or continue?
- Error codes instead of abort?
Look at new top level design with run methods:subroutine ccsm_seq_run( esmfsync_clock, initinfo ) type(ESMF_Clock), intent(in) :: esmfsync_clock type(initinfo_t), intent(in) :: initinfo ! ! Averaging rules components are responsible for any averaging done on within ! their coupling interval. Hub will average atmosphere fields for surface components ! and put the average on the given surface component import state. Hub will also average ! surface data to the atmosphere model coupling interval and put it on the atm import ! state ! if ( shr_inputinfo_RunModel( initinfo, "atm" ) .and. ESMF_AlarmIsRinging( atm_alarm ) )then call ESMF_GridCompRun( gc_atm, import=h2a_a, export=a2h_a, esmfsync_clock, phase=1 ) call ESMF_CplCompRun ( cc_map_a2l, import=a2h_a, export=a2h_l, phase=1, rc=rc ) call ESMF_CplCompRun ( cc_map_a2i, import=a2h_a, export=a2h_i, phase=1, rc=rc ) call ESMF_CplCompRun ( cc_map_a2o, import=a2h_a, export=a2h_o, phase=1, rc=rc ) end if if ( shr_inputinfo_RunModel( initinfo, "lnd" ) .and. ESMF_AlarmIsRinging( lnd_alarm ) )then ! Note: x2h_l is the composite state pointing to: a2h_l call ESMF_GridCompRun ( gc_mrg_h2l, import=x2h_l, export=h2l_l, phase=1, rc=rc ) call ESMF_GridCompRun( gc_lnd, import=h2l_l, export=l2h_l, esmfsync_clock, phase=1 ) call ESMF_GridCompRun( gc_lnd, phase=2 ) call ESMF_CplCompRun ( cc_map_a2l, import=l2h_l, export=l2h_a, phase=2, rc=rc ) !call ESMF_AlarmRingerOff( lnd_alarm ) end if if ( shr_inputinfo_RunModel( initinfo, "ice" ) .and. ESMF_AlarmIsRinging( ice_alarm ) )then ! Note: x2h_i is the composite state pointing to: a2h_i, o2i_i call ESMF_GridCompRun ( gc_mrg_h2i, import=x2h_i, export=h2i_i, phase=1, rc=rc ) call ESMF_GridCompRun( gc_ice, import=h2i_i, export=i2h_i, esmfsync_clock, phase=1 ) call ESMF_GridCompRun( gc_ice, phase=2 ) call ESMF_CplCompRun ( cc_map_a2i, import=i2h_i, export=i2h_a, phase=2, rc=rc ) call ESMF_CplCompRun ( cc_map_o2i, import=i2o_i, export=i2o_o, phase=1, rc=rc ) !call ESMF_AlarmRingerOff( ice_alarm ) end if if ( shr_inputinfo_RunModel( initinfo, "ocn" ) .and. ESMF_AlarmIsRinging( ocn_alarm ) )then ! Note: x2h_o is the composite state pointing to: i2o_o and a2h_o call ESMF_GridCompRun ( gc_mrg_h2o, import=x2h_o, export=h2o_o, phase=1, rc=rc ) call ESMF_GridCompRun( gc_ocn, import=h2o_o, export=o2h_o, esmfsync_clock, phase=1 ) call ESMF_CplCompRun( cc_map_a2o, import=o2h_o, export=o2h_a, phase=2 ) call ESMF_CplCompRun ( cc_map_o2i, import=o2h_o, export=o2h_i, phase=2, rc=rc ) !call ESMF_AlarmRingerOff( ocn_alarm ) end if if ( shr_inputinfo_runModel( initinfo, "atm" ) .and. ESMF_AlarmIsRinging( atm_alarm ) )then ! Note: x2h_a is the composite state pointing to: l2h_a, i2h_a, and o2h_a call ESMF_GridCompRun( gc_mrg_h2a, import=x2h_a, export=h2a_a, phase=1, rc=rc ) call ESMF_GridCompRun( gc_atm, import=h2a_a, phase=2 ) !call ESMF_AlarmRingerOff( atm_alarm ) end if end subroutine ccsm_seq_run