Changeset 7236 for branches/2016/dev_r7233_CMIP6_diags_trunk_version/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_fct.F90
- Timestamp:
- 2016-11-16T12:48:46+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r7233_CMIP6_diags_trunk_version/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_fct.F90
r6771 r7236 80 80 REAL(wp) :: zfm_ui, zfm_vj, zfm_wk, zC2t_v, zC4t_v ! - - 81 81 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw 82 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrd z82 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrd, zptry 83 83 !!---------------------------------------------------------------------- 84 84 ! … … 101 101 ENDIF 102 102 ! 103 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 104 CALL wrk_alloc( jpi, jpj, jpk, zptry ) 105 zptry(:,:,:) = 0._wp 106 ENDIF 103 107 ! ! surface & bottom value : flux set to zero one for all 104 108 zwz(:,:, 1 ) = 0._wp … … 165 169 END IF 166 170 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 167 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 168 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 169 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 170 ENDIF 171 IF( cdtype == 'TRA' .AND. ln_diaptr ) zptry(:,:,:) = zwy(:,:,:) 171 172 ! 172 173 ! !== anti-diffusive flux : high order minus low order ==! … … 305 306 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 306 307 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 307 IF( jn == jp_tem ) htr_adv(:) = htr_adv(:) + ptr_sj( zwy(:,:,:) )308 IF( jn == jp_sal ) str_adv(:) = str_adv(:) + ptr_sj( zwy(:,:,:) )308 zptry(:,:,:) = zptry(:,:,:) + zwy(:,:,:) ! <<< Add to previously computed 309 CALL dia_ptr_ohst_components( jn, 'adv', zptry(:,:,:) ) 309 310 ENDIF 310 311 ! … … 312 313 ! 313 314 CALL wrk_dealloc( jpi,jpj,jpk, zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw ) 315 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL wrk_dealloc( jpi, jpj, jpk, zptry ) 314 316 ! 315 317 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_fct') … … 357 359 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwx, zwy, zwz, zhdiv, zwzts, zwz_sav 358 360 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz 361 REAL(wp), POINTER, DIMENSION(:,:,:) :: zptry 359 362 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrs 360 363 !!---------------------------------------------------------------------- … … 380 383 ENDIF 381 384 ! 385 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 386 CALL wrk_alloc( jpi, jpj,jpk, zptry ) 387 zptry(:,:,:) = 0._wp 388 ENDIF 382 389 zwi(:,:,:) = 0._wp 383 390 z_rzts = 1._wp / REAL( kn_fct_zts, wp ) … … 449 456 END IF 450 457 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 451 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 452 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) 453 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) 454 ENDIF 458 IF( cdtype == 'TRA' .AND. ln_diaptr ) zptry(:,:,:) = zwy(:,:,:) 455 459 456 460 ! 3. anti-diffusive flux : high order minus low order … … 582 586 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 583 587 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 584 IF( jn == jp_tem ) htr_adv(:) = ptr_sj( zwy(:,:,:) ) + htr_adv(:)585 IF( jn == jp_sal ) str_adv(:) = ptr_sj( zwy(:,:,:) ) + str_adv(:)588 zptry(:,:,:) = zptry(:,:,:) + zwy(:,:,:) 589 CALL dia_ptr_ohst_components( jn, 'adv', zptry(:,:,:) ) 586 590 ENDIF 587 591 ! … … 591 595 CALL wrk_alloc( jpi,jpj, jpk, zwx, zwy, zwz, zwi, zhdiv, zwzts, zwz_sav ) 592 596 CALL wrk_alloc( jpi,jpj,jpk,kjpt+1, ztrs ) 597 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL wrk_dealloc( jpi, jpj, jpk, zptry ) 593 598 ! 594 599 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_fct_zts')
Note: See TracChangeset
for help on using the changeset viewer.