program get_obsdate !********************************************************************** ! * . . . ! * PROGRAM: get_obsdate ! * PRGMMR: M. ZUPANSKI ORG: CIRA/CSU DATE: 2003-09-17 ! * ! * ABSTRACT: CALCULATE THE OBSERVATION DATE ! * ! * PROGRAM LOG: ! * ! * 09/17/2003 ..... M. ZUPANSKI: ! * ! ********************************************************************** integer,parameter :: idate=20 ! cycle_date integer,parameter :: iparm=21 ! namelist integer,parameter :: ijdate=51 ! jdate integer,parameter :: irdate=52 ! rdate character*13 jdate,jdate_in character*14 rdate,rdate_in character*13 outdate character*14 cycle_date character*6 OBSTYPE integer :: idel integer :: diff integer :: year,jday,hour integer :: outyear,outjday,outhour ! ! DECLARE NAMELIST ! NAMELIST /OBSDATE/ OBSTYPE,idel !=========================================================== write(*,*) "read cycle_date" REWIND idate READ(idate,100) rdate_in 100 format(a14) write(*,*) "IN: rdate_in=",rdate_in write(*,*) "read obsdate.name" CLOSE(iparm) OPEN(UNIT=iparm,FILE='obsdate.name',FORM='FORMATTED',IOSTAT=IER) IF(IER.NE.0) WRITE(*,*) iparm,' OPEN UNIT ERROR IER=',IER READ(iparm,OBSDATE) CLOSE(iparm,status='KEEP') !----- define appropriate jdate call rdate_to_jdate (rdate_in,jdate_in,year,jday,hour) write(*,*) "jdate_in=",jdate_in write(*,*) "year,jday,hour=",year,jday,hour !----- diff=(sec), idel=(min) write(*,*) "idel=",idel diff=idel*60 write(*,*) "diff=",diff !----- add the increment call add_to_jdate (year,jday,hour,diff,outyear,outjday,outhour) write(*,*) "outyear,outjday,outhour=",outyear,outjday,outhour !----- define output jdate call jdate_make_big (outyear,outjday,outhour,jdate) write(*,*) "OUT: jdate=",jdate !----- define output rdate call jdate_to_rdate (jdate,rdate) write(*,*) "OUT: rdate=",rdate !----- write out observation dates write(*,*) "Write current obs jdate=",jdate REWIND ijdate WRITE(ijdate,200) jdate 200 format(a13) write(*,*) "Write current obs rdate=",rdate REWIND irdate WRITE(irdate,100) rdate stop end program get_obsdate