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 13024 for utils/tools_dev_r12970_AGRIF_CMEMS/DOMAINcfg/src/agrif_update.F90 – NEMO

Ignore:
Timestamp:
2020-06-03T16:26:23+02:00 (4 years ago)
Author:
rblod
Message:

First version of new nesting tools merged with domaincfg, see ticket #2129

File:
1 edited

Legend:

Unmodified
Added
Removed
  • utils/tools_dev_r12970_AGRIF_CMEMS/DOMAINcfg/src/agrif_update.F90

    r12414 r13024  
    66 
    77if (agrif_root()) return 
     8 
    89call agrif_update_variable(bottom_level_id,locupdate=(/npt_copy,0/),procname = update_bottom_level) 
     10 
    911 
    1012      Agrif_UseSpecialValueInUpdate = .TRUE. 
     
    1416      Agrif_UseSpecialValueInUpdate = .FALSE. 
    1517 
    16 call agrif_update_variable(e3u_id,procname = update_e3u) 
    17 call agrif_update_variable(e3v_id,procname = update_e3v) 
     18!call agrif_update_variable(e3u_id,procname = update_e3u) 
     19!call agrif_update_variable(e3v_id,procname = update_e3v) 
    1820       
    1921end subroutine agrif_update_all 
     
    4648         WHERE (mbkt(i1:i2,j1:j2)==0) 
    4749           ssmask(i1:i2,j1:j2) = 0. 
     50         ELSEWHERE 
     51           ssmask(i1:i2,j1:j2) = 1. 
    4852         END WHERE 
    4953            
     
    6973               DO jj=j1,j2 
    7074                  DO ji=i1,i2 
    71                    if (mbkt(ji,jj) < jk) then 
     75                   if (mbkt(ji,jj) <= jk) then 
    7276                     tabres(ji,jj,jk) = e3t_0(ji,jj,jk) 
    7377                   else 
     
    8185               DO jj=j1,j2 
    8286                  DO ji=i1,i2 
    83                    if (mbkt(ji,jj) < jk) then 
     87                   if (mbkt(ji,jj) <= jk) then 
     88                     e3t_0(ji,jj,jk) = MAX(tabres(ji,jj,jk),MIN(e3zps_min,e3t_1d(jk)*e3zps_rat)) 
     89                   else 
    8490                     e3t_0(ji,jj,jk) = e3t_1d(jk) 
    85                    else 
    86                      e3t_0(ji,jj,jk) = MAX(tabres(ji,jj,jk),MIN(e3zps_min,e3t_1d(jk)*e3zps_rat)) 
    8791                   endif 
    8892                  END DO 
     
    113117          do jj=j1,j2 
    114118          do ji=i1,i2 
    115            if (min(mbkt(ji,jj),mbkt(ji+1,jj))<jk) then 
     119           if (min(mbkt(ji,jj),mbkt(ji+1,jj))<=jk) then 
    116120            tabres(ji,jj,jk) = zrhoy * e2u(ji,jj) * MIN(e3zps_min,e3t_1d(jk)*e3zps_rat) 
    117121           else 
     
    125129            DO jj=j1,j2 
    126130               DO ji=i1,i2 
    127                  if (min(mbkt(ji,jj),mbkt(ji+1,jj))<jk) then 
    128                    e3u_0(ji,jj,jk)=e3t_1d(jk) 
     131                 if (min(mbkt(ji,jj),mbkt(ji+1,jj))<=jk) then 
     132                   e3u_0(ji,jj,jk)=MAX(tabres(ji,jj,jk) / e2u(ji,jj),MIN(e3zps_min,e3t_1d(jk)*e3zps_rat)) 
    129133                 else 
    130                    e3u_0(ji,jj,jk) = MAX(tabres(ji,jj,jk) / e2u(ji,jj),MIN(e3zps_min,e3t_1d(jk)*e3zps_rat)) 
     134                   e3u_0(ji,jj,jk) = e3t_1d(jk) 
    131135                 endif 
    132136               END DO 
     
    157161          do jj=j1,j2 
    158162          do ji=i1,i2 
    159            if (min(mbkt(ji,jj),mbkt(ji,jj+1))<jk) then 
     163           if (min(mbkt(ji,jj),mbkt(ji,jj+1))<=jk) then 
    160164            tabres(ji,jj,jk) = zrhox * e1v(ji,jj) * MIN(e3zps_min,e3t_1d(jk)*e3zps_rat) 
    161165           else 
     
    169173            DO jj=j1,j2 
    170174               DO ji=i1,i2 
    171                  if (min(mbkt(ji,jj),mbkt(ji,jj+1))<jk) then 
    172                    e3v_0(ji,jj,jk)=e3t_1d(jk) 
     175                 if (min(mbkt(ji,jj),mbkt(ji,jj+1))<=jk) then 
     176                   e3v_0(ji,jj,jk)=MAX(tabres(ji,jj,jk) / e1v(ji,jj),MIN(e3zps_min,e3t_1d(jk)*e3zps_rat)) 
    173177                 else 
    174                    e3v_0(ji,jj,jk) = MAX(tabres(ji,jj,jk) / e1v(ji,jj),MIN(e3zps_min,e3t_1d(jk)*e3zps_rat)) 
     178                   e3v_0(ji,jj,jk) = e3t_1d(jk) 
    175179                 endif 
    176180               END DO 
Note: See TracChangeset for help on using the changeset viewer.