public subroutine cime_run()
Beginning of driver time step loop
Advance Clock
(this is time that models should have before they return
to the driver). Write timestamp and run alarm status
MAP ATM to OCN
Set a2x_ox as a module variable in prep_ocn_mod
This will be used later in the ice prep and in the
atm/ocn flux calculation
ATM/OCN SETUP (rasm_option1)
atm/ocn flux on atm grid (rasm_option1 and aoflux='atm')
atm/ocn flux on ocn grid (rasm_option1 and aoflux='ocn')
ocn prep-merge (rasm_option1)
ocn albedos (rasm_option1)
(MUST BE AFTER prep_ocn_mrg for swnet to ocn to be computed properly
ocn budget (rasm_option1)
ATM/OCN SETUP-SEND (cesm1_orig, cesm1_orig_tight, cesm1_mod, cesm1_mod_tight, or rasm_option1)
ocn average (cesm1_orig, cesm1_orig_tight, cesm1_mod, cesm1_mod_tight, or rasm_option1)
cpl -> ocn (cesm1_orig, cesm1_orig_tight, cesm1_mod, cesm1_mod_tight, or rasm_option1)
LND SETUP-SEND
lnd prep-merge
cpl -> lnd
ICE SETUP-SEND
Note that for atm->ice mapping below will leverage the assumption that the
ice and ocn are on the same grid and that mapping of atm to ocean is
done already for use by atmocn flux and ice model prep
ice prep-merge
cpl -> ice
WAV SETUP-SEND
wav prep-merge
cpl -> wav
ROF SETUP-SEND
rof prep-merge
cpl -> rof
RUN ICE MODEL
RUN LND MODEL
RUN ROF MODEL
RUN WAV MODEL
RUN OCN MODEL (cesm1_orig_tight or cesm1_mod_tight)
OCN RECV-POST (cesm1_orig_tight or cesm1_mod_tight)
ocn -> cpl (cesm1_orig_tight or cesm1_mod_tight)
ocn post (cesm1_orig_tight or cesm1_mod_tight)
ATM/OCN SETUP (cesm1_orig, cesm1_orig_tight, cesm1_mod or cesm1_mod_tight)
ocn prep-merge (cesm1_orig or cesm1_orig_tight)
atm/ocn flux on atm grid ((cesm1_orig, cesm1_orig_tight, cesm1_mod or cesm1_mod_tight) and aoflux='atm')
atm/ocn flux on ocn grid ((cesm1_orig, cesm1_orig_tight, cesm1_mod or cesm1_mod_tight) and aoflux='ocn')
ocn prep-merge (cesm1_mod or cesm1_mod_tight)
ocn albedos (cesm1_orig, cesm1_orig_tight, cesm1_mod or cesm1_mod_tight)
(MUST BE AFTER prep_ocn_mrg for swnet to ocn to be computed properly
ocn budget (cesm1_orig, cesm1_orig_tight, cesm1_mod or cesm1_mod_tight)
LND RECV-POST
lnd -> cpl
lnd post
GLC SETUP-SEND
glc prep-merge
cpl -> glc
ROF RECV-POST
rof -> cpl
rof post
Budget with old fractions
WJS (2-17-11): I am just using the first instance for the budgets because we
don't expect budgets to be conserved for our case (I case). Also note that we
don't expect budgets to be conserved for the interactive ensemble use case either.
tcraig (aug 2012): put this after rof->cpl so the budget sees the new r2x_rx.
it will also use the current r2x_ox here which is the value from the last timestep
consistent with the ocean coupling
ICE RECV-POST
ice -> cpl
ice post
Update fractions based on new ice fractions
ATM/OCN SETUP (rasm_option2)
atm/ocn flux on atm grid (rasm_option2 and aoflux_grid='atm')
atm/ocn flux on ocn grid (rasm_option2 and aoflux_grid='ocn')
ocn prep-merge (rasm_option2)
ocn albedos (rasm_option2)
(MUST BE AFTER prep_ocn_mrg for swnet to ocn to be computed properly
ocn budget (rasm_option2)
OCN SETUP-SEND (rasm_option2)
ocn average (rasm_option2)
cpl -> ocn (rasm_option2)
ATM SETUP-SEND
atm prep-merge
cpl -> atm
RUN OCN MODEL (NOT cesm1_orig_tight or cesm1_mod_tight)
RUN ATM MODEL
RUN GLC MODEL
WAV RECV-POST
wav -> cpl
wav post
GLC RECV-POST
glc -> cpl
glc post
ATM RECV-POST
atm -> cpl
atm post
Budget with new fractions
OCN RECV-POST (NOT cesm1_orig_tight and cesm1_mod_tight)
ocn -> cpl (NOT cesm1_orig_tight and cesm1_mod_tight)
ocn post (NOT cesm1_orig_tight and cesm1_mod_tight)
Write driver restart file
Write history file, only AVs on CPLID
RUN ESP MODEL
ESP computes resume options for other components -- update everyone
RESUME (read restart) if signaled
Timing and memory diagnostics
Report on memory usage
For now, just look at the first instance of each component
End of driver time step loop
Arguments
None