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 8093 for branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/CRS/crsfld.F90 – NEMO

Ignore:
Timestamp:
2017-05-30T10:13:14+02:00 (7 years ago)
Author:
gm
Message:

#1880 (HPC-09) - step-6: prepare some forthcoming evolutions (ZDF modules mainly)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/CRS/crsfld.F90

    r7953 r8093  
    5858      INTEGER  ::   ji, jj, jk        ! dummy loop indices 
    5959      REAL(wp) ::   z2dcrsu, z2dcrsv  ! local scalars 
     60      REAL(wp) ::   zztmp             !   -      - 
    6061      ! 
    6162      REAL(wp), POINTER, DIMENSION(:,:,:) ::   ze3t, ze3u, ze3v, ze3w   ! 3D workspace for e3 
    62       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zt, zt_crs 
     63      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zt, zt_crs, z3d 
    6364      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zs, zs_crs   
    6465      !!---------------------------------------------------------------------- 
     
    6970      CALL wrk_alloc( jpi,jpj,jpk,   ze3t, ze3w ) 
    7071      CALL wrk_alloc( jpi,jpj,jpk,   ze3u, ze3v ) 
    71       CALL wrk_alloc( jpi,jpj,jpk,   zt  , zs  ) 
     72      CALL wrk_alloc( jpi,jpj,jpk,   zt  , zs  ,z3d ) 
    7273      ! 
    7374      CALL wrk_alloc( jpi_crs,jpj_crs,jpk,   zt_crs, zs_crs ) 
     
    8687         avs_crs  (:,:,:  ) = 0._wp    ! avt 
    8788         hdivn_crs(:,:,:  ) = 0._wp    ! hdiv 
    88          rke_crs  (:,:,:  ) = 0._wp    ! rke 
    8989         sshn_crs (:,:    ) = 0._wp    ! ssh 
    9090         utau_crs (:,:    ) = 0._wp    ! taux 
     
    158158      CALL iom_put( "voces" , zs_crs )   ! vS 
    159159 
    160       
    161       !  Kinetic energy 
    162       CALL crs_dom_ope( rke, 'VOL', 'T', tmask, rke_crs, p_e12=e1e2t, p_e3=ze3t, psgn=1.0 ) 
    163       CALL iom_put( "eken", rke_crs ) 
    164  
     160      IF( iom_use( "eken") ) THEN     !      kinetic energy 
     161         z3d(:,:,jk) = 0._wp  
     162         DO jk = 1, jpkm1 
     163            DO jj = 2, jpjm1 
     164               DO ji = fs_2, fs_jpim1   ! vector opt. 
     165                  zztmp  = r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk) 
     166                  z3d(ji,jj,jk) = 0.25_wp * zztmp * (                                    & 
     167                     &            un(ji-1,jj,jk)**2 * e2u(ji-1,jj) * e3u_n(ji-1,jj,jk)   & 
     168                     &          + un(ji  ,jj,jk)**2 * e2u(ji  ,jj) * e3u_n(ji  ,jj,jk)   & 
     169                     &          + vn(ji,jj-1,jk)**2 * e1v(ji,jj-1) * e3v_n(ji,jj-1,jk)   & 
     170                     &          + vn(ji,jj  ,jk)**2 * e1v(ji,jj  ) * e3v_n(ji,jj  ,jk)   ) 
     171               END DO 
     172            END DO 
     173         END DO 
     174         CALL lbc_lnk( z3d, 'T', 1. ) 
     175         ! 
     176         CALL crs_dom_ope( z3d, 'VOL', 'T', tmask, zt_crs, p_e12=e1e2t, p_e3=ze3t, psgn=1.0 ) 
     177         CALL iom_put( "eken", zt_crs ) 
     178      ENDIF 
    165179      !  Horizontal divergence ( following OPA_SRC/DYN/divhor.F90 )  
    166180      DO jk = 1, jpkm1 
     
    175189                   hdivn_crs(ji,jj,jk) = ( z2dcrsu + z2dcrsv ) / crs_volt_wgt(ji,jj,jk)  
    176190               ENDIF 
    177             ENDDO 
    178          ENDDO 
    179       ENDDO 
     191            END DO 
     192         END DO 
     193      END DO 
    180194      CALL crs_lbc_lnk( hdivn_crs, 'T', 1.0 ) 
    181195      ! 
Note: See TracChangeset for help on using the changeset viewer.