Changeset 7875
- Timestamp:
- 2017-04-05T16:22:33+02:00 (7 years ago)
- Location:
- branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf.F90
r7845 r7875 27 27 USE wrk_nemo ! Memory Allocation 28 28 USE timing ! Timing 29 USE divcur ! for dyn_vrt_dia_3d30 29 31 30 IMPLICIT NONE … … 59 58 INTEGER, INTENT( in ) :: kt ! ocean time-step index 60 59 ! 61 INTEGER :: id_dia_vrt_zdf_int = 1 ! TODO remove once flags set properly62 INTEGER :: id_dia_vrt_zdf_mean = 1 ! TODO remove once flags set properly63 60 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdu, ztrdv 64 61 !!--------------------------------------------------------------------- … … 71 68 ENDIF 72 69 73 IF ( ( l_trddyn ) .or. ( id_dia_vrt_zdf_int == 1 ) .or. ( id_dia_vrt_zdf_mean == 1 ) )THEN ! temporary save of ta and sa trends70 IF( l_trddyn ) THEN ! temporary save of ta and sa trends 74 71 CALL wrk_alloc( jpi, jpj, jpk, ztrdu, ztrdv ) 75 72 ztrdu(:,:,:) = ua(:,:,:) … … 91 88 END SELECT 92 89 93 IF ( ( l_trddyn ) .or. ( id_dia_vrt_zdf_int == 1 ) .or. ( id_dia_vrt_zdf_mean == 1 ) )THEN ! save the vertical diffusive trends for further diagnostics90 IF( l_trddyn ) THEN ! save the vertical diffusive trends for further diagnostics 94 91 ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 95 92 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 96 97 ! Calculate dia_vor_int & dia_vor_mn if required.98 IF ( ( id_dia_vrt_zdf_int == 1 ) .or. ( id_dia_vrt_zdf_mean == 1 ) ) THEN99 CALL dyn_vrt_dia_3d(ztrdu, ztrdv, id_dia_vrt_zdf_int, id_dia_vrt_zdf_mean)100 END IF101 102 93 CALL trd_dyn( ztrdu, ztrdv, jpdyn_zdf, kt ) 103 94 CALL wrk_dealloc( jpi, jpj, jpk, ztrdu, ztrdv ) -
branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90
r6795 r7875 26 26 USE timing ! Timing 27 27 USE dynadv ! dynamics: vector invariant versus flux form 28 USE divcur ! for dyn_vrt_dia_3d 28 29 USE dynspg_oce, ONLY: lk_dynspg_ts 29 30 … … 68 69 INTEGER :: ji, jj, jk ! dummy loop indices 69 70 INTEGER :: ikbu, ikbv ! local integers 71 INTEGER :: id_dia_vrt_zdf_int = 1 ! TODO remove once flags set properly 72 INTEGER :: id_dia_vrt_zdf_mean = 1 ! TODO remove once flags set properly 70 73 REAL(wp) :: z1_p2dt, zcoef, zzwi, zzws, zrhs ! local scalars 71 74 REAL(wp) :: ze3ua, ze3va 72 75 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwd, zws 76 REAL(wp), POINTER, DIMENSION(:,:,:) :: zua, zva 73 77 !!---------------------------------------------------------------------- 74 78 ! … … 76 80 ! 77 81 CALL wrk_alloc( jpi,jpj,jpk, zwi, zwd, zws ) 82 CALL wrk_alloc( jpi,jpj,jpk, zua, zva ) 78 83 ! 79 84 IF( kt == nit000 ) THEN … … 268 273 #endif 269 274 275 ! TODO merge with above if possible 276 ! Calculate the values in preparation to calculate dia_vor_int & dia_vor_mn if required 277 IF ( ( id_dia_vrt_zdf_int == 1 ) .or. ( id_dia_vrt_zdf_mean == 1 ) ) THEN 278 DO jk = 1, jpkm1 279 DO jj = 2, jpjm1 280 DO ji = fs_2, fs_jpim1 ! vector opt. 281 zua(ji,jj,jk) = ( ua(ji,jj,jk) - ub(ji,jj,jk) ) * z1_p2dt 282 END DO 283 END DO 284 END DO 285 END IF 286 287 270 288 ! 3. Vertical diffusion on v 271 289 ! --------------------------- … … 367 385 END DO 368 386 #endif 387 388 ! TODO merge with above if possible 389 ! Calculate dia_vor_int & dia_vor_mn if required 390 IF ( ( id_dia_vrt_zdf_int == 1 ) .or. ( id_dia_vrt_zdf_mean == 1 ) ) THEN 391 DO jk = 1, jpkm1 392 DO jj = 2, jpjm1 393 DO ji = fs_2, fs_jpim1 ! vector opt. 394 zva(ji,jj,jk) = ( va(ji,jj,jk) - vb(ji,jj,jk) ) * z1_p2dt 395 END DO 396 END DO 397 END DO 398 399 CALL dyn_vrt_dia_3d(zua, zva, id_dia_vrt_zdf_int, id_dia_vrt_zdf_mean) 400 END IF 369 401 370 402 ! J. Chanut: Lines below are useless ? … … 392 424 ! 393 425 CALL wrk_dealloc( jpi,jpj,jpk, zwi, zwd, zws) 426 CALL wrk_dealloc( jpi,jpj,jpk, zua, zva ) 394 427 ! 395 428 IF( nn_timing == 1 ) CALL timing_stop('dyn_zdf_imp')
Note: See TracChangeset
for help on using the changeset viewer.