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 5920 for branches/NERC/dev_r5589_is_oce_cpl/NEMOGCM/NEMO/OPA_SRC/DOM/iscplrst.F90 – NEMO

Ignore:
Timestamp:
2015-11-25T17:58:51+01:00 (8 years ago)
Author:
mathiot
Message:

ice sheet coupling: add treshold to define grounded area, remove useless va
riable, change some variable name + add some namelist parameter

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/NERC/dev_r5589_is_oce_cpl/NEMOGCM/NEMO/OPA_SRC/DOM/iscplrst.F90

    r5835 r5920  
    3434   !! * Substitutions   
    3535#  include "domzgr_substitute.h90"   
     36#  include "vectopt_loop_substitute.h90" 
    3637   !!---------------------------------------------------------------------- 
    3738   !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
     
    187188      DO iz = 1,10    ! need to be tuned (configuration dependent) (OK for ISOMIP+) 
    188189         zdsmask(:,:) = ssmask(:,:)-zsmask0(:,:) 
    189          DO ji = 2,jpi-1 
    190             DO jj = 2,jpj-1 
     190         DO jj = 2,jpj-1 
     191            DO ji = fs_2, fs_jpim1   ! vector opt. 
    191192               jip1=ji+1; jim1=ji-1; 
    192193               jjp1=jj+1; jjm1=jj-1; 
     
    280281      vb(:,:,:)=vn(:,:,:) 
    281282      DO jk = 1,jpk 
    282          DO ji = 1,jpi 
    283             DO jj = 1,jpj 
     283         DO jj = 1,jpj 
     284            DO ji = 1,jpi 
    284285               un(ji,jj,jk) = ub(ji,jj,jk)*pe3u_b(ji,jj,jk)*pumask_b(ji,jj,jk)/fse3u_n(ji,jj,jk)*umask(ji,jj,jk); 
    285286               vn(ji,jj,jk) = vb(ji,jj,jk)*pe3v_b(ji,jj,jk)*pvmask_b(ji,jj,jk)/fse3v_n(ji,jj,jk)*vmask(ji,jj,jk); 
     
    310311      zucorr = 0._wp 
    311312      zvcorr = 0._wp 
    312       DO ji = 1,jpi 
    313          DO jj = 1,jpj 
     313      DO jj = 1,jpj 
     314         DO ji = 1,jpi 
    314315            IF (zbun(ji,jj) .NE. zbub(ji,jj) .AND. hu1(ji,jj) .NE. 0._wp ) THEN 
    315316               zucorr(ji,jj) = (zbun(ji,jj) - zbub(ji,jj))/hu1(ji,jj) 
     
    334335      ztmask1(:,:,:) = ptmask_b(:,:,:) 
    335336      ztmask0(:,:,:) = ptmask_b(:,:,:) 
    336       DO iz = 1,10 ! resolution dependent (OK for ISOMIP+ case) 
     337      DO iz = 1,nn_drown ! resolution dependent (OK for ISOMIP+ case) 
    337338          DO jk = 1,jpk-1 
    338339              zdmask=tmask(:,:,jk)-ztmask0(:,:,jk); 
    339               DO ji = 2,jpi-1 
    340                   DO jj = 2,jpj-1 
     340              DO jj = 2,jpj-1 
     341                 DO ji = fs_2,fs_jpim1 
    341342                      jip1=ji+1; jim1=ji-1; 
    342343                      jjp1=jj+1; jjm1=jj-1; 
    343344                      summsk= (ztmask0(jip1,jj  ,jk)+ztmask0(jim1,jj  ,jk)+ztmask0(ji  ,jjp1,jk)+ztmask0(ji  ,jjm1,jk)) 
     345                      IF (zdmask(ji,jj)==1._wp .AND. summsk .NE. 0._wp) THEN 
    344346                      !! horizontal basic extrapolation 
    345                       IF (zdmask(ji,jj)==1._wp .AND. summsk .NE. 0._wp) THEN 
    346347                         tsn(ji,jj,jk,1)=( zts0(jip1,jj  ,jk,1)*ztmask0(jip1,jj  ,jk) & 
    347348                         &                +zts0(jim1,jj  ,jk,1)*ztmask0(jim1,jj  ,jk) & 
     
    353354                         &                +zts0(ji  ,jjm1,jk,2)*ztmask0(ji  ,jjm1,jk) ) / summsk 
    354355                         ztmask1(ji,jj,jk)=1 
    355                       END IF 
    356                       !! vertical extrapolation if horizontal extra failed 
    357                       IF (zdmask(ji,jj)==1._wp .AND. summsk==0._wp) THEN 
     356                      ELSEIF (zdmask(ji,jj)==1._wp .AND. summsk==0._wp) THEN 
     357                      !! vertical extrapolation if horizontal extrapolation failed 
    358358                         jkm1=max(1,jk-1) ; jkp1=min(jpk,jk+1) 
    359359                         summsk=(ztmask0(ji,jj,jkm1)+ztmask0(ji,jj,jkp1)) 
Note: See TracChangeset for help on using the changeset viewer.