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.
Changeset 10115 for NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90 – NEMO

Ignore:
Timestamp:
2018-09-12T15:59:13+02:00 (6 years ago)
Author:
cbricaud
Message:

phase 3.6 coarsening branch with nemo_3.6_rev9192

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90

    r7806 r10115  
    165165         CALL iom_put( "voce_eiv", v_eiv )    ! j-eiv current 
    166166         CALL iom_put( "woce_eiv", w_eiv )    ! vert. eiv current 
     167         ! 
    167168         IF( iom_use('weiv_masstr') ) THEN   ! vertical mass transport & its square value 
    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 
     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         ! 
    174176         IF( iom_use("ueiv_masstr") .OR. iom_use("ueiv_heattr") .OR. iom_use('ueiv_heattr3d')        & 
    175                                     .OR. iom_use("ueiv_salttr") .OR. iom_use('ueiv_salttr3d') ) THEN 
     177            &                       .OR. iom_use("ueiv_salttr") .OR. iom_use('ueiv_salttr3d') ) THEN 
    176178            z3d(:,:,jpk) = 0.e0 
    177179            z2d(:,:) = 0.e0 
     
    182184            CALL iom_put( "ueiv_masstr", z3d )                  ! mass transport in i-direction 
    183185         ENDIF 
    184  
     186         ! 
    185187         IF( iom_use('ueiv_heattr') .OR. iom_use('ueiv_heattr3d') ) THEN 
    186188            zztmp = 0.5 * rcp  
     
    204206            ENDIF 
    205207         ENDIF 
    206  
     208         ! 
    207209         IF( iom_use('ueiv_salttr') .OR. iom_use('ueiv_salttr3d') ) THEN 
    208210            zztmp = 0.5 * 0.001 
     
    226228            ENDIF 
    227229         ENDIF 
    228  
     230         ! 
    229231         IF( iom_use("veiv_masstr") .OR. iom_use("veiv_heattr") .OR. iom_use('veiv_heattr3d')       & 
    230232                                    .OR. iom_use("veiv_salttr") .OR. iom_use('veiv_salttr3d') ) THEN 
     
    235237            CALL iom_put( "veiv_masstr", z3d )                  ! mass transport in j-direction 
    236238         ENDIF 
    237              
     239         !    
    238240         IF( iom_use('veiv_heattr') .OR. iom_use('veiv_heattr3d') ) THEN 
    239241            zztmp = 0.5 * rcp  
     
    257259            ENDIF 
    258260         ENDIF 
    259  
     261         ! 
    260262         IF( iom_use('veiv_salttr') .OR. iom_use('veiv_salttr3d') ) THEN 
    261263            zztmp = 0.5 * 0.001 
     
    279281            ENDIF 
    280282         ENDIF 
    281  
     283         ! 
    282284         IF( iom_use('weiv_masstr') .OR. iom_use('weiv_heattr3d') .OR. iom_use('weiv_salttr3d')) THEN   ! vertical mass transport & its square value 
    283285           z2d(:,:) = rau0 * e12t(:,:) 
     
    287289           CALL iom_put( "weiv_masstr" , z3d )                  ! mass transport in k-direction 
    288290         ENDIF 
    289  
     291         ! 
    290292         IF( iom_use('weiv_heattr3d') ) THEN 
    291293            zztmp = 0.5 * rcp  
     
    300302            CALL iom_put( "weiv_heattr3d", zztmp * z3d_T )                 ! 3D heat transport in k-direction 
    301303         ENDIF 
    302  
     304         ! 
    303305         IF( iom_use('weiv_salttr3d') ) THEN 
    304306            zztmp = 0.5 * 0.001  
     
    313315            CALL iom_put( "weiv_salttr3d", zztmp * z3d_T )                 ! 3D salt transport in k-direction 
    314316         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 ) 
     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 
    342363# endif   
    343364 
Note: See TracChangeset for help on using the changeset viewer.