SUBROUTINE oda_maskro 1 use modmask, only : lmaskro, 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. M. Aparicio in Jan 2004 *REVISION: * * Y. Yang Feb. 2010 * - added comnumbr.cdk due to dependencies on JPNBRELEM in cvcord.cdk * #endif use modgps04profile use modgps06gravity use modgps08refop IMPLICIT NONE *implicits #include "pardim.cdk"
#include "comdimo.cdk"
#include "comoabdy.cdk"
#include "comoahdr.cdk"
#include "comoba.cdk"
#include "comnumbr.cdk"
#include "cvcord.cdk"
* REAL*8 PJO REAL*8 PJO0, PJO1 C REAL*8 ZTODEG REAL*8 ZLAT, Lat REAL*8 ZLON, Lon REAL*8 ZETA(JPNFLEV) REAL*8 BTT(JPNFLEV) REAL*8 BHU(JPNFLEV) REAL*8 BGZ(JPNFLEV) REAL*8 BP0 REAL*8 BPT, BPR, BCF REAL*8 BMT REAL*8 DH REAL*8 DNUM,SUM1,SUM2,AVG1,AVG2,BIAS,STD,RMS REAL*8 HNH1 C REAL*8 ZOBS, ZMHX, ZOER, ZINC, ZOBI, ZMHXL REAL*8 JAC(ngpscvmx) REAL*8 DX (ngpscvmx) C INTEGER JF INTEGER IBEGIN , ILAST INTEGER IBEGINOB, ILASTOB, JO INTEGER IDATYP INTEGER IDATA , IDATEND, JDATA INTEGER JL, JV, JH, NQCVAR, NGPSLEV C LOGICAL ASSIM, LUSE INTEGER NH, NH1, index TYPE(GPSPROFILE) :: PRF REAL(DP) , ALLOCATABLE :: H (:) TYPE(GPSDIFF), ALLOCATABLE :: RSTV(:) C DO JF = 1, NFILES C C * Look only files of type Radio Occultation (RO) C IF ( CFAMTYP(JF).EQ.'RO' .AND. NBEGINTYP(JF).GT.0 ) THEN IBEGIN = NBEGINTYP(JF) ILAST = NENDTYP (JF) IBEGINOB = MOBDATA(NCMOBS,IBEGIN) ILASTOB = MOBDATA(NCMOBS,ILAST ) C C * Loop over all observations of the file C DO JO = IBEGINOB, ILASTOB IDATYP = MOD(MOBHDR(NCMITY,JO),1000) IF ( IDATYP .EQ. 169 ) THEN IDATA = MOBHDR(NCMRLN,JO) IDATEND = MOBHDR(NCMNLV,JO) + IDATA - 1 DO JDATA= IDATA, IDATEND LUSE=( MOBDATA(NCMASS,JDATA).EQ.1 ) IF ( LUSE ) THEN lmaskro(jdata) = .true. ENDIF ENDDO ENDIF ENDDO ENDIF ENDDO lmask = lmask .or. lmaskro RETURN END