New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7841 for branches/UKMO/dev_rev5518_OBS_DoNotAssim/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_prof.F90 – NEMO

Ignore:
Timestamp:
2017-03-29T12:14:30+02:00 (7 years ago)
Author:
jwhile
Message:

Added "Do not Assimlate" funtionality to OBS code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_rev5518_OBS_DoNotAssim/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_prof.F90

    r4990 r7841  
    308308            inowin = 0 
    309309            DO ji = 1, inpfiles(jj)%nobs 
    310                IF ( inpfiles(jj)%ioqc(ji) > 2 ) CYCLE 
    311                IF ( ( inpfiles(jj)%ivqc(ji,1) > 2 ) .AND. & 
    312                   & ( inpfiles(jj)%ivqc(ji,2) > 2 )) CYCLE 
     310               IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
     311               IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     312                  & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
    313313               IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND. & 
    314314                  & ( inpfiles(jj)%ptim(ji) <= djulend(jj) )       ) THEN 
     
    323323            inowin = 0 
    324324            DO ji = 1, inpfiles(jj)%nobs 
    325                IF ( inpfiles(jj)%ioqc(ji) > 2 ) CYCLE 
    326                IF ( ( inpfiles(jj)%ivqc(ji,1) > 2 ) .AND. & 
    327                   & ( inpfiles(jj)%ivqc(ji,2) > 2 )) CYCLE 
     325               IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
     326               IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     327                  & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
    328328               IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND. & 
    329329                  & ( inpfiles(jj)%ptim(ji) <= djulend(jj) )       ) THEN 
     
    338338            inowin = 0 
    339339            DO ji = 1, inpfiles(jj)%nobs 
    340                IF ( inpfiles(jj)%ioqc(ji) > 2 ) CYCLE 
    341                IF ( ( inpfiles(jj)%ivqc(ji,1) > 2 ) .AND. & 
    342                   & ( inpfiles(jj)%ivqc(ji,2) > 2 )) CYCLE 
     340               IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
     341               IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     342                  & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
    343343               IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND. & 
    344344                  & ( inpfiles(jj)%ptim(ji) <= djulend(jj) )       ) THEN 
     
    352352 
    353353            DO ji = 1, inpfiles(jj)%nobs 
    354                IF ( inpfiles(jj)%ioqc(ji) > 2 ) CYCLE 
    355                IF ( ( inpfiles(jj)%ivqc(ji,1) > 2 ) .AND. & 
    356                   & ( inpfiles(jj)%ivqc(ji,2) > 2 )) CYCLE 
     354               IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
     355               IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     356                  & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
    357357               IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND. & 
    358358                  & ( inpfiles(jj)%ptim(ji) <= djulend(jj) )       ) THEN 
     
    367367                        IF ( inpfiles(jj)%pdep(ij,ji) >= 6000. ) & 
    368368                           & CYCLE 
    369                         IF ( ( inpfiles(jj)%ivlqc(ij,ji,1) <= 2 ) .AND. & 
    370                            & ( inpfiles(jj)%idqc(ij,ji) <= 2 ) ) THEN 
     369                        IF ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
     370                           & .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) ) THEN 
    371371                           it3dt0 = it3dt0 + 1 
    372372                        ENDIF 
     
    377377                        IF ( inpfiles(jj)%pdep(ij,ji) >= 6000. ) & 
    378378                           & CYCLE 
    379                         IF ( ( inpfiles(jj)%ivlqc(ij,ji,2) <= 2 ) .AND. & 
    380                            & ( inpfiles(jj)%idqc(ij,ji) <= 2 ) ) THEN 
     379                        IF ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
     380                           & .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) ) THEN 
    381381                           is3dt0 = is3dt0 + 1 
    382382                        ENDIF 
     
    386386                     IF ( inpfiles(jj)%pdep(ij,ji) >= 6000. ) & 
    387387                        & CYCLE 
    388                      IF ( ( ( ( inpfiles(jj)%ivlqc(ij,ji,1) <= 2 ) .AND. & 
    389                         &     ( inpfiles(jj)%idqc(ij,ji) <= 2 ) ) .AND. & 
    390                         &     ldt3d ) .OR. & 
    391                         & ( ( ( inpfiles(jj)%ivlqc(ij,ji,2) <= 2 ) .AND. & 
    392                         &     ( inpfiles(jj)%idqc(ij,ji) <= 2 ) ) .AND. & 
    393                         &     lds3d ) ) THEN 
     388                     IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
     389                        &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     390                        &    ldt3d ) .OR. & 
     391                        & ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) .AND. & 
     392                        &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     393                        &   lds3d ) ) THEN 
    394394                        ip3dt = ip3dt + 1 
    395395                        llvalprof = .TRUE. 
     
    416416      DO jj = 1, inobf 
    417417         DO ji = 1, inpfiles(jj)%nobs 
    418             IF ( inpfiles(jj)%ioqc(ji) > 2 ) CYCLE 
    419             IF ( ( inpfiles(jj)%ivqc(ji,1) > 2 ) .AND. & 
    420                & ( inpfiles(jj)%ivqc(ji,2) > 2 )) CYCLE 
     418            IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
     419            IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     420               & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
    421421            IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND. & 
    422422               & ( inpfiles(jj)%ptim(ji) <= djulend(jj) )       ) THEN 
     
    431431      DO jj = 1, inobf 
    432432         DO ji = 1, inpfiles(jj)%nobs 
    433             IF ( inpfiles(jj)%ioqc(ji) > 2 ) CYCLE 
    434             IF ( ( inpfiles(jj)%ivqc(ji,1) > 2 ) .AND. & 
    435                & ( inpfiles(jj)%ivqc(ji,2) > 2 )) CYCLE 
     433            IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
     434            IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     435               & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
    436436            IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND. & 
    437437               & ( inpfiles(jj)%ptim(ji) <= djulend(jj) )       ) THEN 
     
    480480         ji = iprofidx(iindx(jk)) 
    481481 
    482          IF ( inpfiles(jj)%ioqc(ji) > 2 ) CYCLE 
    483          IF ( ( inpfiles(jj)%ivqc(ji,1) > 2 ) .AND. & 
    484             & ( inpfiles(jj)%ivqc(ji,2) > 2 )) CYCLE 
     482         IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
     483         IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     484            & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
    485485 
    486486         IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND.  & 
     
    495495            llvalprof = .FALSE. 
    496496 
    497             IF ( inpfiles(jj)%ioqc(ji) > 2 ) CYCLE 
    498  
    499             IF ( ( inpfiles(jj)%ivqc(ji,1) > 2 ) .AND. & 
    500                & ( inpfiles(jj)%ivqc(ji,2) > 2 ) ) CYCLE 
     497            IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
     498            IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     499               & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
    501500 
    502501            loop_prof : DO ij = 1, inpfiles(jj)%nlev 
     
    505504                  & CYCLE 
    506505                
    507                IF ( ( inpfiles(jj)%ivlqc(ij,ji,1) <= 2 ) .AND. & 
    508                   & ( inpfiles(jj)%idqc(ij,ji) <= 2 ) ) THEN 
     506               IF ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
     507                  & .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) ) THEN 
    509508                   
    510509                  llvalprof = .TRUE.  
     
    513512               ENDIF 
    514513                
    515                IF ( ( inpfiles(jj)%ivlqc(ij,ji,2) <= 2 ) .AND. & 
    516                   & ( inpfiles(jj)%idqc(ij,ji) <= 2 ) ) THEN 
     514               IF ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) .AND. & 
     515                  & .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) ) THEN 
    517516                   
    518517                  llvalprof = .TRUE.  
     
    592591                  IF (ldsatt) THEN 
    593592 
    594                      IF ( ( ( ( inpfiles(jj)%ivlqc(ij,ji,1) <= 2 ) .AND. & 
    595                         &     ( inpfiles(jj)%idqc(ij,ji) <= 2 ) ) .AND. & 
    596                         &     ldt3d ) .OR. & 
    597                         & ( ( ( inpfiles(jj)%ivlqc(ij,ji,2) <= 2 ) .AND. & 
    598                         &     ( inpfiles(jj)%idqc(ij,ji) <= 2 ) ) .AND. & 
    599                         &     lds3d ) ) THEN 
     593                     IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
     594                        &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     595                        &    ldt3d ) .OR. & 
     596                        & ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) .AND. & 
     597                        &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     598                        &   lds3d ) ) THEN 
    600599                        ip3dt = ip3dt + 1 
    601600                     ELSE 
     
    605604                  ENDIF 
    606605 
    607                   IF ( ( ( ( inpfiles(jj)%ivlqc(ij,ji,1) <= 2 ) .AND. & 
    608                      &     ( inpfiles(jj)%idqc(ij,ji) <= 2 ) ) .AND. & 
    609                      &       ldt3d ) .OR. ldsatt ) THEN 
     606                  IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
     607                    &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     608                    &    ldt3d ) .OR. ldsatt ) THEN 
    610609                      
    611610                     IF (ldsatt) THEN 
     
    667666                  ENDIF 
    668667                   
    669                   IF ( ( ( ( inpfiles(jj)%ivlqc(ij,ji,2) <= 2 ) .AND. & 
    670                      &   ( inpfiles(jj)%idqc(ij,ji) <= 2 ) ) .AND. & 
    671                      &   lds3d ) .OR. ldsatt ) THEN 
     668                  IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
     669                    &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     670                    &    ldt3d ) .OR. ldsatt ) THEN 
    672671                      
    673672                     IF (ldsatt) THEN 
Note: See TracChangeset for help on using the changeset viewer.