! call reldaych(day,mo,yr,delday,delmo,delyr) !changes day mo yr ! change a day by # days,mo, yr, and make legal date subroutine reldaych(day,mo,yr,dd,dm,dy) implicit none integer nmody(0:13),day,mo,yr,dd,dm,dy,nday,mole data nmody /31, 31,28,31, 30,31,30, 31,31,30, 31,30,31, 31/ call j1980(mo,day,yr,nday) !returns # days since 1/1/1980 ! dont forget to fix j1980 before 28 feb 2100 sbp nmody(2)=28+mod(yr-1,4)/3 !29 if leap if(mod(yr,100).eq.0) nmody(2)=28 !2100 if(mod(yr,400).eq.0) nmody(2)=29 !2000 mole=30 !default if no mo if(mo.gt.0) then if(dm.lt.0) mole=nmody(mo-1) if(dm.gt.0) mole=nmody(mo) endif nday=nday+dd+dm*mole +dy*365 call j1980mdy(nday,mo,day,yr) !convert back daycount (1980 to..) return end