!-------------------------------------- LICENCE BEGIN ------------------------------------ !Environment Canada - Atmospheric Science and Technology License/Disclaimer, ! version 3; Last Modified: May 7, 2008. !This is free but copyrighted software; you can use/redistribute/modify it under the terms !of the Environment Canada - Atmospheric Science and Technology License/Disclaimer !version 3 or (at your option) any later version that should be found at: !http://collaboration.cmc.ec.gc.ca/science/rpn.comm/license.html ! !This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; !without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. !See the above mentioned License/Disclaimer for more details. !You should have received a copy of the License/Disclaimer along with this software; !if not, you can write to: EC-RPN COMM Group, 2121 TransCanada, suite 500, Dorval (Quebec), !CANADA, H9P 1J3; or send e-mail to service.rpn@ec.gc.ca !-------------------------------------- LICENCE END -------------------------------------- !SUBROUTINE SOBSCSBT 1 #if defined (DOC) * ***s/r SOBSCSBT * *Author : R. Sarrazin *CMC/AES June 2008 *Revision: * * ** Purpose: * Refuse data which are too close to the surface. * *Arguments: * * none #endif IMPLICIT NONE *implicits #include "comlun.cdk"
#include "comdimo.cdk"
#include "comoabdy.cdk"
#include "comoahdr.cdk"
#include "comoba.cdk"
#include "commvohr.cdk"
#include "cvcord.cdk"
* INTEGER JPINEL PARAMETER(JPINEL=1) INTEGER J,JF,JOBS,JDATA,IOBS1,IOBS2 LOGICAL LLPRINT REAL*8 ZVAL,ZDIFF INTEGER ITYP,IDATA,IDATEND,IDATYP INTEGER ILEM,IBEGIN,ILAST INTEGER IKOUNTREJ(JPINEL),IKOUNTT INTEGER ILISTEL(JPINEL) DATA ILISTEL/12163/ REAL*8 RLISTCRIT DATA RLISTCRIT/800./ C C WRITE(NULOUT,* ) ' ' WRITE(NULOUT,* ) ' SUBROUTINE SOBSCSBT ' WRITE(NULOUT,* ) ' ' WRITE(NULOUT,* ) '****************************************************' WRITE(NULOUT,222)'ELEMENTS ', ( ILISTEL(J),J=1,jpinel) WRITE(NULOUT,223)'REJECTION BOUNDARY(HPA) ', RLISTCRIT WRITE(NULOUT,* ) '****************************************************' WRITE(NULOUT,* ) ' ' LLPRINT = .FALSE. C C SET COUNTERS TO ZERO C DO J=1,JPINEL IKOUNTREJ(J)=0 END DO IKOUNTT=0 C C LOOP OVER OBSERVATION FILES C DO JF = 1,NFILES IF ( (CFAMTYP(JF) .EQ. 'TO') .AND. (NBEGINTYP(JF) .GT. 0) ) THEN IBEGIN=NBEGINTYP(JF) ILAST=NENDTYP(JF) IOBS1=MOBDATA(NCMOBS,NBEGINTYP(JF)) IOBS2=MOBDATA(NCMOBS,NENDTYP(JF)) WRITE(NULOUT,*)' FAMILY = ',CFAMTYP(JF) C C DO JOBS=IOBS1,IOBS2 C IDATA = MOBHDR(NCMRLN,JOBS) IDATEND = MOBHDR(NCMNLV,JOBS) + IDATA - 1 IDATYP = MOD(MOBHDR(NCMITY,JOBS),1000) IF (IDATYP .EQ. 185) THEN C C REJECT DATA TOO CLOSE TO THE OROGRAPHY C DO JDATA= IDATA, IDATEND IKOUNTT=IKOUNTT+1 ZDIFF= GOMPSHR(1,JOBS) /100. IF ( ZDIFF .LT. RLISTCRIT ) THEN ITYP=MOBDATA(NCMVNM,JDATA) DO J=1,JPINEL ILEM=ILISTEL(J) IF ( ITYP .EQ. ILEM ) THEN IF(LLPRINT) THEN WRITE(NULOUT,224) 'Reject OBS ' & ,JOBS,ITYP,ROBDATA8(NCMPPP,JDATA),ZDIFF ENDIF MOBDATA(NCMASS,JDATA)=0 IKOUNTREJ(J)=IKOUNTREJ(J)+1 MOBDATA(NCMFLG,JDATA)=IBSET(MOBDATA(NCMFLG,JDATA),18) ENDIF END DO ENDIF END DO C END IF C END DO C C WRITE(NULOUT,* ) ' ' WRITE(NULOUT,* ) & '*****************************************************************' WRITE(NULOUT,222 )'ELEMENTS ', ( ILISTEL(J),J=1,JPINEL) WRITE(NULOUT,222)'REJECTED ',(IKOUNTREJ(J),J=1,JPINEL) WRITE(NULOUT,* ) & '*****************************************************************' WRITE(NULOUT,* ) ' ' 222 FORMAT(2x,a29,5(2x,i5)) 223 FORMAT(2x,a29,5(2x,f5.0)) 224 FORMAT(2x,a13,2x,I6,2X,I5,2(2x,f9.2)) C END IF END DO C IKOUNTT=0 DO JDATA=1,NDATA IF ( MOBDATA(NCMASS,JDATA) .EQ. 1) IKOUNTT=IKOUNTT+1 END DO WRITE(NULOUT & ,'(1X," NUMBER OF DATA ASSIMILATED BY 3D-VAR AFTER ADJUSTMENTS:",i10)')IKOUNTT WRITE(NULOUT,* ) ' ' RETURN END