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 3846 for branches/2012 – NEMO

Changeset 3846 for branches/2012


Ignore:
Timestamp:
2013-03-22T13:38:36+01:00 (11 years ago)
Author:
agn
Message:

Corrected bug in calculation of zt{i,j}_mlb in ldfslp.F90 when ML reaches bottom

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90

    r3558 r3846  
    495495               DO ji = 1, fs_jpim1 
    496496                  ip = jl   ;   jp = jl 
    497                   jk = MIN( nmln(ji+ip,jj) , mbkt(ji+ip,jj) ) + 1         ! ML level+1 (MIN in case ML depth is the ocean depth) 
    498                   ! Add s-coordinate slope at t-points (do this by *subtracting* gradient of depth) 
    499                   zti_g_raw = (  zdxrho(ji+ip,jj,jk-kp,1-ip) / zdzrho(ji+ip,jj,jk-kp,kp)      & 
    500                      &      - ( fsdept(ji+1,jj,jk-kp) - fsdept(ji,jj,jk-kp) ) / e1u(ji,jj)  ) * umask(ji,jj,jk) 
    501                   jk = MIN( nmln(ji,jj+jp) , mbkt(ji,jj+jp) ) + 1 
    502                   ztj_g_raw = (  zdyrho(ji,jj+jp,jk-kp,1-jp) / zdzrho(ji,jj+jp,jk-kp,kp)      & 
    503                      &      - ( fsdept(ji,jj+1,jk-kp) - fsdept(ji,jj,jk-kp) ) / e2v(ji,jj)  ) * vmask(ji,jj,jk) 
    504                   zti_mlb(ji+ip,jj   ,1-ip,kp) = SIGN( MIN( rn_slpmax, ABS( zti_g_raw ) ), zti_g_raw ) 
    505                   ztj_mlb(ji   ,jj+jp,1-jp,kp) = SIGN( MIN( rn_slpmax, ABS( ztj_g_raw ) ), ztj_g_raw ) 
     497                  ! 
     498                  jk = nmln(ji+ip,jj) + 1 
     499                  IF( jk .GT. mbkt(ji+ip,jj) ) THEN  !ML reaches bottom 
     500                    zti_mlb(ji+ip,jj   ,1-ip,kp) = 0.0_wp 
     501                  ELSE 
     502                    ! Add s-coordinate slope at t-points (do this by *subtracting* gradient of depth) 
     503                    zti_g_raw = (  zdxrho(ji+ip,jj,jk-kp,1-ip) / zdzrho(ji+ip,jj,jk-kp,kp)      & 
     504                       &      - ( fsdept(ji+1,jj,jk-kp) - fsdept(ji,jj,jk-kp) ) / e1u(ji,jj)  ) * umask(ji,jj,jk) 
     505                    zti_mlb(ji+ip,jj   ,1-ip,kp) = SIGN( MIN( rn_slpmax, ABS( zti_g_raw ) ), zti_g_raw ) 
     506                  ENDIF 
     507                  ! 
     508                  jk = nmln(ji,jj+jp) + 1 
     509                  IF( jk .GT. mbkt(ji,jj+jp) ) THEN  !ML reaches bottom 
     510                    ztj_mlb(ji   ,jj+jp,1-jp,kp) = 0.0_wp 
     511                  ELSE 
     512                    ztj_g_raw = (  zdyrho(ji,jj+jp,jk-kp,1-jp) / zdzrho(ji,jj+jp,jk-kp,kp)      & 
     513                       &      - ( fsdept(ji,jj+1,jk-kp) - fsdept(ji,jj,jk-kp) ) / e2v(ji,jj)  ) * vmask(ji,jj,jk) 
     514                    ztj_mlb(ji   ,jj+jp,1-jp,kp) = SIGN( MIN( rn_slpmax, ABS( ztj_g_raw ) ), ztj_g_raw ) 
     515                  ENDIF 
    506516               END DO 
    507517            END DO 
Note: See TracChangeset for help on using the changeset viewer.