11     model_label_advance => label_advance
 
   24     type(esmf_gridcomp)  :: 
model 
   25     integer, 
intent(out) :: rc
 
   30     call nuopc_compderive(
model, model_routine_ss, rc=rc)
 
   31     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
   37     call nuopc_compsetentrypoint(
model, esmf_method_initialize, &
 
   38       phaselabellist=(/
"IPDv00p1"/), userroutine=
initializep1, rc=rc)
 
   39     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
   43     call nuopc_compsetentrypoint(
model, esmf_method_initialize, &
 
   44       phaselabellist=(/
"IPDv00p2"/), userroutine=
initializep2, rc=rc)
 
   45     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
   51     call nuopc_compspecialize(
model, speclabel=model_label_advance, &
 
   53     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
   62   subroutine initializep1(model, importState, exportState, clock, rc)
 
   63     type(esmf_gridcomp)  :: model
 
   64     type(esmf_state)     :: importState, exportState
 
   65     type(esmf_clock)     :: clock
 
   66     integer, 
intent(out) :: rc
 
   71     call nuopc_advertise(importstate, &
 
   72       standardname=
"sea_surface_temperature", name=
"sst", rc=rc)
 
   73     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
   79     call nuopc_advertise(exportstate, &
 
   80       standardname=
"air_pressure_at_sea_level", name=
"pmsl", rc=rc)
 
   81     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
   87     call nuopc_advertise(exportstate, &
 
   88       standardname=
"surface_net_downward_shortwave_flux", name=
"rsns", rc=rc)
 
   89     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
   98   subroutine initializep2(model, importState, exportState, clock, rc)
 
   99     type(esmf_gridcomp)  :: model
 
  100     type(esmf_state)     :: importState, exportState
 
  101     type(esmf_clock)     :: clock
 
  102     integer, 
intent(out) :: rc
 
  105     type(esmf_field)        :: field
 
  106     type(esmf_grid)         :: gridIn
 
  107     type(esmf_grid)         :: gridOut
 
  112     gridin = esmf_gridcreatenoperidimufrm(maxindex=(/20, 100/), &
 
  113       mincornercoord=(/10._esmf_kind_r8, 20._esmf_kind_r8/), &
 
  114       maxcornercoord=(/100._esmf_kind_r8, 200._esmf_kind_r8/), &
 
  115       coordsys=esmf_coordsys_cart, staggerloclist=(/esmf_staggerloc_center/), &
 
  117     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  124     field = esmf_fieldcreate(name=
"sst", grid=gridin, &
 
  125       typekind=esmf_typekind_r8, rc=rc)
 
  126     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  130     call nuopc_realize(importstate, field=field, rc=rc)
 
  131     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  137     field = esmf_fieldcreate(name=
"pmsl", grid=gridout, &
 
  138       typekind=esmf_typekind_r8, rc=rc)
 
  139     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  143     call nuopc_realize(exportstate, field=field, rc=rc)
 
  144     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  150     field = esmf_fieldcreate(name=
"rsns", grid=gridout, &
 
  151       typekind=esmf_typekind_r8, rc=rc)
 
  152     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  156     call nuopc_realize(exportstate, field=field, rc=rc)
 
  157     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  167     type(esmf_gridcomp)  :: model
 
  168     integer, 
intent(out) :: rc
 
  171     type(esmf_clock)              :: clock
 
  172     type(esmf_state)              :: importState, exportState
 
  174     type (ESMF_Field) :: field
 
  175     type(esmf_fieldstatus_flag) :: fieldStatus
 
  176     real(8), 
pointer :: sst(:,:)
 
  177     real(8), 
pointer :: pmsl(:,:)
 
  178     integer :: LB(2), UB(2)
 
  180     integer, 
save :: init = 0
 
  185     call nuopc_modelget(
model, modelclock=clock, importstate=importstate, &
 
  186       exportstate=exportstate, rc=rc)
 
  187     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  199     call esmf_clockprint(clock, options=
"currTime", &
 
  200       prestring=
"------>Advancing ATM from: ", rc=rc)
 
  201     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  206     call esmf_clockprint(clock, options=
"stopTime", &
 
  207       prestring=
"--------------------------------> to: ", rc=rc)
 
  208     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  217     call esmf_stateget(importstate, 
"sst", field, rc=rc)
 
  218     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  222     call esmf_fieldget(field, status=fieldstatus, rc=rc)
 
  223     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  227     call esmf_fieldget(field, 0, sst, computationallbound=lb, rc=rc)
 
  228     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  234     call esmf_stateget(exportstate, 
"pmsl", field, rc=rc)
 
  235     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  239     call esmf_fieldget(field, status=fieldstatus, rc=rc)
 
  240     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  244     call esmf_fieldget(field, 0, pmsl, computationallbound=lb, rc=rc)
 
  245     if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
 
  252     print*, 
"ATM-DATA sst", sst(lb(1),lb(2)), pmsl(lb(1),lb(2))