11 driver_label_setmodelservices => label_setmodelservices, &
12 driver_label_setrunsequence => label_setrunsequence
31 type(esmf_gridcomp) :: driver
32 integer,
intent(out) :: rc
37 call nuopc_compderive(driver, driver_routine_ss, rc=rc)
38 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
44 call nuopc_compspecialize(driver, speclabel=driver_label_setmodelservices, &
46 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
50 call nuopc_compspecialize(driver, speclabel=driver_label_setrunsequence, &
52 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
62 type(esmf_gridcomp) :: driver
63 integer,
intent(out) :: rc
67 type(esmf_time) :: startTime
68 type(esmf_time) :: stopTime
69 type(esmf_timeinterval) :: timeStep
70 type(esmf_clock) :: internalClock
71 integer :: petCount, i
72 integer,
allocatable :: petList(:)
73 type(esmf_gridcomp) :: child
74 type(esmf_cplcomp) :: connector
79 call esmf_gridcompget(driver, petcount=petcount, rc=rc)
80 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
86 allocate(petlist(petcount))
90 call nuopc_driveraddcomp(driver,
"ATM", atmss, petlist=petlist, &
92 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
97 call nuopc_compattributeset(child, name=
"Verbosity",
value=
"high", rc=rc)
98 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
104 allocate(petlist(petcount))
108 call nuopc_driveraddcomp(driver,
"OCN", ocnss, petlist=petlist, &
110 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
115 call nuopc_compattributeset(child, name=
"Verbosity",
value=
"high", rc=rc)
116 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
129 allocate(petlist(petcount))
133 call nuopc_driveraddcomp(driver,
"MED", medss, petlist=petlist, &
135 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
140 call nuopc_compattributeset(child, name=
"Verbosity",
value=
"high", rc=rc)
141 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
147 call nuopc_driveraddcomp(driver, srccomplabel=
"ATM", dstcomplabel=
"MED", &
148 compsetservicesroutine=cplss, comp=connector, rc=rc)
149 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
153 call nuopc_compattributeset(connector, name=
"Verbosity",
value=
"high", rc=rc)
154 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
160 call nuopc_driveraddcomp(driver, srccomplabel=
"OCN", dstcomplabel=
"MED", &
161 compsetservicesroutine=cplss, comp=connector, rc=rc)
162 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
166 call nuopc_compattributeset(connector, name=
"Verbosity",
value=
"high", rc=rc)
167 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
173 call nuopc_driveraddcomp(driver, srccomplabel=
"MED", dstcomplabel=
"ATM", &
174 compsetservicesroutine=cplss, comp=connector, rc=rc)
175 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
179 call nuopc_compattributeset(connector, name=
"Verbosity",
value=
"high", rc=rc)
180 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
186 call nuopc_driveraddcomp(driver, srccomplabel=
"MED", dstcomplabel=
"OCN", &
187 compsetservicesroutine=cplss, comp=connector, rc=rc)
188 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
192 call nuopc_compattributeset(connector, name=
"Verbosity",
value=
"high", rc=rc)
193 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
199 call esmf_timeintervalset(timestep, m=15, rc=rc)
200 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
205 call esmf_timeset(starttime, yy=2018, mm=4, dd=14, h=21, m=0, rc=rc)
206 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
211 call esmf_timeset(stoptime, yy=2018, mm=4, dd=14, h=21, m=15, rc=rc)
212 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
217 internalclock = esmf_clockcreate(name=
"Application Clock", &
218 timestep=timestep, starttime=starttime, stoptime=stoptime, rc=rc)
219 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
224 call esmf_gridcompset(driver, clock=internalclock, rc=rc)
225 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
235 type(esmf_gridcomp) :: driver
236 integer,
intent(out) :: rc
252 call nuopc_drivernewrunsequence(driver, slotcount=1, rc=rc)
253 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
257 call nuopc_driveraddrunelement(driver, slot=1, &
258 srccomplabel=
"ATM", dstcomplabel=
"MED", rc=rc)
259 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
263 call nuopc_driveraddrunelement(driver, slot=1, &
264 srccomplabel=
"OCN", dstcomplabel=
"MED", rc=rc)
265 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
269 call nuopc_driveraddrunelement(driver, slot=1, complabel=
"MED", rc=rc)
270 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
274 call nuopc_driveraddrunelement(driver, slot=1, &
275 srccomplabel=
"MED", dstcomplabel=
"ATM", rc=rc)
276 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
280 call nuopc_driveraddrunelement(driver, slot=1, &
281 srccomplabel=
"MED", dstcomplabel=
"OCN", rc=rc)
282 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
286 call nuopc_driveraddrunelement(driver, slot=1, complabel=
"ATM", rc=rc)
287 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &
291 call nuopc_driveraddrunelement(driver, slot=1, complabel=
"OCN", rc=rc)
292 if (esmf_logfounderror(rctocheck=rc, msg=esmf_logerr_passthru, &