Changeset 12557
- Timestamp:
- 2020-03-15T13:12:14+01:00 (3 years ago)
- 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 13 13 !! ** Method : Straightforward search 14 14 !! 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. 16 19 !! 17 20 !! History : … … 43 46 DO ji = 1, kobs 44 47 kobsk(ji) = 1 45 depk: DO jk = 2, kgrd 48 depk: DO jk = 2, kgrd-1 46 49 IF ( pgrddep(jk) >= pobsdep(ji) ) EXIT depk 47 50 END DO depk -
branches/UKMO/dev_r5518_obs_oper_update_sit/NEMOGCM/NEMO/OPA_SRC/OBS/obs_prep.F90
r11932 r12557 16 16 USE par_kind, ONLY : & ! Precision variables 17 17 & wp 18 USE dom_oce ! ocean space and time domain 18 19 USE in_out_manager ! I/O manager 19 20 USE obs_profiles_def ! Definitions for storage arrays for profiles … … 1188 1189 REAL(KIND=wp), DIMENSION(2,2,kprofno) :: & 1189 1190 & 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 1191 1193 INTEGER, DIMENSION(2,2,kprofno) :: & 1192 1194 & igrdi, & ! Grid i,j … … 1196 1198 INTEGER :: iig, ijg ! i,j of observation on model grid point. 1197 1199 INTEGER :: jobs, jobsp, jk, ji, jj 1200 REAL(KIND=wp) :: maxdept, maxdepw 1198 1201 1199 1202 ! Get grid point indices … … 1246 1249 CALL obs_int_comm_2d( 2, 2, kprofno, kpi, kpj, igrdi, igrdj, plam, zglam ) 1247 1250 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 ) 1248 1252 ! Need to know the bathy depth for each observation for sco 1249 1253 CALL obs_int_comm_3d( 2, 2, kprofno, kpi, kpj, kpk, igrdi, igrdj, fsdepw(:,:,:), & … … 1286 1290 DO jobsp = kpstart(jobs), kpend(jobs) 1287 1291 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 1288 1306 ! Flag if the observation falls outside the model spatial domain 1289 1307 IF ( ( pobslam(jobs) < -180. ) & … … 1292 1310 & .OR. ( pobsphi(jobs) > 90. ) & 1293 1311 & .OR. ( pobsdep(jobsp) < 0.0 ) & 1294 & .OR. ( pobsdep(jobsp) > gdepw_1d(kpk)) ) THEN1312 & .OR. ( pobsdep(jobsp) >= maxdepw ) ) THEN 1295 1313 kobsqc(jobsp) = IBSET(kobsqc(jobsp),11) 1296 1314 kosdobs = kosdobs + 1 … … 1359 1377 pobsdep(jobsp) = MINVAL(zgdept(1:2,1:2,1,jobs)) 1360 1378 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 1361 1385 1362 1386 #if defined key_bdy
Note: See TracChangeset
for help on using the changeset viewer.