Changeset 12557


Ignore:
Timestamp:
2020-03-15T13:12:14+01:00 (7 months ago)
Author:
dcarneir
Message:

Branch in sync with obs_oper_update

Location:
branches/UKMO/dev_r5518_obs_oper_update_sit/NEMOGCM/NEMO/OPA_SRC/OBS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_obs_oper_update_sit/NEMOGCM/NEMO/OPA_SRC/OBS/obs_level_search.h90

    r7960 r12557  
    1313      !! ** Method  : Straightforward search 
    1414      !! 
    15       !! ** Action  :  
     15      !! ** Action  : Will return level associated with T-point below the obs 
     16      !!              depth, except when observation is in the top box will  
     17      !!              return level 2. Also, if obs depth greater than depth  
     18      !!              of last wet T-point (kpk-1) will return level kpk. 
    1619      !! 
    1720      !! History : 
     
    4346      DO ji = 1, kobs  
    4447         kobsk(ji) = 1 
    45          depk: DO jk = 2, kgrd 
     48         depk: DO jk = 2, kgrd-1 
    4649            IF ( pgrddep(jk) >= pobsdep(ji) ) EXIT depk 
    4750         END DO depk 
  • branches/UKMO/dev_r5518_obs_oper_update_sit/NEMOGCM/NEMO/OPA_SRC/OBS/obs_prep.F90

    r11932 r12557  
    1616   USE par_kind, ONLY : & ! Precision variables 
    1717      & wp    
     18   USE dom_oce            ! ocean space and time domain 
    1819   USE in_out_manager     ! I/O manager 
    1920   USE obs_profiles_def   ! Definitions for storage arrays for profiles 
     
    11881189      REAL(KIND=wp), DIMENSION(2,2,kprofno) :: & 
    11891190         & zglam, &           ! Model longitude at grid points 
    1190          & zgphi              ! Model latitude at grid points 
     1191         & zgphi, &           ! Model latitude at grid points 
     1192         & zbathy             ! Index of deepest wet level at grid points 
    11911193      INTEGER, DIMENSION(2,2,kprofno) :: & 
    11921194         & igrdi, &           ! Grid i,j 
     
    11961198      INTEGER :: iig, ijg           ! i,j of observation on model grid point. 
    11971199      INTEGER :: jobs, jobsp, jk, ji, jj 
     1200      REAL(KIND=wp) :: maxdept, maxdepw 
    11981201 
    11991202      ! Get grid point indices 
     
    12461249      CALL obs_int_comm_2d( 2, 2, kprofno, kpi, kpj, igrdi, igrdj, plam, zglam ) 
    12471250      CALL obs_int_comm_2d( 2, 2, kprofno, kpi, kpj, igrdi, igrdj, pphi, zgphi ) 
     1251      CALL obs_int_comm_2d( 2, 2, kprofno, kpi, kpj, igrdi, igrdj, REAL(mbathy), zbathy ) 
    12481252      ! Need to know the bathy depth for each observation for sco 
    12491253      CALL obs_int_comm_3d( 2, 2, kprofno, kpi, kpj, kpk, igrdi, igrdj, fsdepw(:,:,:), & 
     
    12861290         DO jobsp = kpstart(jobs), kpend(jobs) 
    12871291 
     1292            ! Calculate max T and W depths of 2x2 grid 
     1293            maxdept=zgdept(1,1,NINT(zbathy(1,1,jobs)),jobs) 
     1294            maxdepw=zgdepw(1,1,NINT(zbathy(1,1,jobs))+1,jobs) 
     1295            DO jj = 1, 2 
     1296               DO ji = 1, 2 
     1297                  IF ( zgdept(ji,jj,NINT(zbathy(ji,jj,jobs)),jobs) > maxdept ) THEN 
     1298                     maxdept = zgdept(ji,jj,NINT(zbathy(ji,jj,jobs)),jobs) 
     1299                  END IF 
     1300                  IF ( zgdepw(ji,jj,NINT(zbathy(ji,jj,jobs))+1,jobs) > maxdepw ) THEN 
     1301                     maxdepw = zgdepw(ji,jj,NINT(zbathy(ji,jj,jobs))+1,jobs) 
     1302                  END IF 
     1303               END DO 
     1304            END DO 
     1305 
    12881306            ! Flag if the observation falls outside the model spatial domain 
    12891307            IF (       ( pobslam(jobs) < -180.         )       & 
     
    12921310               &  .OR. ( pobsphi(jobs) >   90.         )       & 
    12931311               &  .OR. ( pobsdep(jobsp) < 0.0          )       & 
    1294                &  .OR. ( pobsdep(jobsp) > gdepw_1d(kpk)) ) THEN 
     1312               &  .OR. ( pobsdep(jobsp) >= maxdepw ) ) THEN 
    12951313               kobsqc(jobsp) = IBSET(kobsqc(jobsp),11) 
    12961314               kosdobs = kosdobs + 1 
     
    13591377               pobsdep(jobsp) = MINVAL(zgdept(1:2,1:2,1,jobs)) 
    13601378            ENDIF 
     1379 
     1380            ! Set observation depth equal to that of the last wet T-point 
     1381            IF ( ( pobsdep(jobsp) > maxdept ) .AND. & 
     1382               & ( pobsdep(jobsp) < maxdepw ) ) THEN 
     1383               pobsdep(jobsp) = maxdept 
     1384            END IF 
    13611385             
    13621386#if defined key_bdy 
Note: See TracChangeset for help on using the changeset viewer.