@@ -109,8 +109,9 @@ subroutine ocn_init_mct( EClock, cdata_o, x2o_o, o2x_o, NLFilename )
109109 type (mct_aVect) , intent (inout ) :: o2x_o ! < Fluxes from ocean to coupler, computed by ocean
110110 character (len=* ), optional , intent (in ) :: NLFilename ! < Namelist filename
111111
112- ! local variables
113- type (time_type) :: time0 ! < Model start time
112+ ! local variable
113+ type (time_type) :: time0 ! < Start time of coupled model's calendar.
114+ type (time_type) :: time_start ! < The time at which to initialize the ocean model
114115 type (ESMF_time) :: time_var ! < ESMF_time variable to query time
115116 type (ESMF_time) :: time_in_ESMF ! < Initial time for ocean
116117 type (ESMF_timeInterval) :: ocn_cpl_interval ! < Ocean coupling interval
@@ -202,11 +203,16 @@ subroutine ocn_init_mct( EClock, cdata_o, x2o_o, o2x_o, NLFilename )
202203
203204 call set_calendar_type(NOLEAP) ! TODO: confirm this
204205
205- ! Get the initial time
206- call ESMF_ClockGet(EClock, currTime = time_var, rc= rc)
206+ ! Get start time
207+ call ESMF_ClockGet(EClock, StartTime = time_var, rc= rc)
207208 call ESMF_TimeGet(time_var, yy= year, mm= month, dd= day, h= hour, m= minute, s= seconds, rc= rc)
208209 time0 = set_date(year, month, day, hour, minute, seconds, err_msg= err_msg)
209210
211+ ! Get current time
212+ call ESMF_ClockGet(EClock, currTime= time_var, rc= rc)
213+ call ESMF_TimeGet(time_var, yy= year, mm= month, dd= day, h= hour, m= minute, s= seconds, rc= rc)
214+ time_start = set_date(year, month, day, hour, minute, seconds, err_msg= err_msg)
215+
210216 ! Debugging clocks
211217 if (debug .and. is_root_pe()) then
212218 write (glb% stdout,* ) ' ocn_init_mct, current time: y,m,d-' ,year,month,day,' h,m,s=' ,hour,minute,seconds
@@ -279,7 +285,7 @@ subroutine ocn_init_mct( EClock, cdata_o, x2o_o, o2x_o, NLFilename )
279285 runtype = get_runtype()
280286 if (runtype == " initial" ) then
281287 ! startup (new run) - 'n' is needed below since we don't specify input_filename in input.nml
282- call ocean_model_init(glb% ocn_public, glb% ocn_state, time0, time0 , input_restart_file = ' n' )
288+ call ocean_model_init(glb% ocn_public, glb% ocn_state, time0, time_start , input_restart_file = ' n' )
283289 else ! hybrid or branch or continuos runs
284290 ! get output path root
285291 call seq_infodata_GetData( glb% infodata, outPathRoot= restartpath )
@@ -295,7 +301,7 @@ subroutine ocn_init_mct( EClock, cdata_o, x2o_o, o2x_o, NLFilename )
295301 write (glb% stdout,* ) ' Reading restart file: ' ,trim (restartfile)
296302 end if
297303 call shr_file_freeUnit(nu)
298- call ocean_model_init(glb% ocn_public, glb% ocn_state, time0, time0 , input_restart_file= trim (restartfile))
304+ call ocean_model_init(glb% ocn_public, glb% ocn_state, time0, time_start , input_restart_file= trim (restartfile))
299305 endif
300306 if (is_root_pe()) then
301307 write (glb% stdout,' (/12x,a/)' ) ' ======== COMPLETED MOM INITIALIZATION ========'
0 commit comments