SUBROUTINE DB_IFSP ( rimnem, cimnem, iret ) C************************************************************************ C* DB_IFSP * C* * C* This subroutine initializes the interface mnemonic arrays and sets * C* the pointers within COMMON / RINTFP / and COMMON / CINTFP /. * C* * C* DB_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* R. Hollern/NCEP 12/99 * C* C. Caruso Magee/NCEP 01/2000 Remove ref. to multi-wave data. * C* C. Caruso Magee/NCEP 02/2000 Remove reference to BPID & CORN. * C* C. Caruso Magee/NCEP 07/2001 Add new mnemonics for 11/2001 * C* additions to BUOY format. * C* C. Caruso Magee/NCEP 08/2001 Add new mnemonic DROD (drogue * C* depth and use CALT for thermistor* C* strings cable length. * C* J. Ator/NCEP 01/02 SUWS -> ISWS * C* R. Hollern/NCEP 07/02 Removed MSST mnemonic * C* C. Caruso Magee/NCEP 12/02 Add code to initialize multi-lev * C* current depth/direction/speed. * C* C. Caruso Magee/NCEP 06/04 Add LDDS, LDRS, BVOL. * C* C. Caruso Magee/NCEP 01/06 Replace iryear with irydgt. * C************************************************************************ INCLUDE 'dbcmn.cmn' C* CHARACTER rimnem ( NRIMN )*8, cimnem ( NCIMN )*8 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), irydgt ) C* DATA ( rifmn (i), i = 1, NRSLMN ) / + 'YDGT' , 'MNTH' , 'DAYS' , 'HOUR' , 'MINU' , + 'SLAT' , 'SLON' , 'SELV' , 'DRCT' , 'SPED' , + 'PRES' , 'PMSL' , 'P03D' , 'CHPT' , '3HPC' , + 'RELH' , 'TMPC' , 'DWPC' , 'SSTC' , 'TOST' , + 'QOPM' , 'QCBH' , 'QWTM' , 'QATM' , 'QBST' , + 'QCIL' , 'MSDM' , 'WPER' , 'WHGT' , 'ISWS' , + 'QPOS' , 'QTIM' , 'QCLS' , 'QDS1' , 'QXS1' , + 'QDS2' , 'QXS2' , 'Q3D1' , 'Q3D2' , 'Q4CL' , + 'PSYR' , 'PRMN' , 'PSDY' , 'PSHR' , 'PSMI' , + 'DBVV' , 'DBDD' , 'BENG' , 'DROT' , 'DROD' , + 'DLATH' , 'DLONH' , 'QDEP' , 'HPLE' , 'CALT' , + 'BUYT' , 'ANHT' , 'ANTP' , 'MRMV' , 'DTCC' , + 'LDDS' , 'LDRS' , 'BVOL'/ C* DATA ( rifmn (i), i = NRSLMN+1, MNNN ) / + 'NDTS' , 'DBSS' , 'STMP' , 'SALN' , + MDM1T3 * ' '/ C* DATA ( rifmn (i), i = MNNN+1, NRIMN ) / + 'NDDC' , 'DBSC' , 'DROC' , 'SPOC' , + MCM1T3 * ' '/ 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* Set the pointers for depth/temperature/salinity data. C CALL DC_IFFP ( 'NDTS', rimnem, NRIMN, allok, irndts, ier ) CALL DC_IFFP ( 'DBSS', rimnem, NRIMN, allok, irdbss (1), ier ) CALL DC_IFMP ( 3, MXDLYR, irdbss, ier ) CALL DC_IFFP ( 'STMP', rimnem, NRIMN, allok, irstmp (1), ier ) CALL DC_IFMP ( 3, MXDLYR, irstmp, ier ) CALL DC_IFFP ( 'SALN', rimnem, NRIMN, allok, irsaln (1), ier ) CALL DC_IFMP ( 3, MXDLYR, irsaln, ier ) C C* Set the pointers for depth, direction, and speed of current. C CALL DC_IFFP ( 'NDDC', rimnem, NRIMN, allok, irnddc, ier ) CALL DC_IFFP ( 'DBSC', rimnem, NRIMN, allok, irdbsc (1), ier ) CALL DC_IFMP ( 3, MXDLYR, irdbsc, ier ) CALL DC_IFFP ( 'DROC', rimnem, NRIMN, allok, irdroc (1), ier ) CALL DC_IFMP ( 3, MXDLYR, irdroc, ier ) CALL DC_IFFP ( 'SPOC', rimnem, NRIMN, allok, irspoc (1), ier ) CALL DC_IFMP ( 3, MXDLYR, irspoc, ier ) C C* Were all of the pointers properly set? C IF ( .not. allok ) THEN iret = -1 END IF C* RETURN END