FUNCTION CH_KGETPOS(NOBSNMB, NTRCODE, CDSTNID) 14 #if defined (DOC) * ***function CH_KGETPOS -- get position of certain observation in the list * of NTRCODELIST * *Author .Y. Yang Feb. 2005 * *Revision: * * Y.J. Rochon ARQX/MSC May 2005 * - Minor cleanup * Y.J. Rochon ARQX/EC Jan 2010 * - Added consideration of CDSTNID * * * PURPOSE: Get the index of certain observation. Identified by obs. * descriptor NOBSNMB and species code NTRCODE in the list * NTRCODELIST. * * ARGUMENTS: * INPUT: * * NOBSNMB : obs. descriptor * NTRCODE : species code * CDSTNID : station id * * OUTPUT: * * CH_KGETPOS : * > 0, the obs. index in * NTRCODELIST & CTRSTNID * = -1, the obs. not found in * NTRCODELIST & CTRSTNID * #endif IMPLICIT NONE #include "comlun.cdk"
#include "comdim.cdk"
#include "comchem.cdk"
C INTEGER CH_KGETPOS INTEGER NOBSNMB, NTRCODE INTEGER JI,JJ CHARACTER*(*) CDSTNID C CH_KGETPOS = -1 C C First apply criterion involving CTRSTNID. C JJ=0 DO JI=1,NCMTASSI IF (CTRSTNID(JI).NE.' '.AND.CTRSTNID(JI).NE.'') THEN JJ=JJ+1 IF (NOBSNMB .eq. NETR(JI) .and. NTRCODE .eq. NTRCODELIST(JI) & .and.TRIM(CDSTNID).eq.TRIM(CTRSTNID(JI))) THEN CH_KGETPOS = JI return ENDIF ENDIF ENDDO C C Criterion not involving CTRSTNID C IF (JJ.NE.NCMTASSI) THEN DO JI=1,NCMTASSI IF (CTRSTNID(JI).EQ.' '.OR.CTRSTNID(JI).EQ.'') THEN IF (NOBSNMB.eq.NETR(JI).and.NTRCODE.eq.NTRCODELIST(JI)) THEN CH_KGETPOS = JI return ENDIF ENDIF ENDDO END IF C return end