SUBROUTINE NC_GRVA ( nf_fid, crvastr, rvala, rvmin, rvmax, + iret ) C************************************************************************ C* NC_GRVA * C* * C* This routine reads the values for a specified parameter from the * C* input NCLD data file. * C* * C* NC_GRVA ( NF_FID, CRVASTR, RVALA, IRET ) * C* * C* Input parameters: * C* NF_FID INTEGER netCDF file ID of input file * C* CRVASTR CHAR* Parameter to be retrieved * C* * C* Output parameters: * C* RVALA (*) REAL Values corresponding to CRVASTR * C* RVMIN REAL Minimum valid value of CRVASTR * C* RVMAX REAL Maximum valid value of CRVASTR * C* IRET INTEGER Return code: * C* 0 = normal return * C* -1 = failure * C** * C* Log: * C* J. Ator/NCEP 05/19 * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'netcdf.inc' C* CHARACTER*(*) crvastr C* REAL rvala (*) C*----------------------------------------------------------------------- iret = -1 C ier = NF_INQ_VARID ( nf_fid, crvastr, nf_vid ) IF ( ier .ne. NF_NOERR ) THEN CALL UT_EMSG ( 0, 'NF_INQ_VARID for ' // crvastr, ier ) RETURN END IF ier = NF_GET_VAR_REAL ( nf_fid, nf_vid, rvala ) IF ( ier .ne. NF_NOERR ) THEN CALL UT_EMSG ( 0, 'NF_GET_VAR_REAL for ' // crvastr, ier ) RETURN END IF ier1 = NF_GET_ATT_REAL ( nf_fid, nf_vid, 'valid_min', rvmin ) ier2 = NF_GET_ATT_REAL ( nf_fid, nf_vid, 'valid_max', rvmax ) IF ( ( ier1 .ne. NF_NOERR ) .or. ( ier2 .ne. NF_NOERR ) ) THEN CALL UT_EMSG ( 0, 'NF_GET_ATT_REAL for ' // crvastr, ier ) RETURN END IF C iret = 0 C* RETURN END