Changeset 15395


Ignore:
Timestamp:
2021-10-18T14:42:58+02:00 (3 months ago)
Author:
dford
Message:

Fix use of POTM/TEMP and grid type output.

Location:
NEMO/branches/UKMO/NEMO_4.0.4_generic_obs/src/OCE/OBS
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.4_generic_obs/src/OCE/OBS/diaobs.F90

    r15285 r15395  
    243243               ENDIF 
    244244               ! 
     245               sobsgroups(jgroup)%sprofdata%cgrid = sobsgroups(jgroup)%cgrid 
     246               ! 
    245247               CALL obs_pre_prof( sobsgroups(jgroup)%sprofdata,     & 
    246248                  &               sobsgroups(jgroup)%sprofdataqc,   & 
     
    306308                  END DO 
    307309               ENDIF 
     310               ! 
     311               sobsgroups(jgroup)%ssurfdata%cgrid = sobsgroups(jgroup)%cgrid 
    308312               ! 
    309313               CALL obs_pre_surf( sobsgroups(jgroup)%ssurfdata,      & 
  • NEMO/branches/UKMO/NEMO_4.0.4_generic_obs/src/OCE/OBS/obs_group_def.F90

    r15285 r15395  
    5757      CHARACTER(LEN=128)                            :: cbiasvarname  !: Bias variable name in input file 
    5858      CHARACTER(LEN=128)                            :: caltbiasfile  !: Altimeter bias input file name 
     59      CHARACTER(LEN=1)                              :: cgrid         !: Grid type (T,U,V) 
    5960      ! 
    6061      INTEGER,            DIMENSION(:), ALLOCATABLE :: nprofdavtypes !: Profile data types representing a daily average 
     
    316317               ! 
    317318               IF (TRIM(sdobsgroup%cobstypes(itype)) == cobsname_uvel) THEN 
     319                  sdobsgroup%cgrid              = 'U' 
    318320                  sdobsgroup%rglam(:,:,itype)   = glamu(:,:) 
    319321                  sdobsgroup%rgphi(:,:,itype)   = gphiu(:,:) 
    320322                  sdobsgroup%rmask(:,:,:,itype) = umask(:,:,:) 
    321323               ELSEIF (TRIM(sdobsgroup%cobstypes(itype)) == cobsname_vvel) THEN 
     324                  sdobsgroup%cgrid              = 'V' 
    322325                  sdobsgroup%rglam(:,:,itype)   = glamv(:,:) 
    323326                  sdobsgroup%rgphi(:,:,itype)   = gphiv(:,:) 
    324327                  sdobsgroup%rmask(:,:,:,itype) = vmask(:,:,:) 
    325328               ELSE 
     329                  sdobsgroup%cgrid              = 'T' 
    326330                  sdobsgroup%rglam(:,:,itype)   = glamt(:,:) 
    327331                  sdobsgroup%rgphi(:,:,itype)   = gphit(:,:) 
  • NEMO/branches/UKMO/NEMO_4.0.4_generic_obs/src/OCE/OBS/obs_read_prof.F90

    r15228 r15395  
    164164      LOGICAL :: lldavtimset 
    165165      LOGICAL :: llcycle 
     166      LOGICAL :: llpotm 
    166167      TYPE(obfbdata), POINTER, DIMENSION(:) :: & 
    167168         & inpfiles 
     
    867868                   
    868869                  ! Extra variables 
     870                  ! Special consideration for if the extra variable is called TEMP 
     871                  ! and there's a regular variable called POTM. These are in situ 
     872                  ! and potential temperature respectively, and need the same QC checks 
    869873                  IF ( iextr > 0 ) THEN 
    870874                     profdata%vext%nepidx(ip3dt) = iprof 
    871875                     profdata%vext%nelidx(ip3dt) = ij 
    872876                     DO jext = 1, iextr 
    873                         profdata%vext%eobs(ip3dt,kextr+jext) = inpfiles(jj)%pext(ij,ji,jext) 
     877                        IF ( TRIM(inpfiles(jj)%cextname(jext)) == 'TEMP' ) THEN 
     878                           llpotm = .false. 
     879                           DO jvar = 1, kvars 
     880                              IF ( TRIM(inpfiles(jj)%cname(jvar)) == 'POTM' ) THEN 
     881                                 IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,jvar),2) .AND. & 
     882                                    &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     883                                    &    ldvar(jvar) ) ) THEN 
     884                                    profdata%vext%eobs(ip3dt,kextr+jext) = inpfiles(jj)%pext(ij,ji,jext) 
     885                                 ELSE 
     886                                    profdata%vext%eobs(ip3dt,kextr+jext) = fbrmdi 
     887                                 ENDIF 
     888                                 llpotm = .true. 
     889                                 EXIT 
     890                              ENDIF 
     891                           END DO 
     892                           IF ( .NOT. llpotm ) THEN 
     893                              profdata%vext%eobs(ip3dt,kextr+jext) = inpfiles(jj)%pext(ij,ji,jext) 
     894                           ENDIF 
     895                        ELSE 
     896                           profdata%vext%eobs(ip3dt,kextr+jext) = inpfiles(jj)%pext(ij,ji,jext) 
     897                        ENDIF 
    874898                     END DO 
    875899                  ENDIF 
Note: See TracChangeset for help on using the changeset viewer.