- Timestamp:
- 2017-06-21T11:39:54+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90
r6486 r8197 48 48 USE lib_fortran 49 49 USE timing ! Timing 50 USE divcur ! for dyn_vrt_dia_3d 50 51 #if defined key_agrif 51 52 USE agrif_opa_interp … … 108 109 INTEGER, INTENT( out) :: kindic ! solver convergence flag (<0 if not converge) 109 110 ! 111 CHARACTER(len=3) :: id_vrt_dia_spg = "spg" ! TODO remove once flags set properly 110 112 INTEGER :: ji, jj, jk ! dummy loop indices 111 113 REAL(wp) :: z2dt, z2dtg, zgcb, zbtd, ztdgu, ztdgv ! local scalars … … 130 132 ! ! gcx, gcxb 131 133 ENDIF 134 135 IF ( l_trddyn .OR. ( id_vrt_dia_spg == "spg" ) ) THEN 136 CALL wrk_alloc( jpi, jpj, jpk, ztrdu, ztrdv ) 137 END IF 132 138 133 139 ! Local constant initialization … … 184 190 END DO 185 191 ! 186 IF( l_trddyn ) THEN! temporary save of spg trends187 CALL wrk_alloc( jpi, jpj, jpk, ztrdu, ztrdv )192 ! temporary save of spg trends 193 IF ( l_trddyn .OR. ( id_vrt_dia_spg == "spg" ) ) THEN 188 194 DO jk = 1, jpkm1 ! unweighted time stepping 189 195 DO jj = 2, jpjm1 … … 328 334 #endif 329 335 330 IF ( l_trddyn) THEN336 IF ( l_trddyn .OR. ( id_vrt_dia_spg == "spg" ) ) THEN 331 337 ztrdu(:,:,:) = ua(:,:,:) ! save the after velocity before the filtered SPG 332 338 ztrdv(:,:,:) = va(:,:,:) 333 339 ! 334 CALL wrk_alloc( jpi, jpj, zpw ) 335 ! 336 zpw(:,:) = - z2dt * gcx(:,:) 337 CALL iom_put( "ssh_flt" , zpw ) ! output equivalent ssh modification due to implicit filter 338 ! 339 ! ! save surface pressure flux: -pw at z=0 340 zpw(:,:) = - rau0 * grav * sshn(:,:) * wn(:,:,1) * tmask(:,:,1) 341 CALL iom_put( "pw0_exp" , zpw ) 342 zpw(:,:) = wn(:,:,1) 343 CALL iom_put( "w0" , zpw ) 344 zpw(:,:) = rau0 * z2dtg * gcx(:,:) * wn(:,:,1) * tmask(:,:,1) 345 CALL iom_put( "pw0_flt" , zpw ) 346 ! 347 CALL wrk_dealloc( jpi, jpj, zpw ) 348 ! 340 IF ( l_trddyn ) THEN 341 CALL wrk_alloc( jpi, jpj, zpw ) 342 ! 343 zpw(:,:) = - z2dt * gcx(:,:) 344 CALL iom_put( "ssh_flt" , zpw ) ! output equivalent ssh modification due to implicit filter 345 ! 346 ! ! save surface pressure flux: -pw at z=0 347 zpw(:,:) = - rau0 * grav * sshn(:,:) * wn(:,:,1) * tmask(:,:,1) 348 CALL iom_put( "pw0_exp" , zpw ) 349 zpw(:,:) = wn(:,:,1) 350 CALL iom_put( "w0" , zpw ) 351 zpw(:,:) = rau0 * z2dtg * gcx(:,:) * wn(:,:,1) * tmask(:,:,1) 352 CALL iom_put( "pw0_flt" , zpw ) 353 ! 354 CALL wrk_dealloc( jpi, jpj, zpw ) 355 ! 356 ENDIF 349 357 ENDIF 350 358 … … 363 371 END DO 364 372 365 IF ( l_trddyn) THEN ! save the explicit SPG trends for further diagnostics373 IF ( l_trddyn .OR. ( id_vrt_dia_spg == "spg" ) ) THEN ! save the explicit SPG trends for further diagnostics 366 374 ztrdu(:,:,:) = ( ua(:,:,:) - ztrdu(:,:,:) ) / z2dt 367 375 ztrdv(:,:,:) = ( va(:,:,:) - ztrdv(:,:,:) ) / z2dt 368 CALL trd_dyn( ztrdu, ztrdv, jpdyn_spgflt, kt ) 376 ! 377 IF ( l_trddyn ) THEN 378 CALL trd_dyn( ztrdu, ztrdv, jpdyn_spgflt, kt ) 379 END IF 380 ! 381 IF ( id_vrt_dia_spg == "spg" ) THEN 382 ! TODO remove kt after validation 383 CALL dyn_vrt_dia_3d( ztrdu, ztrdv, id_vrt_dia_spg, kt ) 384 END IF 369 385 ! 370 386 CALL wrk_dealloc( jpi, jpj, jpk, ztrdu, ztrdv )
Note: See TracChangeset
for help on using the changeset viewer.