*********************************************************** * 2A25 check 98/06/24 Y.Suzuki@restec * * Listing 2A25 metadata information, latitude, longitude, * scan time and rain(mm/hr). * *USAGE: * f_2a25rd '2A25_File_Name' * * This program is FREEWARE, so there is NO SUPPORT. ************************************************************ #include "TKfortranDeclare.h" #include "IO.h" #include "IO_PR.h" c Variables related to toolkit record /WRAPPER_HANDLE/ granuleHandle2A25 record /L2A_25_SWATHDATA/ read_L2A25_data record /CLUTTER_FLAGS/ clutterFlags 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_2a25rd 2A25_FileName ' stop end if call getarg( 1, argv(1) ) c Open input file write(6,*) argv(1) status = TKopen( argv(1), TK_L2A_25, TK_READ_ONLY, * granuleHandle2A25) if(status .ne. TK_SUCCESS) then write(6,*) ' TRMM file open error' stop end if c check metadata status = TKreadMetadataInt(granuleHandle2A25, * TK_BEGIN_DATE, beginDate) status = TKreadMetadataInt(granuleHandle2A25, * TK_BEGIN_TIME, beginTime) status = TKreadMetadataInt(granuleHandle2A25, * TK_END_DATE, endDate) status = TKreadMetadataInt(granuleHandle2A25, * 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(granuleHandle2A25, * TK_ORBIT_SIZE, iorbitSize) write(6,*) ' orbitSize = ', iorbitSize numberOfScan = iorbitSize status = TKreadMetadataChar(granuleHandle2A25, * TK_GRANULE_ID, granuleID) status = TKreadMetadataChar(granuleHandle2A25, * TK_ALGORITHM_ID, algorithmID) status = TKreadMetadataChar(granuleHandle2A25, * TK_ALGORITHM_VERSION, algorithmVersion) status = TKreadMetadataChar(granuleHandle2A25, * TK_TOOLKIT_VERSION, toolkitVersion) write(6,*) ' granuleID = ', granuleID write(6,*) ' algorithmID = ', algorithmID write(6,*) ' algorithmVersion = ', algorithmVersion write(6,*) ' toolkitVersion = ', toolkitVersion c Clutter flags status = TKreadHeader(granuleHandle2A25, clutterFlags ) c read scan by scan */ c scan loop do 10 iScan=1,numberOfScan status = TKreadScan(granuleHandle2A25,read_L2A25_data) if( status .ne. TK_SUCCESS ) then write(6,*) ' Read Scan Error' else c angle loop do 20 i=1,49 write(6,600) iScan, numberOfScan, c UTC seconds of the day * read_L2A25_data.scanTime, i, c Latitude (deg) * read_L2A25_data.geolocation(1,i), c Longitude (deg) * read_L2A25_data.geolocation(2,i) 600 format( ' scan = ',i5,'/',i5,' ScanTime : ',f9.3, * ' Angle : ',i2,' Lat,Lon : ',f9.3,',',f9.3) c Rain (mm/hr) from top to bottom write(6,610) (read_L2A25_data.rain(j,i),j=1,80) 610 format( 80(1x,f8.1) ) 20 continue end if 10 continue c close TRMM data status = TKclose(granuleHandle2A25) stop end