SUBROUTINE EL_IFSP ( rimnem, r8mnem, iret ) C************************************************************************ C* EL_IFSP * C* * C* This subroutine initializes the interface mnemonic arrays and sets * C* the pointers within COMMON / RINTFP /. * C* * C* EL_IFSP ( RIMNEM, R8MNEM, IRET ) * C* * C* Output parameters: * C* RIMNEM (*) CHAR* Real interface mnemonics * C* R8MNEM (*) CHAR* Real*8 interface mnemonics * 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* J. Ator/NCEP 11/00 * C* J. Ator/NCEP 05/01 Changed in response to EUMETSAT changes * C* J. Ator/NCEP 10/04 Add capability for Japan & EUMS HRV/HWW * C* S. Guan/NCEP 06/14 Add 70 more interface mnemonics * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'elcmn.cmn' C* CHARACTER*(*) rimnem (*), r8mnem (*) C* LOGICAL allok INTEGER iploc ( NRSIMN ) CHARACTER rifmn ( NRIMN + NR8IMN )*8 C* C* Establish equivalance between iploc ( ) and COMMON / RINTFP / C* EQUIVALENCE ( iploc (1), irsaid ) C* C* Real and real*8 interface mnemonics C* DATA ( rifmn (i), i = 1, (NRIMN + NR8IMN) ) + / 'SAID' , 'GCTR' , 'SCLF' , 'SSNX' , 'SSNY' , 'SAZA' , + 'YEAR' , 'MNTH' , 'DAYS' , 'HOUR' , 'MINU' , 'SECO' , + 'SLAT' , 'SLON' , 'SIDP' , 'SWCM' , + 'PRES' , 'DRCT' , 'SPED' , 'CCST' , + 'PCCFGC', ' ', ' ', 'PCCFGA', ' ', ' ', 'PCCFPR', ' ', ' ', + 'PCCFDR', ' ', ' ', 'PCCFSP', ' ', ' ', 'PCCFCT', ' ', ' ', + 'MAQCGC', ' ', ' ', 'MAQCGA', ' ', ' ', 'MAQCPR', ' ', ' ', + 'MAQCDR', ' ', ' ', 'MAQCSP', ' ', ' ', 'MAQCCT', ' ', ' ', + 'NCTHGC', ' ', ' ', 'NCTHGA', ' ', ' ', 'NCTHPR', ' ', ' ', + 'NCTHDR', ' ', ' ', 'NCTHSP', ' ', ' ', 'NCTHCT', ' ', ' ', + 'FTTSIG', ' ', ' ', ' ', 'FTHOUR', ' ', ' ', ' ', + 'FTMINU', ' ', ' ', ' ', 'FTSECO', ' ', ' ', ' ', + 'SDTSIG', ' ', ' ', ' ', 'SDHOUR', ' ', ' ', ' ', + 'SDMINU', ' ', ' ', ' ', 'SDSECO', ' ', ' ', ' ', + 'SDWDIR', ' ', ' ', ' ', 'SDWSPD', ' ', ' ', ' ', + 'SHAMD', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'SPRLC', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'STMBST', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'SCCF' , 'SCBW' / C----------------------------------------------------------------------- iret = 0 C C* Initialize the real interface mnemonics. C DO i = 1, NRIMN rimnem ( i ) = rifmn ( i ) END DO C C* Initialize the real*8 interface mnemonics. C DO i = 1, NR8IMN r8mnem ( i ) = rifmn ( NRIMN + 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 real interface mnemonics. C DO ii = 1, NRSIMN CALL DC_IFFP ( rimnem (ii), rimnem, NRIMN, allok, + iploc (ii), ier ) END DO C CALL DC_IFFP ( 'PCCFGC', rimnem, NRIMN, allok, + irpccfgc (1), ier ) CALL DC_IFMP ( 1, 3, irpccfgc, ier ) C CALL DC_IFFP ( 'PCCFGA', rimnem, NRIMN, allok, + irpccfga (1), ier ) CALL DC_IFMP ( 1, 3, irpccfga, ier ) C CALL DC_IFFP ( 'PCCFPR', rimnem, NRIMN, allok, + irpccfpr (1), ier ) CALL DC_IFMP ( 1, 3, irpccfpr, ier ) C CALL DC_IFFP ( 'PCCFDR', rimnem, NRIMN, allok, + irpccfdr (1), ier ) CALL DC_IFMP ( 1, 3, irpccfdr, ier ) C CALL DC_IFFP ( 'PCCFSP', rimnem, NRIMN, allok, + irpccfsp (1), ier ) CALL DC_IFMP ( 1, 3, irpccfsp, ier ) C CALL DC_IFFP ( 'PCCFCT', rimnem, NRIMN, allok, + irpccfct (1), ier ) CALL DC_IFMP ( 1, 3, irpccfct, ier ) C CALL DC_IFFP ( 'MAQCGC', rimnem, NRIMN, allok, + irmaqcgc (1), ier ) CALL DC_IFMP ( 1, 3, irmaqcgc, ier ) C CALL DC_IFFP ( 'MAQCGA', rimnem, NRIMN, allok, + irmaqcga (1), ier ) CALL DC_IFMP ( 1, 3, irmaqcga, ier ) C CALL DC_IFFP ( 'MAQCPR', rimnem, NRIMN, allok, + irmaqcpr (1), ier ) CALL DC_IFMP ( 1, 3, irmaqcpr, ier ) C CALL DC_IFFP ( 'MAQCDR', rimnem, NRIMN, allok, + irmaqcdr (1), ier ) CALL DC_IFMP ( 1, 3, irmaqcdr, ier ) C CALL DC_IFFP ( 'MAQCSP', rimnem, NRIMN, allok, + irmaqcsp (1), ier ) CALL DC_IFMP ( 1, 3, irmaqcsp, ier ) C CALL DC_IFFP ( 'MAQCCT', rimnem, NRIMN, allok, + irmaqcct (1), ier ) CALL DC_IFMP ( 1, 3, irmaqcct, ier ) C CALL DC_IFFP ( 'NCTHGC', rimnem, NRIMN, allok, + irncthgc (1), ier ) CALL DC_IFMP ( 1, 3, irncthgc, ier ) C CALL DC_IFFP ( 'NCTHGA', rimnem, NRIMN, allok, + irncthga (1), ier ) CALL DC_IFMP ( 1, 3, irncthga, ier ) C CALL DC_IFFP ( 'NCTHPR', rimnem, NRIMN, allok, + irncthpr (1), ier ) CALL DC_IFMP ( 1, 3, irncthpr, ier ) C CALL DC_IFFP ( 'NCTHDR', rimnem, NRIMN, allok, + irncthdr (1), ier ) CALL DC_IFMP ( 1, 3, irncthdr, ier ) C CALL DC_IFFP ( 'NCTHSP', rimnem, NRIMN, allok, + irncthsp (1), ier ) CALL DC_IFMP ( 1, 3, irncthsp, ier ) C CALL DC_IFFP ( 'NCTHCT', rimnem, NRIMN, allok, + irncthct (1), ier ) CALL DC_IFMP ( 1, 3, irncthct, ier ) C CALL DC_IFFP ( 'FTTSIG', rimnem, NRIMN, allok, + irfttsig (1), ier ) CALL DC_IFMP ( 1, 4, irfttsig, ier ) C CALL DC_IFFP ( 'FTHOUR', rimnem, NRIMN, allok, + irfthour (1), ier ) CALL DC_IFMP ( 1, 4, irfthour, ier ) C CALL DC_IFFP ( 'FTMINU', rimnem, NRIMN, allok, + irftminu (1), ier ) CALL DC_IFMP ( 1, 4, irftminu, ier ) C CALL DC_IFFP ( 'FTSECO', rimnem, NRIMN, allok, + irftseco (1), ier ) CALL DC_IFMP ( 1, 4, irftseco, ier ) C CALL DC_IFFP ( 'SDTSIG', rimnem, NRIMN, allok, + irsdtsig (1), ier ) CALL DC_IFMP ( 1, 4, irsdtsig, ier ) C CALL DC_IFFP ( 'SDHOUR', rimnem, NRIMN, allok, + irsdhour (1), ier ) CALL DC_IFMP ( 1, 4, irsdhour, ier ) C CALL DC_IFFP ( 'SDMINU', rimnem, NRIMN, allok, + irsdminu (1), ier ) CALL DC_IFMP ( 1, 4, irsdminu, ier ) C CALL DC_IFFP ( 'SDSECO', rimnem, NRIMN, allok, + irsdseco (1), ier ) CALL DC_IFMP ( 1, 4, irsdseco, ier ) C CALL DC_IFFP ( 'SDWDIR', rimnem, NRIMN, allok, + irsdwdir (1), ier ) CALL DC_IFMP ( 1, 4, irsdwdir, ier ) C CALL DC_IFFP ( 'SDWSPD', rimnem, NRIMN, allok, + irsdwspd (1), ier ) CALL DC_IFMP ( 1, 4, irsdwspd, ier ) C CALL DC_IFFP ( 'SHAMD', rimnem, NRIMN, allok, + irshamd (1), ier ) CALL DC_IFMP ( 1, 10, irshamd, ier ) C CALL DC_IFFP ( 'SPRLC', rimnem, NRIMN, allok, + irsprlc (1), ier ) CALL DC_IFMP ( 1, 10, irsprlc, ier ) C CALL DC_IFFP ( 'STMBST', rimnem, NRIMN, allok, + irstmdbst (1), ier ) CALL DC_IFMP ( 1, 10, irstmdbst, ier ) C C* Set the pointers for the real*8 interface mnemonics. C CALL DC_IFFP ( r8mnem (1), r8mnem, NR8IMN, allok, irsccf, ier ) CALL DC_IFFP ( r8mnem (2), r8mnem, NR8IMN, allok, irscbw, ier ) C C* Were all of the pointers properly set? C IF ( .not. allok ) THEN iret = -1 END IF C* RETURN END