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 4406 for branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90 – NEMO

Ignore:
Timestamp:
2014-02-04T13:12:04+01:00 (10 years ago)
Author:
trackstand2
Message:

Move from jpk to jpkf - trim sub-domains in z

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90

    r3837 r4406  
    6363      USE oce     , ONLY:  zwd  => ta       , zws   => sa   ! (ta,sa) used as 3D workspace 
    6464      USE wrk_nemo, ONLY:   zwi => wrk_3d_3                 ! 3D workspace 
    65       USE arpdebugging, ONLY: dump_array 
    6665      !! DCSE_NEMO: need additional directives for renamed module variables 
    6766!FTRANS zwd :I :I :z 
     
    9089      z1_p2dt = 1._wp / p2dt      ! inverse of the timestep 
    9190 
    92       !CALL dump_array(kt, 'utau_pre_zdf',utau(:,:),withHalos=.TRUE.) 
    93       !CALL dump_array(kt, 'utaub_pre_zdf',utau_b(:,:),withHalos=.TRUE.) 
    9491 
    9592      ! 1. Vertical diffusion on u 
     
    105102      DO jj = 2, jpjm1  
    106103         DO ji = 2, jpim1 
    107             DO jk = 1, jpkm1 
     104            DO jk = 1, jpkfm1 
    108105               zcoef = - p2dt / fse3u(ji,jj,jk) 
    109106               zzwi          = zcoef * avmu (ji,jj,jk  ) / fse3uw(ji,jj,jk  ) 
     
    119116      END DO 
    120117#else 
    121       DO jk = 1, jpkm1        ! Matrix 
     118      DO jk = 1, jpkfm1        ! Matrix 
    122119         DO jj = 2, jpjm1  
    123120            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    160157            ua(ji,jj,1) = ub(ji,jj,1) + p2dt * (  ua(ji,jj,1) + 0.5_wp * ( utau_b(ji,jj) + utau(ji,jj) )   & 
    161158               &                                                       / ( fse3u(ji,jj,1) * rau0       )  ) 
    162             DO jk = 2, jpkm1 
     159            DO jk = 2, jpkfm1 
    163160               zzwibd = zwi(ji,jj,jk) / zwd(ji,jj,jk-1) 
    164161               !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  == 
     
    169166            END DO 
    170167            !==  third recurrence : SOLk = ( Lk - Uk * Ek+1 ) / Dk  == 
    171             ua(ji,jj,jpkm1) = ua(ji,jj,jpkm1) / zwd(ji,jj,jpkm1) 
    172             DO jk = jpk-2, 1, -1 
     168            ua(ji,jj,jpkfm1) = ua(ji,jj,jpkfm1) / zwd(ji,jj,jpkfm1) 
     169            DO jk = jpkf-2, 1, -1 
    173170               ua(ji,jj,jk) = ( ua(ji,jj,jk) - zws(ji,jj,jk) * ua(ji,jj,jk+1) ) / zwd(ji,jj,jk) 
    174171            END DO 
    175172            ! Normalization to obtain the general momentum trend ua 
    176             DO jk = 1, jpkm1 
     173            DO jk = 1, jpkfm1 
    177174               ua(ji,jj,jk) = ( ua(ji,jj,jk) - ub(ji,jj,jk) ) * z1_p2dt 
    178175            END DO 
     
    180177      END DO 
    181178#else 
    182       DO jk = 2, jpkm1        !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  == 
     179      DO jk = 2, jpkfm1        !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  == 
    183180         DO jj = 2, jpjm1    
    184181            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    194191         END DO 
    195192      END DO 
    196       DO jk = 2, jpkm1 
     193      DO jk = 2, jpkfm1 
    197194         DO jj = 2, jpjm1    
    198195            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    205202      DO jj = 2, jpjm1        !==  third recurrence : SOLk = ( Lk - Uk * Ek+1 ) / Dk  == 
    206203         DO ji = fs_2, fs_jpim1   ! vector opt. 
    207             ua(ji,jj,jpkm1) = ua(ji,jj,jpkm1) / zwd(ji,jj,jpkm1) 
    208          END DO 
    209       END DO 
    210       DO jk = jpk-2, 1, -1 
     204            ua(ji,jj,jpkfm1) = ua(ji,jj,jpkfm1) / zwd(ji,jj,jpkfm1) 
     205         END DO 
     206      END DO 
     207      DO jk = jpkf-2, 1, -1 
    211208         DO jj = 2, jpjm1    
    212209            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    216213      END DO 
    217214      ! Normalization to obtain the general momentum trend ua 
    218       DO jk = 1, jpkm1 
     215      DO jk = 1, jpkfm1 
    219216         DO jj = 2, jpjm1    
    220217            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    237234      DO jj = 2, jpjm1    
    238235         DO ji = 2, jpim1 
    239             DO jk = 1, jpkm1        ! Matrix 
     236            DO jk = 1, jpkfm1        ! Matrix 
    240237               zcoef = -p2dt / fse3v(ji,jj,jk) 
    241238               zzwi          = zcoef * avmv (ji,jj,jk  ) / fse3vw(ji,jj,jk  ) 
     
    251248      END DO 
    252249#else 
    253       DO jk = 1, jpkm1        ! Matrix 
     250      DO jk = 1, jpkfm1        ! Matrix 
    254251         DO jj = 2, jpjm1    
    255252            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    292289            va(ji,jj,1) = vb(ji,jj,1) + p2dt * (  va(ji,jj,1) + 0.5_wp * ( vtau_b(ji,jj) + vtau(ji,jj) )   & 
    293290               &                                                       / ( fse3v(ji,jj,1) * rau0       )  ) 
    294             DO jk = 2, jpkm1 
     291            DO jk = 2, jpkfm1 
    295292               zzwibd = zwi(ji,jj,jk) / zwd(ji,jj,jk-1) 
    296293               !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  == 
     
    301298            END DO 
    302299            !==  third recurrence : SOLk = ( Lk - Uk * SOLk+1 ) / Dk  == 
    303             va(ji,jj,jpkm1) = va(ji,jj,jpkm1) / zwd(ji,jj,jpkm1) 
    304             DO jk = jpk-2, 1, -1 
     300            va(ji,jj,jpkfm1) = va(ji,jj,jpkfm1) / zwd(ji,jj,jpkfm1) 
     301            DO jk = jpkf-2, 1, -1 
    305302               va(ji,jj,jk) = ( va(ji,jj,jk) - zws(ji,jj,jk) * va(ji,jj,jk+1) ) / zwd(ji,jj,jk) 
    306303            END DO 
    307304            ! Normalization to obtain the general momentum trend va 
    308             DO jk = 1, jpkm1 
     305            DO jk = 1, jpkfm1 
    309306               va(ji,jj,jk) = ( va(ji,jj,jk) - vb(ji,jj,jk) ) * z1_p2dt 
    310307            END DO 
     
    312309      END DO 
    313310#else 
    314       DO jk = 2, jpkm1        !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  == 
     311      DO jk = 2, jpkfm1        !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  == 
    315312         DO jj = 2, jpjm1    
    316313            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    326323         END DO 
    327324      END DO 
    328       DO jk = 2, jpkm1 
     325      DO jk = 2, jpkfm1 
    329326         DO jj = 2, jpjm1 
    330327            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    337334      DO jj = 2, jpjm1        !==  third recurrence : SOLk = ( Lk - Uk * SOLk+1 ) / Dk  == 
    338335         DO ji = fs_2, fs_jpim1   ! vector opt. 
    339             va(ji,jj,jpkm1) = va(ji,jj,jpkm1) / zwd(ji,jj,jpkm1) 
    340          END DO 
    341       END DO 
    342       DO jk = jpk-2, 1, -1 
     336            va(ji,jj,jpkfm1) = va(ji,jj,jpkfm1) / zwd(ji,jj,jpkfm1) 
     337         END DO 
     338      END DO 
     339      DO jk = jpkf-2, 1, -1 
    343340         DO jj = 2, jpjm1    
    344341            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    349346 
    350347      ! Normalization to obtain the general momentum trend va 
    351       DO jk = 1, jpkm1 
     348      DO jk = 1, jpkfm1 
    352349         DO jj = 2, jpjm1    
    353350            DO ji = fs_2, fs_jpim1   ! vector opt. 
Note: See TracChangeset for help on using the changeset viewer.