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 503 for trunk/NEMO/OPA_SRC/DYN/dynzdf_imp_jki.F90 – NEMO

Ignore:
Timestamp:
2006-09-27T10:52:29+02:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_064 : CT : general trends update including the addition of mean windows analysis possibility in the mixed layer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DYN/dynzdf_imp_jki.F90

    r456 r503  
    44   !! Ocean dynamics:  vertical component(s) of the momentum mixing trend 
    55   !!============================================================================== 
     6   !! History : 8.5  !  02-08  (G. Madec)  auto-tasking option 
     7   !!---------------------------------------------------------------------- 
    68 
    79   !!---------------------------------------------------------------------- 
     
    1719   USE in_out_manager  ! I/O manager 
    1820   USE taumod          ! surface ocean stress 
    19    USE prtctl          ! Print control 
    2021 
    2122   IMPLICIT NONE 
     
    3031   !!---------------------------------------------------------------------- 
    3132   !!   OPA 9.0 , LOCEAN-IPSL (2005)  
     33   !! $Header$  
     34   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    3235   !!---------------------------------------------------------------------- 
    3336 
    3437CONTAINS 
    3538 
    36    SUBROUTINE dyn_zdf_imp_jki( kt ) 
     39   SUBROUTINE dyn_zdf_imp_jki( kt, p2dt ) 
    3740      !!---------------------------------------------------------------------- 
    3841      !!                  ***  ROUTINE dyn_zdf_imp_jki  *** 
     
    5255      !! ** Action : - Update (ua,va) arrays with the after vertical diffusive 
    5356      !!               mixing trend. 
    54       !! 
    55       !! History : 
    56       !!   8.5  !  02-08  (G. Madec)  auto-tasking option 
    57       !!   9.0  !  04-08  (C. Talandier)  New trends organization 
    5857      !!--------------------------------------------------------------------- 
    59       !! * Modules used      
    60       USE oce, ONLY :    ztdua => ta,  & ! use ta as 3D workspace    
    61                          ztdva => sa     ! use sa as 3D workspace    
    62  
    6358      !! * Arguments 
    64       INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
     59      INTEGER , INTENT( in ) ::   kt                          ! ocean time-step index 
     60      REAL(wp), INTENT( in ) ::   p2dt                        ! ocean time-step index 
    6561 
    6662      !! * Local declarations 
    67       INTEGER ::   ji, jj, jk            ! dummy loop indices 
    68       INTEGER ::   ikst, ikenm2, ikstp1  ! temporary integers 
    69       REAL(wp) ::  zrau0r, z2dt,       & !temporary scalars 
    70          &         z2dtf, zcoef, zzws 
    71       REAL(wp), DIMENSION(jpi,jpk) ::  & 
    72          zwx, zwy, zwz,                & ! workspace 
    73          zwd, zws, zwi, zwt 
     63      INTEGER ::   ji, jj, jk                                 ! dummy loop indices 
     64      INTEGER ::   ikst, ikenm2, ikstp1                       ! temporary integers 
     65      REAL(wp) ::  zrau0r, z2dtf, zcoef, zzws                 ! temporary scalars 
     66      REAL(wp), DIMENSION(jpi,jpk) ::  zwx, zwy, zwz,       & ! workspace 
     67         &                             zwd, zws, zwi, zwt 
    7468      !!---------------------------------------------------------------------- 
    7569 
     
    8478      ! -------------------------------- 
    8579      zrau0r = 1. / rau0      ! inverse of the reference density 
    86       z2dt   = 2. * rdt       ! Leap-frog environnement 
    87  
    88       ! Euler time stepping when starting from rest 
    89       IF( neuler == 0 .AND. kt == nit000 )   z2dt = rdt 
    9080 
    9181      !                                                ! =============== 
     
    10191         DO jk = 1, jpkm1 
    10292            DO ji = 2, jpim1 
    103                zcoef = - z2dt / fse3u(ji,jj,jk) 
     93               zcoef = - p2dt / fse3u(ji,jj,jk) 
    10494               zwi(ji,jk) = zcoef * avmu(ji,jj,jk  ) / fse3uw(ji,jj,jk  ) 
    10595               zzws       = zcoef * avmu(ji,jj,jk+1) / fse3uw(ji,jj,jk+1) 
    10696               zws(ji,jk) = zzws * umask(ji,jj,jk+1) 
    10797               zwd(ji,jk) = 1. - zwi(ji,jk) - zzws 
    108                zwy(ji,jk) = ub(ji,jj,jk) + z2dt * ua(ji,jj,jk) 
     98               zwy(ji,jk) = ub(ji,jj,jk) + p2dt * ua(ji,jj,jk) 
    10999            END DO 
    110100         END DO 
     
    112102         ! Surface boudary conditions 
    113103         DO ji = 2, jpim1 
    114             z2dtf = z2dt / ( fse3u(ji,jj,1)*rau0 ) 
     104            z2dtf = p2dt / ( fse3u(ji,jj,1)*rau0 ) 
    115105            zwi(ji,1) = 0. 
    116106            zwd(ji,1) = 1. - zws(ji,1) 
     
    175165         DO jk = 1, jpkm1 
    176166            DO ji = 2, jpim1 
    177                ua(ji,jj,jk) = ( zwx(ji,jk) - ub(ji,jj,jk) ) / z2dt 
     167               ua(ji,jj,jk) = ( zwx(ji,jk) - ub(ji,jj,jk) ) / p2dt 
    178168            END DO 
    179169         END DO 
     
    188178         DO jk = 1, jpkm1 
    189179            DO ji = 2, jpim1 
    190                zcoef = -z2dt/fse3v(ji,jj,jk) 
     180               zcoef = -p2dt/fse3v(ji,jj,jk) 
    191181               zwi(ji,jk) = zcoef * avmv(ji,jj,jk  ) / fse3vw(ji,jj,jk  ) 
    192182               zzws       = zcoef * avmv(ji,jj,jk+1) / fse3vw(ji,jj,jk+1) 
    193183               zws(ji,jk) =  zzws * vmask(ji,jj,jk+1) 
    194184               zwd(ji,jk) = 1. - zwi(ji,jk) - zzws 
    195                zwy(ji,jk) = vb(ji,jj,jk) + z2dt * va(ji,jj,jk) 
     185               zwy(ji,jk) = vb(ji,jj,jk) + p2dt * va(ji,jj,jk) 
    196186            END DO 
    197187         END DO 
     
    199189         ! Surface boudary conditions 
    200190         DO ji = 2, jpim1 
    201             z2dtf = z2dt / ( fse3v(ji,jj,1)*rau0 ) 
     191            z2dtf = p2dt / ( fse3v(ji,jj,1)*rau0 ) 
    202192            zwi(ji,1) = 0.e0 
    203193            zwd(ji,1) = 1. - zws(ji,1) 
     
    262252         DO jk = 1, jpkm1 
    263253            DO ji = 2, jpim1 
    264                va(ji,jj,jk) = ( zwx(ji,jk) - vb(ji,jj,jk) ) / z2dt 
     254               va(ji,jj,jk) = ( zwx(ji,jk) - vb(ji,jj,jk) ) / p2dt 
    265255            END DO 
    266256         END DO 
Note: See TracChangeset for help on using the changeset viewer.