New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Diff [8627:7494] for branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90 – NEMO

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90

    r8627 r7494  
    165165         CALL iom_put( "voce_eiv", v_eiv )    ! j-eiv current 
    166166         CALL iom_put( "woce_eiv", w_eiv )    ! vert. eiv current 
    167          ! 
    168167         IF( iom_use('weiv_masstr') ) THEN   ! vertical mass transport & its square value 
    169             z2d(:,:) = rau0 * e12t(:,:) 
    170             DO jk = 1, jpk 
    171                z3d(:,:,jk) = w_eiv(:,:,jk) * z2d(:,:) 
    172             END DO 
    173             CALL iom_put( "weiv_masstr" , z3d )   
    174          ENDIF 
    175          ! 
     168           z2d(:,:) = rau0 * e12t(:,:) 
     169           DO jk = 1, jpk 
     170              z3d(:,:,jk) = w_eiv(:,:,jk) * z2d(:,:) 
     171           END DO 
     172           CALL iom_put( "weiv_masstr" , z3d )   
     173         ENDIF 
    176174         IF( iom_use("ueiv_masstr") .OR. iom_use("ueiv_heattr") .OR. iom_use('ueiv_heattr3d')        & 
    177             &                       .OR. iom_use("ueiv_salttr") .OR. iom_use('ueiv_salttr3d') ) THEN 
     175                                    .OR. iom_use("ueiv_salttr") .OR. iom_use('ueiv_salttr3d') ) THEN 
    178176            z3d(:,:,jpk) = 0.e0 
    179177            z2d(:,:) = 0.e0 
     
    184182            CALL iom_put( "ueiv_masstr", z3d )                  ! mass transport in i-direction 
    185183         ENDIF 
    186          ! 
     184 
    187185         IF( iom_use('ueiv_heattr') .OR. iom_use('ueiv_heattr3d') ) THEN 
    188186            zztmp = 0.5 * rcp  
     
    206204            ENDIF 
    207205         ENDIF 
    208          ! 
     206 
    209207         IF( iom_use('ueiv_salttr') .OR. iom_use('ueiv_salttr3d') ) THEN 
    210208            zztmp = 0.5 * 0.001 
     
    228226            ENDIF 
    229227         ENDIF 
    230          ! 
     228 
    231229         IF( iom_use("veiv_masstr") .OR. iom_use("veiv_heattr") .OR. iom_use('veiv_heattr3d')       & 
    232230                                    .OR. iom_use("veiv_salttr") .OR. iom_use('veiv_salttr3d') ) THEN 
     
    237235            CALL iom_put( "veiv_masstr", z3d )                  ! mass transport in j-direction 
    238236         ENDIF 
    239          !    
     237             
    240238         IF( iom_use('veiv_heattr') .OR. iom_use('veiv_heattr3d') ) THEN 
    241239            zztmp = 0.5 * rcp  
     
    259257            ENDIF 
    260258         ENDIF 
    261          ! 
     259 
    262260         IF( iom_use('veiv_salttr') .OR. iom_use('veiv_salttr3d') ) THEN 
    263261            zztmp = 0.5 * 0.001 
     
    281279            ENDIF 
    282280         ENDIF 
    283          ! 
     281 
    284282         IF( iom_use('weiv_masstr') .OR. iom_use('weiv_heattr3d') .OR. iom_use('weiv_salttr3d')) THEN   ! vertical mass transport & its square value 
    285283           z2d(:,:) = rau0 * e12t(:,:) 
     
    289287           CALL iom_put( "weiv_masstr" , z3d )                  ! mass transport in k-direction 
    290288         ENDIF 
    291          ! 
     289 
    292290         IF( iom_use('weiv_heattr3d') ) THEN 
    293291            zztmp = 0.5 * rcp  
     
    302300            CALL iom_put( "weiv_heattr3d", zztmp * z3d_T )                 ! 3D heat transport in k-direction 
    303301         ENDIF 
    304          ! 
     302 
    305303         IF( iom_use('weiv_salttr3d') ) THEN 
    306304            zztmp = 0.5 * 0.001  
     
    315313            CALL iom_put( "weiv_salttr3d", zztmp * z3d_T )                 ! 3D salt transport in k-direction 
    316314         ENDIF 
    317          ! 
    318          IF( ln_diaptr ) THEN 
    319             z3d(:,:,:) = 0._wp 
    320             DO jk = 1, jpkm1 
    321                DO jj = 2, jpjm1 
    322                   DO ji = fs_2, fs_jpim1   ! vector opt. 
    323                      z3d(ji,jj,jk) = v_eiv(ji,jj,jk) * 0.5 * (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) & 
    324                         &             * e1v(ji,jj) * fse3v(ji,jj,jk) 
    325                   END DO 
    326                END DO 
    327             END DO 
    328             CALL dia_ptr_ohst_components( jp_tem, 'eiv', z3d ) 
    329             z3d(:,:,:) = 0._wp 
    330             DO jk = 1, jpkm1 
    331                DO jj = 2, jpjm1 
    332                   DO ji = fs_2, fs_jpim1   ! vector opt. 
    333                      z3d(ji,jj,jk) = v_eiv(ji,jj,jk) * 0.5 * (tsn(ji,jj,jk,jp_sal)+tsn(ji,jj+1,jk,jp_sal)) & 
    334                      &             * e1v(ji,jj) * fse3v(ji,jj,jk) 
    335                   END DO 
    336                END DO 
    337             END DO 
    338             CALL dia_ptr_ohst_components( jp_sal, 'eiv', z3d ) 
    339          ENDIF 
    340          ! 
    341 !!gm add CMIP6 diag here instead of been done in trdken.F90 
    342          ! 
    343          IF( iom_use('eketrd_eiv') ) THEN     ! tendency of EKE from parameterized eddy advection 
    344             ! CMIP6 diagnostic tknebto = tendency of EKE from parameterized mesoscale eddy advection 
    345             ! = vertical_integral( k (N S)^2 ) rho dz   where rho = rau0 and S = isoneutral slope. 
    346             z2d(:,:) = 0._wp 
    347             DO jk = 1, jpkm1 
    348                DO ji = 1, jpi 
    349                   DO jj = 1,jpj 
    350                      z2d(ji,jj) = z2d(ji,jj) + rau0 * fsaeiw(ji,jj,jk)                 & 
    351                         &                    * rn2b(ji,jj,jk) * fse3w(ji,jj,jk)        & 
    352                         &                    * (  wslpi(ji,jj,jk) * wslpi(ji,jj,jk)    & 
    353                         &                       + wslpj(ji,jj,jk) * wslpj(ji,jj,jk)  ) * wmask(ji,jj,jk) 
    354                   END DO 
    355                END DO 
    356             END DO 
    357             CALL iom_put( "eketrd_eiv", z2d ) 
    358          ENDIF 
    359          ! 
    360 !!gm  removed from trdken.F90    IF( ln_KE_trd )   CALL trd_dyn(u_eiv, v_eiv, jpdyn_eivke, kt ) 
    361          ! 
    362       ENDIF 
     315 
     316    END IF 
     317! 
     318    IF( ln_diaptr .AND. cdtype == 'TRA' ) THEN 
     319       z3d(:,:,:) = 0._wp 
     320       DO jk = 1, jpkm1 
     321          DO jj = 2, jpjm1 
     322             DO ji = fs_2, fs_jpim1   ! vector opt. 
     323                z3d(ji,jj,jk) = v_eiv(ji,jj,jk) * 0.5 * (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) & 
     324                &             * e1v(ji,jj) * fse3v(ji,jj,jk) 
     325             END DO 
     326          END DO 
     327       END DO 
     328       CALL dia_ptr_ohst_components( jp_tem, 'eiv', z3d ) 
     329       z3d(:,:,:) = 0._wp 
     330       DO jk = 1, jpkm1 
     331          DO jj = 2, jpjm1 
     332             DO ji = fs_2, fs_jpim1   ! vector opt. 
     333                z3d(ji,jj,jk) = v_eiv(ji,jj,jk) * 0.5 * (tsn(ji,jj,jk,jp_sal)+tsn(ji,jj+1,jk,jp_sal)) & 
     334                &             * e1v(ji,jj) * fse3v(ji,jj,jk) 
     335             END DO 
     336          END DO 
     337       END DO 
     338       CALL dia_ptr_ohst_components( jp_sal, 'eiv', z3d ) 
     339    ENDIF 
     340 
     341    IF( ln_KE_trd ) CALL trd_dyn(u_eiv, v_eiv, jpdyn_eivke, kt ) 
    363342# endif   
    364343 
Note: See TracChangeset for help on using the changeset viewer.