SUBROUTINE CG_IFSP ( rimnem, cimnem, iret ) C************************************************************************ C* CG_IFSP * C* * C* This subroutine initializes the interface mnemonic arrays and sets * C* the pointers within COMMON / RINTFP / and COMMON / CINTFP /. * C* * C* CG_IFSP ( RIMNEM, CIMNEM, IRET ) * C* * C* Output parameters: * C* RIMNEM (*) CHAR* Interface mnemonics for reals * C* CIMNEM (*) CHAR* Interface mnemonics for chars * C* IRET INTEGER Return code * C* 0 = normal return * C* -1 = One or more pointers * C* could not be set * C* * C** * C* Log: * C* D. Kidwell/NCEP 10/97 Adapted from AF_IFSP * C* R. Hollern/NCEP 12/97 Replaced MA_IFFP, MA_IFMP calls with DC_* C* D. Kidwell/NCEP 10/98 Added init of interface mnemonics; * C* added intf mnemonics to calling sequence* C* R. Hollern/NCEP 7/99 Added 24 more mnemonics * C* R. Hollern/NCEP 9/99 Added mnemonics for section 4 data in * C* drifting buoy report * C* R. Hollern/NCEP 11/99 Removed the Section 1 and 3 cloud mnems.* C* Added supplementary wind mnemonics. * C* R. Hollern/NCEP 11/99 Removed the drifting buoy logic * C* R. Hollern/NCEP 2/00 Removed the MSDM and BPID mnemonics * C* R. Hollern/NCEP 3/00 Removed the CORN mnemonic * C* C. Caruso Magee/NCEP 04/00 Modifying for Coast Guard reports. * C* C. Caruso Magee/NCEP 06/00 Changing SPWS to GUST * C* C. Caruso Magee/NCEP 06/00 Remove multi-lev cloud and wave. * C* C. Caruso Magee/NCEP 06/00 Change SPED to SKNT. * C* C. Caruso Magee/NCEP 08/00 Remove POSW and HOSW. * C* C. Caruso Magee/NCEP 06/01 Move TOST to right after CORN in common.* C* C. Caruso Magee/NCEP 02/02 Rename SUWS to ISWS. * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'cgcmn.cmn' C* CHARACTER*(*) rimnem (*), cimnem (*) C* LOGICAL allok INTEGER iploc (NRSLMN) CHARACTER rifmn ( NRIMN )*8, cifmn ( NCIMN )*8 C* C* Establish array equivalence to COMMON / RINTFP / C* EQUIVALENCE ( iploc (1), iryear ) C* DATA ( rifmn (i), i = 1, NRSLMN ) / + 'YEAR' , 'MNTH' , 'DAYS' , 'HOUR' , 'MINU' , + 'SLAT' , 'SLON' , 'SELV' , 'CORN' , 'TOST' , + 'DRCT' , 'SKNT' , 'ISWS' , 'PRES' , 'PMSL' , + 'ALTI' , 'TMPF' , 'SSTF' , 'MXTM' , 'MITM' , + 'VSBY' , 'CFRT' , 'WWMO' , 'WHGT' , 'WPER' , + 'MXWH' , 'TERC' , 'GUST' , 'CLAM' , 'HOCB' , + 'DOSW' / C* C* Real interface mnemonics. C* DATA ( cifmn (i), i = 1, NCIMN ) / 'STID' / C* Character interface mnemonics. C----------------------------------------------------------------------- iret = 0 C C* Initialize the interface mnemonics. C DO i = 1, NRIMN rimnem ( i ) = rifmn ( i ) END DO DO i = 1, NCIMN cimnem ( i ) = cifmn ( i ) END DO C C* The logical variable "allok" is initially set to .true. but will C* be reset to .false. if any of the pointers cannot be set. C allok = .true. C C* Set the pointers for the single-level interface mnemonics. C DO i = 1, NRSLMN CALL DC_IFFP ( rimnem ( i ), rimnem, NRIMN, allok, + iploc ( i ), ier ) END DO C CALL DC_IFFP ( 'STID', cimnem, NCIMN, allok, icstid, ier ) C C* Were all of the pointers properly set? C IF ( .not. allok ) THEN iret = -1 END IF C* RETURN END