subroutine datenm (iyear, imonth, iday, ihour, imin, sec) c normalizes the time. Assumes all fields are normalized except seconds integer iday ! day integer ihour ! hour integer imin ! minute integer imonth ! month integer iyear ! year real sec ! second integer lastday ! ending day of month integer lday(12) ! ending day of months data lday/31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31/ save lday 10 if (sec .ge. 60.) then sec = sec - 60. imin = imin + 1 if (imin .ge. 60) then imin = imin - 60 ihour = ihour + 1 if (ihour .ge. 24) then ihour = ihour - 24 iday = iday + 1 lastday = lday(imonth) if (imonth .eq. 2 .and. mod(iyear, 4) .eq. 0) 1 lastday = lastday + 1 if (lastday .lt. iday) then iday = 1 imonth = imonth + 1 if (imonth .gt. 12) then imonth = 1 iyear = iyear + 1 endif endif endif endif endif if (sec .ge. 60.) goto 10 20 if (sec .lt. 0.) then sec = sec + 60. imin = imin - 1 if (imin .lt. 0) then imin = imin + 60 ihour = ihour - 1 if (ihour .lt. 0) then ihour = ihour + 24 iday = iday - 1 if (iday .lt. 1) then imonth = imonth - 1 if (imonth .lt. 1) then imonth = 12 iyear = iyear - 1 endif iday = lday(imonth) if (imonth .eq. 2 .and. mod(iyear, 4) .eq. 0) 1 iday = iday + 1 endif endif endif endif if (sec .lt. 0.) goto 20 return end