awips2/nativeLib/rary.ohd.pproc.gribit/TEXT/datimi.f
2017-04-21 18:33:55 -06:00

91 lines
2.7 KiB
Fortran

c =====================================================================
c pgm datimi (nhr,imo,ida,iyr,ihr,imn,jmo,jda,jyr,jhr,
c jmn,mon)
c
c in: nhr .... number of hours to increment or decrement
c in: imo .... month
c in: ida .... day (1 to mon(imo) 0
c in: iyr .... year with century
c in: ihr .... hour (00 to 23)
c in: imn .... minute (00 to 59)
c out: jmo .... month
c out: jda .... day
c out: jyr .... year
c out: jhr .... hour
c out: jmn .... minute
c in: mon .... days in each month
c =====================================================================
c
subroutine datimi (nhr,imo,ida,iyr,ihr,imn,jmo,jda,jyr,jhr,
+ jmn,mon)
c
c.......................................................................
c routine increments or decrements time
c
c
c.......................................................................
c Initially written by
c Tim Sweeney, HRL - Apr 1993
c.......................................................................
c
dimension mon(12)
c
include 'ffg_inc/gdebug'
C
C ================================= RCS keyword statements ==========
CHARACTER*68 RCSKW1,RCSKW2
DATA RCSKW1,RCSKW2 / '
.$Source: /fs/hseb/ob72/wfo_rfc/precip_proc/source/gribit/src/RCS/datimi.f,v $
. $', '
.$Id: datimi.f,v 1.1 2006/05/03 13:43:58 gsood Exp $
. $' /
C ===================================================================
C
c
call prbug ('datimi',1,1,ibug)
c
jmo = imo
jda = ida
jyr = iyr
jhr = ihr
jmn = imn
c
if (nhr.lt.0) then
c decrement hour
jhr = jhr + nhr
if (jhr.lt.0) then
c decrement day
jda = jda -1
jhr = 24 + jhr
if (jda.lt.1) then
c decrement month
jmo = jmo - 1
if (jmo.lt.1) then
jmo = 12
jyr = jyr - 1
endif
jda = mon(jmo)
endif
endif
else
c increment hour
jhr = jhr + nhr
c increment day
jda = jda + jhr/24
jhr = jhr - (jhr/24)*24
c increment month
mth = jmo + jda/(1+mon(jmo))
jda = jda - (jda/(1+mon(jmo)))*mon(jmo)
jmo = mth - (mth/13)*12
c increment year
jyr = jyr + (mth/13)
endif
c
if (ibug.gt.0) write (iud,10) nhr,imo,ida,iyr,ihr,
+ jmo,jda,jyr,jhr
10 format (' nhr=',i2,' imo=',i2,' ida=',i2,' iyr=',i4,' ihr=',i2,
+ 'jmo=',i2,' jda=',i2,' jyr=',i4,' jhr=',i2)
c
return
c
end