*********************************************************** * 1B01 VIRS data check * FORTRAN version 98/06/24 Y.Suzuki@restec * * Listing 1B01 metadata information, latitude, longitude, * scan time and radiance. * *USAGE: * f_1b01rd '1B01_File_Name' * * This program is FREEWARE, so there is NO SUPPORT. ************************************************************ #include "TKfortranDeclare.h" #include "IO.h" #include "IO_VIRS.h" c Variables related to toolkit record /WRAPPER_HANDLE/ granuleHandle1B01 record /L1B_01_SWATHDATA/ read_L1B01_data record /DATE_STR/ beginDate record /TIME_STR/ beginTime record /DATE_STR/ endDate record /TIME_STR/ endTime c Other variables integer status character*100 argv(1) character*50 granuleID, algorithmID, * algorithmVersion, toolkitVersion c Define input and output file names marg = iargc() if( marg .ne. 1 ) then write(6,*) ' USAGE : f_1b01rd 1B01_FileName ' stop end if call getarg( 1, argv(1) ) c Open input file write(6,*) argv(1) status = TKopen( argv(1), TK_L1B_01, TK_READ_ONLY, * granuleHandle1B01) if(status .ne. TK_SUCCESS) then write(6,*) ' TRMM file open error' stop end if c check metadata status = TKreadMetadataInt(granuleHandle1B01, * TK_BEGIN_DATE, beginDate) status = TKreadMetadataInt(granuleHandle1B01, * TK_BEGIN_TIME, beginTime) status = TKreadMetadataInt(granuleHandle1B01, * TK_END_DATE, endDate) status = TKreadMetadataInt(granuleHandle1B01, * TK_END_TIME, endTime) write(6,'(1x,a,i4,a,i2,a,i2)') * ' beginDate = ',beginDate.tkyear,'/', * beginDate.tkmonth,'/', beginDate.tkday write(6,'(1x,a,i4,a,i2,a,i2)') * ' beginTime = ',beginTime.tkhour,':', * beginTime.tkminute,':', beginTime.tksecond write(6,'(1x,a,i4,a,i2,a,i2)') * ' endDate = ',endDate.tkyear,'/', * endDate.tkmonth,'/', endDate.tkday write(6,'(1x,a,i4,a,i2,a,i2)') * ' endTime = ',endTime.tkhour,':', * endTime.tkminute,':', endTime.tksecond status = TKreadMetadataInt(granuleHandle1B01, * TK_ORBIT_SIZE, iorbitSize) write(6,*) ' orbitSize = ', iorbitSize numberOfScan = iorbitSize status = TKreadMetadataChar(granuleHandle1B01, * TK_GRANULE_ID, granuleID) status = TKreadMetadataChar(granuleHandle1B01, * TK_ALGORITHM_ID, algorithmID) status = TKreadMetadataChar(granuleHandle1B01, * TK_ALGORITHM_VERSION, algorithmVersion) status = TKreadMetadataChar(granuleHandle1B01, * TK_TOOLKIT_VERSION, toolkitVersion) write(6,*) ' granuleID = ', granuleID write(6,*) ' algorithmID = ', algorithmID write(6,*) ' algorithmVersion = ', algorithmVersion write(6,*) ' toolkitVersion = ', toolkitVersion c read scan by scan */ c scan loop do 10 iScan=1,numberOfScan status = TKreadScan(granuleHandle1B01,read_L1B01_data) if( status .ne. TK_SUCCESS ) then write(6,*) ' Read Scan Error' else c angle loop do 20 i=1,261 write(6,600) iScan, numberOfScan, c UTC seconds of the day * read_L1B01_data.scanTime, i, c Latitude (deg) * read_L1B01_data.geolocation(1,i), c Longitude (deg) * read_L1B01_data.geolocation(2,i) 600 format( ' scan = ',i5,'/',i5,' ScanTime : ',f9.3, * ' IFOV : ',i3,' Lat,Lon : ',f9.3,',',f9.3) c radiance (mW cm^-2 um^-1 sr^-1) multiplied by a scale factor c scale factors are 500, 1000, 100000, 10000, and 10000 write(6,610) (read_L1B01_data.channels(j,i),j=1,5) 610 format( 5(1x,f9.5) ) 20 continue end if 10 continue c close TRMM data status = TKclose(granuleHandle1B01) stop end