subroutine read_gmi_day(filename,gmi_data,iexist) c This routine reads version-8.1 RSS GMI(F35) daily files c INPUT c filename with path in form satname_yyyymmdd_v8.1.gz c where satname = name of satellite (F35 (GMI data)) c yyyy = year c mm = month c dd = day of month c c OUTPUT c gmi_data (a 1440x720x7x2 array of data) c the 7 elements of gmi_data correspond to: c 1:time time of measurement in fractional hours GMT c 2:sst sea surface temperature in deg Celcius c 3:windLF 10m surface wind, low frequency, in meters/second c 4:windMF 10m surface wind, medium frequency, in meters/second c 5:vapor columnar water vapor in millimeters c 6:cloud cloud liquid water in millimeters c 7:rain rain rate in millimeters/hour c c Longitude is 0.25*xdim-0.125 degrees east c Latitude is 0.25*ydim-90.125 CHARACTER(1) abuf(1440,720,7) real, dimension(1440,720,7,2) ::gmi_data character*100 filename real xscale(7), xoffset(7) logical lexist DATA XSCALE/0.1,0.15,0.2,0.2,0.3,0.01,0.1/ DATA XOFFSET/0.,-3.,0.,0.,0.,-0.05,0./ c c set data arrays to missing gmi_data=254. INQUIRE(FILE=filename,EXIST=LEXIST) if(.not.lexist) then iexist=-1 return endif iexist=0 write(*,*) 'reading gmi file: ', filename OPEN(3,FILE=FILENAME,STATUS='OLD',RECL=7257600, 1 ACCESS='DIRECT',FORM='UNFORMATTED') do ia=1,2 READ(3,rec=ia) abuf do iv=1,7 gmi_data(:,:,iv,ia)=real(ICHAR(abuf(:,:,iv))) where(gmi_data(:,:,iv,ia)<=250) gmi_data(:,:,iv,ia)=gmi_data(:,:,iv,ia)*xscale(iv)+xoffset(iv) endwhere enddo enddo close(3) return end cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc subroutine read_gmi_averaged(filename,gmi_data,iexist) c This routine reads version-8.1 GMI time-averaged files including: c 3-day (average of 3 days ending on file date) c weekly (average of 7 days ending on Saturday of file date) c monthly (average of all days in month) c INPUT c filename c format of file names are: c 3-day satname_yyyymmddv8.1_d3d.gz c weekly satname_yyyymmddv8.1.gz c monthly satname_yyyymmv8.1.gz c c where satname =name of satellite (gmi) c yyyy =year c mm =month c dd =day of month c c OUTPUT c gmi_data (a 1440x720x6 array of data) c the 6 elements of gmi_data correspond to time averages of: c 1:sst sea surface temperature in deg Celcius c 3:windLF 10m surface wind, low frequency, in meters/second c 4:windMF 10m surface wind, medium frequency, in meters/second c 3:vapor columnar water vapor in millimeters c 4:cloud cloud liquid water in millimeters c 5:rain rain rate in millimeters/hour c c Longitude is 0.25*xdim-0.125 degrees East c Latitude is 0.25*ydim-90.125 CHARACTER(1) abuf(1440,720) real, dimension(1440,720,6) ::gmi_data character*100 filename real xscale(6), xoffset(6) logical lexist DATA XSCALE/0.15,0.2,0.2,0.3,0.01,0.1/ DATA XOFFSET/-3.,0.,0.,0.,-0.05,0./ gmi_data=254. INQUIRE(FILE=filename,EXIST=LEXIST) if(.not.lexist) then iexist=-1 return endif iexist=0 write(*,*) 'reading gmi file: ', filename OPEN(3,FILE=FILENAME,STATUS='OLD',RECL=1036800, 1 ACCESS='DIRECT',FORM='UNFORMATTED') do iv=1,6 READ(3,rec=iv) abuf gmi_data(:,:,iv)=ICHAR(abuf) where(gmi_data(:,:,iv)<=250) gmi_data(:,:,iv)=gmi_data(:,:,iv)*xscale(iv)+xoffset(iv) endwhere enddo close(3) return end