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 15187 for NEMO/branches/UKMO/NEMO_4.0.4_generic_obs/src/OCE/OBS/obs_write.F90 – NEMO

Ignore:
Timestamp:
2021-08-13T11:34:58+02:00 (3 years ago)
Author:
dford
Message:

Update treatment of SLA and POTM additional/extra variables.

File:
1 edited

Legend:

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

    r15180 r15187  
    9191      INTEGER :: ilevel 
    9292      INTEGER :: jvar 
     93      INTEGER :: jvar2 
     94      INTEGER :: jsal 
    9395      INTEGER :: jo 
    9496      INTEGER :: jk 
     
    145147         ENDIF 
    146148      END DO 
    147 !fbdata%cextname(1)   = 'TEMP' 
    148 !fbdata%cextlong(1)   = 'Insitu temperature' 
    149 !fbdata%cextunit(1)   = 'Degrees centigrade' 
    150149 
    151150      WRITE(clfname, FMT="(A,'fb_fdbk_',I4.4,'.nc')") TRIM(clfiletype), nproc 
     
    230229                  END DO 
    231230               ENDIF 
    232 !IF ( ( jvar == 1 ) .AND. & 
    233 !   & ( TRIM(profdata%cvars(1)) == 'POTM' ) ) THEN 
    234 !   fbdata%pext(ik,jo,1) = profdata%var(jvar)%vext(jk,1) 
    235 !ENDIF  
    236231            END DO 
    237232         END DO 
    238233      END DO 
    239234 
    240 !IF ( TRIM(profdata%cvars(1)) == 'POTM' ) THEN 
    241 !   ! Convert insitu temperature to potential temperature using the model 
    242 !   ! salinity if no potential temperature 
    243 !   DO jo = 1, fbdata%nobs 
    244 !      IF ( fbdata%pphi(jo) < 9999.0 ) THEN 
    245 !         DO jk = 1, fbdata%nlev 
    246 !            IF ( ( fbdata%pob(jk,jo,1) >= 9999.0 ) .AND. & 
    247 !               & ( fbdata%pdep(jk,jo) < 9999.0 ) .AND. & 
    248 !               & ( fbdata%padd(jk,jo,1,2) < 9999.0 ) .AND. & 
    249 !               & ( fbdata%pext(jk,jo,1) < 9999.0 ) ) THEN 
    250 !               zpres = dep_to_p( REAL(fbdata%pdep(jk,jo),wp), & 
    251 !                  &              REAL(fbdata%pphi(jo),wp) ) 
    252 !               fbdata%pob(jk,jo,1) = potemp( & 
    253 !                  &                     REAL(fbdata%padd(jk,jo,1,2), wp),  & 
    254 !                  &                     REAL(fbdata%pext(jk,jo,1), wp), & 
    255 !                  &                     zpres, 0.0_wp ) 
    256 !            ENDIF 
    257 !         END DO 
    258 !      ENDIF 
    259 !   END DO 
    260 !ENDIF 
     235      ! Convert insitu temperature to potential temperature using the model 
     236      ! salinity if no potential temperature 
     237      IF (iext > 0) THEN 
     238         DO jvar = 1, profdata%nvar 
     239            IF ( TRIM(profdata%cvars(jvar)) == 'POTM' ) THEN 
     240               jsal = 0 
     241               DO jvar2 = 1, profdata%nvar 
     242                  IF ( TRIM(profdata%cvars(jvar2)) == 'PSAL' ) THEN 
     243                     jsal = jvar2 
     244                     EXIT 
     245                  ENDIF 
     246               END DO 
     247               IF (jsal > 0) THEN 
     248                  DO je = 1, iext 
     249                     IF ( TRIM(fbdata%cextname(je)) == 'TEMP' ) THEN 
     250                        DO jo = 1, fbdata%nobs 
     251                           IF ( fbdata%pphi(jo) < 9999.0 ) THEN 
     252                              DO jk = 1, fbdata%nlev 
     253                                 IF ( ( fbdata%pob(jk,jo,jvar)   >= 9999.0 ) .AND. & 
     254                                    & ( fbdata%pdep(jk,jo)        < 9999.0 ) .AND. & 
     255                                    & ( fbdata%padd(jk,jo,1,jsal) < 9999.0 ) .AND. & 
     256                                    & ( fbdata%pext(jk,jo,je)     < 9999.0 ) ) THEN 
     257                                    zpres = dep_to_p( REAL(fbdata%pdep(jk,jo),wp), & 
     258                                       &              REAL(fbdata%pphi(jo),wp) ) 
     259                                    fbdata%pob(jk,jo,jvar) = potemp( & 
     260                                       &                     REAL(fbdata%padd(jk,jo,1,jsal), wp), & 
     261                                       &                     REAL(fbdata%pext(jk,jo,je), wp),     & 
     262                                       &                     zpres, 0.0_wp ) 
     263                                 ENDIF 
     264                              END DO 
     265                           ENDIF 
     266                        END DO 
     267                        EXIT 
     268                     ENDIF 
     269                  END DO 
     270               ENDIF 
     271               EXIT 
     272            ENDIF 
     273         END DO 
     274      ENDIF 
    261275 
    262276      ! Write the obfbdata structure 
Note: See TracChangeset for help on using the changeset viewer.