cime_run Subroutine

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