C $Header: /u/gcmpack/MITgcm/pkg/cal/cal_stepsperday.F,v 1.3 2012/04/03 15:20:29 jmc Exp $
C $Name: $
#include "CAL_OPTIONS.h"
subroutine CAL_STEPSPERDAY(
I myiter,
I mytime,
O numsteps,
I mythid
& )
c ==================================================================
c SUBROUTINE cal_StepsPerDay
c ==================================================================
c
c o Given the iteration number and/or the current time of
c integration return the number of steps left for the current
c calendar day including the step belonging to iter/currenttime.
c
c started: Christian Eckert eckert@mit.edu 30-Jun-1999
c
c changed: Christian Eckert eckert@mit.edu 29-Dec-1999
c
c - restructured the original version in order to have a
c better interface to the MITgcmUV.
c
c Christian Eckert eckert@mit.edu 03-Feb-2000
c
c - Introduced new routine and function names, cal_,
c for verion 0.1.3.
c
c ==================================================================
c SUBROUTINE cal_StepsPerDay
c ==================================================================
implicit none
c == global variables ==
#include "cal.h"
c == routine arguments ==
integer myiter
_RL mytime
integer numsteps
integer mythid
c == local variables ==
integer currentdate(4)
integer present
integer presentsecs
integer final
integer finalsecs
integer ierr
integer modelstepsperday
c == end of interface ==
call CAL_GETDATE( myiter, mytime, currentdate, mythid )
present = currentdate(1)
presentsecs = (currentdate(2)/10000)*secondsperhour +
& mod(currentdate(2)/100,100)*secondsperminute +
& mod(currentdate(2),100)
final = modelenddate(1)
if (present .lt. final) then
C modelstepsperday = cal_nStepDay(mythid)
C-jmc: inline Function "cal_nStepDay":
modelstepsperday = secondsperday/nint(modelstep)
numsteps = modelstepsperday -
& int(presentsecs/modelstep)
else if (present .eq. final) then
finalsecs = (modelenddate(2)/10000)*secondsperhour +
& mod(modelenddate(2)/100,100)*secondsperminute +
& mod(modelenddate(2),100)
numsteps = int((finalsecs - presentsecs)/modelstep)
else
ierr = 1101
call CAL_PRINTERROR( ierr, mythid )
stop ' stopped in cal_StepsPerDay.'
endif
return
end