Changeset 7352 for branches/2016/dev_r7233_CMIP6_diags_trunk_version/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_triad.F90
- Timestamp:
- 2016-11-28T17:52:03+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/traldf_triad.F90
r7236 r7352 20 20 USE traldf_iso ! lateral diffusion (Madec operator) (tra_ldf_iso routine) 21 21 USE diaptr ! poleward transport diagnostics 22 USE diaar5 ! AR5 diagnostics 22 23 USE zpshde ! partial step: hor. derivative (zps_hde routine) 23 24 ! … … 35 36 36 37 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE :: zdkt3d !: vertical tracer gradient at 2 levels 38 39 LOGICAL :: l_ptr ! flag to compute poleward transport 40 LOGICAL :: l_hst ! flag to compute heat transport 41 37 42 38 43 !! * Substitutions … … 89 94 REAL(wp) :: ze1ur, ze2vr, ze3wr, zdxt, zdyt, zdzt 90 95 REAL(wp) :: zah, zah_slp, zaei_slp 91 #if defined key_diaar592 REAL(wp) :: zztmp ! local scalar93 #endif94 96 REAL(wp), POINTER, DIMENSION(:,: ) :: z2d ! 2D workspace 95 97 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw ! 3D - … … 112 114 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~' 113 115 ENDIF 114 ! ! set time step size (Euler/Leapfrog) 116 ! 117 l_hst = .FALSE. 118 l_ptr = .FALSE. 119 IF( cdtype == 'TRA' .AND. ln_diaptr ) l_ptr = .TRUE. 120 IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 121 & iom_use("uadv_salttr") .OR. iom_use("vadv_salttr") ) ) l_hst = .TRUE. 122 ! 123 ! ! set time step size (Euler/Leapfrog) 115 124 IF( neuler == 0 .AND. kt == kit000 ) THEN ; z2dt = rdt ! at nit000 (Euler) 116 125 ELSE ; z2dt = 2.* rdt ! (Leapfrog) … … 416 425 ! 417 426 ! ! "Poleward" diffusive heat or salt transports (T-S case only) 418 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL dia_ptr_ohst_components( jn, 'ldf', zftv(:,:,:) ) 419 ! 420 IF( iom_use("udiff_heattr") .OR. iom_use("vdiff_heattr") ) THEN 421 ! 422 IF( cdtype == 'TRA' .AND. jn == jp_tem ) THEN 423 z2d(:,:) = zftu(ji,jj,1) 424 DO jk = 2, jpkm1 425 DO jj = 2, jpjm1 426 DO ji = fs_2, fs_jpim1 ! vector opt. 427 z2d(ji,jj) = z2d(ji,jj) + zftu(ji,jj,jk) 428 END DO 429 END DO 430 END DO 431 z2d(:,:) = rau0_rcp * z2d(:,:) 432 CALL lbc_lnk( z2d, 'U', -1. ) 433 CALL iom_put( "udiff_heattr", z2d ) ! heat i-transport 434 ! 435 z2d(:,:) = zftv(ji,jj,1) 436 DO jk = 2, jpkm1 437 DO jj = 2, jpjm1 438 DO ji = fs_2, fs_jpim1 ! vector opt. 439 z2d(ji,jj) = z2d(ji,jj) + zftv(ji,jj,jk) 440 END DO 441 END DO 442 END DO 443 z2d(:,:) = rau0_rcp * z2d(:,:) 444 CALL lbc_lnk( z2d, 'V', -1. ) 445 CALL iom_put( "vdiff_heattr", z2d ) ! heat j-transport 446 ENDIF 447 ! 448 ENDIF 427 IF( l_ptr ) CALL dia_ptr_hst( jn, 'ldf', zftv(:,:,:) ) 428 ! ! Diffusive heat transports 429 IF( l_hst ) CALL dia_ar5_hst( jn, 'ldf', zftu(:,:,:), zftv(:,:,:) ) 449 430 ! 450 431 ENDIF !== end pass selection ==!
Note: See TracChangeset
for help on using the changeset viewer.