SUBROUTINE GD_NGRD ( iacss, numgrd, firstm, lasttm, iret ) C************************************************************************ C* GD_NGRD * C* * C* This subroutine returns the number of grids in a grid file along * C* with the first and last time. * C* * C* GD_NGRD ( IACSS, NUMGRD, FIRSTM, LASTTM, IRET ) * C* * C* Input parameters: * C* IACSS INTEGER Grid access number * C* * C* Output parameters: * C* NUMGRD INTEGER Number of grids * C* FIRSTM CHAR*20 Earliest time1 in file * C* LASTTM CHAR*20 Latest time1 in file * C* IRET INTEGER Return code * C* 0 = normal return * C* -4 = file not open * C* -6 = read error * C** * C* Log: * C* M. desJardins/GSFC 6/87 * C* M. desJardins/GSFC 8/88 Changed calling sequence * C* M. desJardins/GSFC 4/89 Add first time; change sorting * C* R. Tian/SAIC 1/04 Added GD_FCHK call * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'GMBDTA.CMN' INCLUDE 'grdcmn.cmn' C* CHARACTER*(*) lasttm, firstm C----------------------------------------------------------------------- iret = 0 print *, 'gdngrd.f: entering' print *, 'gdngrd.f: iacss', iacss C C* Convert access number to DM number. C CALL GD_FCHK ( iacss, igdfln, iret ) print *, 'gdngrd.f: GD_FCHK iacss = ', iacss print *, 'gdngrd.f: GD_FCHK igdfln = ', igdfln print *, 'gdngrd.f: GD_FCHK iret = ', iret IF ( iret .ne. 0 ) THEN RETURN END IF C C* Return the number of grids. C print *, 'gdngrd.f: before kgrid numgrd = ', numgrd numgrd = kgrid ( igdfln ) print *, 'gdngrd.f: after kgrid numgrd = ', numgrd IF ( numgrd .le. 0 ) RETURN C C* Get the first time from the sorted time array. Convert to a C* character time. C CALL TG_ITOC ( igdatm (1,1,igdfln), firstm, ier ) C C* Do the same for the last time. C CALL TG_ITOC ( igdatm ( 1, ktgrid (igdfln), igdfln ), lasttm, + ier ) C* RETURN END