SUBROUTINE oda_maskzp(CDFAM) 1 use modmask, only : lmaskzp, lmask #if defined (DOC) * *Purpose : Defines a mask of assimilated data * *Author : S. Pellerin, ARMA, January 2009 * Based on selection made in observation operator as written by * J. St-James, CMDA/SMC in July 2003 Revision : * Y. Yang Feb. 2010 * - added comnumbr.cdk due to dependencies on JPNBRELEM in cvcord.cdk * * #endif IMPLICIT NONE CHARACTER *2 CDFAM *implicits #include "comdimo.cdk"
#include "comoabdy.cdk"
#include "comoahdr.cdk"
#include "comoba.cdk"
#include "comnumbr.cdk"
#include "cvcord.cdk"
* INTEGER IPB,IPT,IDBURP INTEGER IOBS,IPOS,IK,IBEGIN,ILAST,ILASTOB,IBEGINOB,IDATEND,NQCVAR INTEGER J,JDATA,IDATA,ITYP,ISTYP,JJ,JO REAL*8 ZVAR,ZOER,ZDA1,ZDA2,ZCON,ZINC,ZPHI,ZJON,ZGAMI,ZSLEV,ZQCARG REAL*8 ZWB,ZWT, ZEXP, ZGAMMA,ZLTV,ZTVG,ZPPOST REAL*8 ZLEV,ZPT,ZPB,ZLAT,ZLON,ZTORAD,ZDENO,ZCON1,ZCON2,ZCON3 REAL*8 DLSUM LOGICAL LLOK, LLPRINT, LLUV,LLNOXTR C DO J = 1,NFILES IF ( (CFAMTYP(J) .EQ. CDFAM) .AND.( NBEGINTYP(J) .GT. 0)) THEN IBEGIN=NBEGINTYP(J) ILAST=NENDTYP(J) IBEGINOB = MOBDATA(NCMOBS,IBEGIN) ILASTOB = MOBDATA(NCMOBS,ILAST) DO JO = IBEGINOB, ILASTOB IDATA = MOBHDR(NCMRLN,JO) IDATEND = MOBHDR(NCMNLV,JO) + IDATA - 1 DO JDATA=IDATA,IDATEND LLOK=(MOBDATA(NCMASS,JDATA) .EQ. 1) & .AND. (MOBDATA(NCMXTR,JDATA) .EQ. 0) & .AND. (MOBDATA(NCMVCO,JDATA) .EQ. 1) IF ( LLOK ) THEN lmaskzp(jdata) = .true. ENDIF END DO enddo endif END DO lmask = lmask .or. lmaskzp RETURN END