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_write.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_write.F90

    r4990 r7841  
    173173         fbdata%ivqc(jo,:)    = profdata%ivqc(jo,:) 
    174174         fbdata%ivqcf(:,jo,:) = profdata%ivqcf(:,jo,:) 
    175          IF ( profdata%nqc(jo) > 10 ) THEN 
    176             fbdata%ioqc(jo)    = 4 
     175         IF ( profdata%nqc(jo) > 255 ) THEN 
     176            fbdata%ioqc(jo)    = IBSET(profdata%nqc(jo),2) 
    177177            fbdata%ioqcf(1,jo) = profdata%nqcf(1,jo) 
    178             fbdata%ioqcf(2,jo) = profdata%nqc(jo) - 10 
     178            fbdata%ioqcf(2,jo) = profdata%nqc(jo) 
    179179         ELSE 
    180180            fbdata%ioqc(jo)    = profdata%nqc(jo) 
     
    213213               fbdata%idqc(ik,jo)        = profdata%var(jvar)%idqc(jk) 
    214214               fbdata%idqcf(:,ik,jo)     = profdata%var(jvar)%idqcf(:,jk) 
    215                IF ( profdata%var(jvar)%nvqc(jk) > 10 ) THEN 
    216                   fbdata%ivlqc(ik,jo,jvar) = 4 
     215               IF ( profdata%var(jvar)%nvqc(jk) > 255 ) THEN 
     216                  fbdata%ivlqc(ik,jo,jvar) = IBSET(profdata%var(jvar)%nvqc(jk),2) 
    217217                  fbdata%ivlqcf(1,ik,jo,jvar) = profdata%var(jvar)%nvqcf(1,jk) 
    218                   fbdata%ivlqcf(2,ik,jo,jvar) = profdata%var(jvar)%nvqc(jk) - 10 
     218                  fbdata%ivlqcf(2,ik,jo,jvar) = IAND(profdata%var(jvar)%nvqc(jk),b'0000 0000 1111 1111') 
    219219               ELSE 
    220220                  fbdata%ivlqc(ik,jo,jvar) = profdata%var(jvar)%nvqc(jk) 
     
    360360         fbdata%ivqc(jo,:)    = 0 
    361361         fbdata%ivqcf(:,jo,:) = 0 
    362          IF ( sladata%nqc(jo) > 10 ) THEN 
     362         IF ( sladata%nqc(jo) > 255 ) THEN 
    363363            fbdata%ioqc(jo)    = 4 
    364364            fbdata%ioqcf(1,jo) = 0 
    365             fbdata%ioqcf(2,jo) = sladata%nqc(jo) - 10 
     365            fbdata%ioqcf(2,jo) =  IAND(sladata%nqc(jo),b'0000 0000 1111 1111') 
    366366         ELSE 
    367367            fbdata%ioqc(jo)    = sladata%nqc(jo) 
     
    395395         fbdata%idqc(1,jo)     = 0 
    396396         fbdata%idqcf(:,1,jo)  = 0 
    397          IF ( sladata%nqc(jo) > 10 ) THEN 
     397         IF ( sladata%nqc(jo) > 255 ) THEN 
    398398            fbdata%ivqc(jo,1)       = 4 
    399399            fbdata%ivlqc(1,jo,1)    = 4 
    400400            fbdata%ivlqcf(1,1,jo,1) = 0 
    401             fbdata%ivlqcf(2,1,jo,1) = sladata%nqc(jo) - 10 
     401            fbdata%ivlqcf(2,1,jo,1) =  IAND(sladata%nqc(jo),b'0000 0000 1111 1111') 
    402402         ELSE 
    403403            fbdata%ivqc(jo,1)       = sladata%nqc(jo) 
     
    514514         fbdata%ivqc(jo,:)    = 0 
    515515         fbdata%ivqcf(:,jo,:) = 0 
    516          IF ( sstdata%nqc(jo) > 10 ) THEN 
     516         IF ( sstdata%nqc(jo) > 255 ) THEN 
    517517            fbdata%ioqc(jo)    = 4 
    518518            fbdata%ioqcf(1,jo) = 0 
    519             fbdata%ioqcf(2,jo) = sstdata%nqc(jo) - 10 
     519            fbdata%ioqcf(2,jo) = IAND(sstdata%nqc(jo), b'0000 0000 1111 1111') 
    520520         ELSE 
    521521            fbdata%ioqc(jo)    = MAX(sstdata%nqc(jo),1) 
     
    548548         fbdata%idqc(1,jo)     = 0 
    549549         fbdata%idqcf(:,1,jo)  = 0 
    550          IF ( sstdata%nqc(jo) > 10 ) THEN 
     550         IF ( sstdata%nqc(jo) > 255 ) THEN 
    551551            fbdata%ivqc(jo,1)       = 4 
    552552            fbdata%ivlqc(1,jo,1)    = 4 
    553553            fbdata%ivlqcf(1,1,jo,1) = 0 
    554             fbdata%ivlqcf(2,1,jo,1) = sstdata%nqc(jo) - 10 
     554            fbdata%ivlqcf(2,1,jo,1) = IAND(sstdata%nqc(jo), b'0000 0000 1111 1111') 
    555555         ELSE 
    556556            fbdata%ivqc(jo,1)       = MAX(sstdata%nqc(jo),1) 
     
    670670         fbdata%ivqc(jo,:)    = 0 
    671671         fbdata%ivqcf(:,jo,:) = 0 
    672          IF ( seaicedata%nqc(jo) > 10 ) THEN 
     672         IF ( seaicedata%nqc(jo) > 255 ) THEN 
    673673            fbdata%ioqc(jo)    = 4 
    674674            fbdata%ioqcf(1,jo) = 0 
    675             fbdata%ioqcf(2,jo) = seaicedata%nqc(jo) - 10 
     675            fbdata%ioqcf(2,jo) = IAND(seaicedata%nqc(jo),b'0000 0000 1111 1111') 
    676676         ELSE 
    677677            fbdata%ioqc(jo)    = MAX(seaicedata%nqc(jo),1) 
     
    704704         fbdata%idqc(1,jo)     = 0 
    705705         fbdata%idqcf(:,1,jo)  = 0 
    706          IF ( seaicedata%nqc(jo) > 10 ) THEN 
     706         IF ( seaicedata%nqc(jo) > 255 ) THEN 
    707707            fbdata%ivlqc(1,jo,1) = 4 
    708708            fbdata%ivlqcf(1,1,jo,1) = 0 
    709             fbdata%ivlqcf(2,1,jo,1) = seaicedata%nqc(jo) - 10 
     709            fbdata%ivlqcf(2,1,jo,1) = IAND(seaicedata%nqc(jo),b'0000 0000 1111 1111') 
    710710         ELSE 
    711711            fbdata%ivlqc(1,jo,1) = MAX(seaicedata%nqc(jo),1) 
     
    849849         fbdata%ivqc(jo,:)    = profdata%ivqc(jo,:) 
    850850         fbdata%ivqcf(:,jo,:) = profdata%ivqcf(:,jo,:) 
    851          IF ( profdata%nqc(jo) > 10 ) THEN 
     851         IF ( profdata%nqc(jo) > 255 ) THEN 
    852852            fbdata%ioqc(jo)    = 4 
    853853            fbdata%ioqcf(1,jo) = profdata%nqcf(1,jo) 
    854             fbdata%ioqcf(2,jo) = profdata%nqc(jo) - 10 
     854            fbdata%ioqcf(2,jo) = IAND(profdata%nqc(jo), b'0000 0000 1111 1111') 
    855855         ELSE 
    856856            fbdata%ioqc(jo)    = profdata%nqc(jo) 
     
    894894               fbdata%idqc(ik,jo)        = profdata%var(jvar)%idqc(jk) 
    895895               fbdata%idqcf(:,ik,jo)     = profdata%var(jvar)%idqcf(:,jk) 
    896                IF ( profdata%var(jvar)%nvqc(jk) > 10 ) THEN 
     896               IF ( profdata%var(jvar)%nvqc(jk) > 255 ) THEN 
    897897                  fbdata%ivlqc(ik,jo,jvar) = 4 
    898898                  fbdata%ivlqcf(1,ik,jo,jvar) = profdata%var(jvar)%nvqcf(1,jk) 
    899                   fbdata%ivlqcf(2,ik,jo,jvar) = profdata%var(jvar)%nvqc(jk) - 10 
     899                  fbdata%ivlqcf(2,ik,jo,jvar) = IAND(profdata%nqc(jo), b'0000 0000 1111 1111') 
    900900               ELSE 
    901901                  fbdata%ivlqc(ik,jo,jvar) = profdata%var(jvar)%nvqc(jk) 
Note: See TracChangeset for help on using the changeset viewer.