PROGRAM GETBUFRDATE !========================================================================== !== This subroutine employs the utility subroutines contained in date.f !== Given the CYCLE, and all observation parameters, it creates files !== having actual observation dates, used later in the main script of 4DVAR !========================================================================== ! define time convert factor (to seconds) ! (at present, all input times are in minutes) PARAMETER(CFACTOR=60.) character*4 MODEL character*14 CYCLE character*3 R3DVAR_OBS,SATRAD_OBS,PRECIP_OBS integer assper integer delobs_r3dvar,delobs_satrad,delobs_precip character*16 outdate character*13 jdate1,jdate2,jdate3,jdate4,jdate5 character*14 rdate3 integer :: diff,diff_assim integer :: year1,jday1,hour1 integer :: year2,jday2,hour2 integer :: year3,jday3,hour3 integer :: year4,jday4,hour4 integer :: year5,jday5,hour5 integer :: jdatex,yearx,jdayx,hourx integer :: jdatey,yeary,jdayy,houry integer :: jul1 integer :: time_strt,time_end,start_time,ihr,imin,isec integer ihour1 integer IMONTH1,IDATE1,IYEAR1,ITIME1,IHRDIFF ! DECLARE NAMELIST ! IMONTH1 = input MONTH ! IDATE1 = input DAY ! IYEAR1 = input YEAR ! ITIME1 = input HOUR NAMELIST /OBSDATE/ IMONTH1,IDATE1,IYEAR1,ITIME1,IHRDIFF !================================================================= write(*,*) "START GETBUFRDATE" !-----READ NAMELIST FILE obsdate.name ------- CLOSE(151) OPEN(UNIT=151,FILE='obsdate.name',FORM='FORMATTED',IOSTAT=IER) IF(IER.NE.0)WRITE(*,*) 'OPEN UNIT ERROR IER=',IER READ(151,OBSDATE) ihour1=ITIME1*10000 write(*,*) "OBSIN: mon,day,year,hour=",imonth1,idate1,iyear1,ihour1 write(3,*) "OBSIN: mon,day,year,hour=",imonth1,idate1,iyear1,ihour1 jul1=julianday(imonth1,idate1,iyear1) write(*,*) "OBSIN: IHRDIFF=",IHRDIFF diff=-IHRDIFF*3600. write(*,*) "diff_OBS=",diff call add_to_jdate (iyear1,jul1,ihour1,diff,year4,jday4,hour4) call jdate_make_big (year4,jday4,hour4,jdate4) call jdate_to_rdate(jdate4,rdate3) !------------------------------------------------ close (701) open(UNIT=701,FILE='rdateout',FORM='FORMATTED',IOSTAT=IER) write(701,105) rdate3 105 format(a14) write(*,*) "END GETBUFRDATE" STOP END