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 8565 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceitd.F90 – NEMO

Ignore:
Timestamp:
2017-09-27T12:09:10+02:00 (7 years ago)
Author:
clem
Message:

trying to respect naming convention

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceitd.F90

    r8564 r8565  
    6060      ! 
    6161      INTEGER  ::   ji, jj, jl, jcat     ! dummy loop index 
    62       INTEGER  ::   nidx2                ! local integer 
     62      INTEGER  ::   ipti                 ! local integer 
    6363      REAL(wp) ::   zx1, zwk1, zdh0, zetamin, zdamax   ! local scalars 
    6464      REAL(wp) ::   zx2, zwk2, zda0, zetamax           !   -      - 
     
    6666      REAL(wp) ::   zslope          ! used to compute local thermodynamic "speeds" 
    6767 
    68       INTEGER , DIMENSION(jpij)       ::   idxice2         ! compute remapping or not 
     68      INTEGER , DIMENSION(jpij)       ::   iptidx          ! compute remapping or not 
    6969      INTEGER , DIMENSION(jpij,jpl-1) ::   jdonor          ! donor category index 
    7070      REAL(wp), DIMENSION(jpij,jpl)   ::   zdhice          ! ice thickness increment 
     
    8383      !  1) Identify grid cells with ice 
    8484      !----------------------------------------------------------------------------------------------- 
    85       nidx = 0   ;   idxice(:) = 0 
     85      npti = 0   ;   nptidx(:) = 0 
    8686      DO jj = 1, jpj 
    8787         DO ji = 1, jpi 
    8888            IF ( at_i(ji,jj) > epsi10 ) THEN 
    89                nidx         = nidx + 1 
    90                idxice( nidx ) = (jj - 1) * jpi + ji 
     89               npti         = npti + 1 
     90               nptidx( npti ) = (jj - 1) * jpi + ji 
    9191            ENDIF 
    9292         END DO 
     
    9696      !  2) Compute new category boundaries 
    9797      !----------------------------------------------------------------------------------------------- 
    98       IF( nidx > 0 ) THEN 
     98      IF( npti > 0 ) THEN 
    9999 
    100100         zdhice(:,:) = 0._wp 
    101101         zhbnew(:,:) = 0._wp 
    102102 
    103          CALL tab_3d_2d( nidx, idxice(1:nidx), h_i_2d (1:nidx,1:jpl), h_i   ) 
    104          CALL tab_3d_2d( nidx, idxice(1:nidx), h_ib_2d(1:nidx,1:jpl), h_i_b ) 
    105          CALL tab_3d_2d( nidx, idxice(1:nidx), a_i_2d  (1:nidx,1:jpl), a_i    ) 
    106          CALL tab_3d_2d( nidx, idxice(1:nidx), a_ib_2d (1:nidx,1:jpl), a_i_b  ) 
     103         CALL tab_3d_2d( npti, nptidx(1:npti), h_i_2d (1:npti,1:jpl), h_i   ) 
     104         CALL tab_3d_2d( npti, nptidx(1:npti), h_ib_2d(1:npti,1:jpl), h_i_b ) 
     105         CALL tab_3d_2d( npti, nptidx(1:npti), a_i_2d  (1:npti,1:jpl), a_i    ) 
     106         CALL tab_3d_2d( npti, nptidx(1:npti), a_ib_2d (1:npti,1:jpl), a_i_b  ) 
    107107 
    108108         DO jl = 1, jpl 
    109109            ! Compute thickness change in each ice category 
    110             DO ji = 1, nidx 
     110            DO ji = 1, npti 
    111111               zdhice(ji,jl) = h_i_2d(ji,jl) - h_ib_2d(ji,jl) 
    112112            END DO 
     
    116116         DO jl = 1, jpl - 1 
    117117            ! 
    118             DO ji = 1, nidx 
     118            DO ji = 1, npti 
    119119               ! 
    120120               ! --- New boundary: Hn* = Hn + Fn*dt --- ! 
     
    136136               !    Note: hn(t+1) must not be too close to either HR or HL otherwise a division by nearly 0 is possible  
    137137               !          in ice_itd_glinear in the case (HR-HL) = 3(Hice - HL) or = 3(HR - Hice) 
    138                IF( a_i_2d(ji,jl  ) > epsi10 .AND. h_i_2d(ji,jl  ) > ( zhbnew(ji,jl) - epsi10 ) )   idxice(ji) = 0 
    139                IF( a_i_2d(ji,jl+1) > epsi10 .AND. h_i_2d(ji,jl+1) < ( zhbnew(ji,jl) + epsi10 ) )   idxice(ji) = 0 
     138               IF( a_i_2d(ji,jl  ) > epsi10 .AND. h_i_2d(ji,jl  ) > ( zhbnew(ji,jl) - epsi10 ) )   nptidx(ji) = 0 
     139               IF( a_i_2d(ji,jl+1) > epsi10 .AND. h_i_2d(ji,jl+1) < ( zhbnew(ji,jl) + epsi10 ) )   nptidx(ji) = 0 
    140140                
    141141               ! 2) Hn-1 < Hn* < Hn+1   
    142                IF( zhbnew(ji,jl) < hi_max(jl-1) )   idxice(ji) = 0 
    143                IF( zhbnew(ji,jl) > hi_max(jl+1) )   idxice(ji) = 0 
     142               IF( zhbnew(ji,jl) < hi_max(jl-1) )   nptidx(ji) = 0 
     143               IF( zhbnew(ji,jl) > hi_max(jl+1) )   nptidx(ji) = 0 
    144144                
    145145            END DO 
     
    147147         ! 
    148148         ! --- New boundaries for category jpl --- ! 
    149          DO ji = 1, nidx 
     149         DO ji = 1, npti 
    150150            IF( a_i_2d(ji,jpl) > epsi10 ) THEN 
    151151               zhbnew(ji,jpl) = MAX( hi_max(jpl-1), 3._wp * h_i_2d(ji,jpl) - 2._wp * zhbnew(ji,jpl-1) ) 
     
    158158            !    h1(t) must not be too close to either HR or HL otherwise a division by nearly 0 is possible  
    159159            !    in ice_itd_glinear in the case (HR-HL) = 3(Hice - HL) or = 3(HR - Hice) 
    160             IF( h_ib_2d(ji,1) < ( hi_max(0) + epsi10 ) )   idxice(ji) = 0 
    161             IF( h_ib_2d(ji,1) > ( hi_max(1) - epsi10 ) )   idxice(ji) = 0 
     160            IF( h_ib_2d(ji,1) < ( hi_max(0) + epsi10 ) )   nptidx(ji) = 0 
     161            IF( h_ib_2d(ji,1) > ( hi_max(1) - epsi10 ) )   nptidx(ji) = 0 
    162162         END DO 
    163163         ! 
     
    165165         !  3) Identify cells where remapping 
    166166         !----------------------------------------------------------------------------------------------- 
    167          nidx2 = 0 ; idxice2(:) = 0 
    168          DO ji = 1, nidx 
    169             IF( idxice(ji) /= 0 ) THEN 
    170                nidx2 = nidx2 + 1 
    171                idxice2(nidx2) = idxice(ji) 
    172                zhbnew(nidx2,:) = zhbnew(ji,:)  ! adjust zhbnew to new indices 
     167         ipti = 0 ; iptidx(:) = 0 
     168         DO ji = 1, npti 
     169            IF( nptidx(ji) /= 0 ) THEN 
     170               ipti = ipti + 1 
     171               iptidx(ipti)   = nptidx(ji) 
     172               zhbnew(ipti,:) = zhbnew(ji,:)  ! adjust zhbnew to new indices 
    173173            ENDIF 
    174174         END DO 
    175          idxice(:) = idxice2(:) 
    176          nidx      = nidx2 
     175         nptidx(:) = iptidx(:) 
     176         npti      = ipti 
    177177         ! 
    178178      ENDIF 
     
    181181      !  4) Compute g(h)  
    182182      !----------------------------------------------------------------------------------------------- 
    183       IF( nidx > 0 ) THEN 
     183      IF( npti > 0 ) THEN 
    184184         ! 
    185185         zhb0(:) = hi_max(0)   ;   zhb1(:) = hi_max(1) 
     
    189189         DO jl = 1, jpl 
    190190            ! 
    191             CALL tab_2d_1d( nidx, idxice(1:nidx), h_ib_1d(1:nidx), h_i_b(:,:,jl) ) 
    192             CALL tab_2d_1d( nidx, idxice(1:nidx), h_i_1d (1:nidx), h_i(:,:,jl)   ) 
    193             CALL tab_2d_1d( nidx, idxice(1:nidx), a_i_1d  (1:nidx), a_i(:,:,jl)    ) 
    194             CALL tab_2d_1d( nidx, idxice(1:nidx), v_i_1d  (1:nidx), v_i(:,:,jl)    ) 
     191            CALL tab_2d_1d( npti, nptidx(1:npti), h_ib_1d(1:npti), h_i_b(:,:,jl) ) 
     192            CALL tab_2d_1d( npti, nptidx(1:npti), h_i_1d (1:npti), h_i(:,:,jl)   ) 
     193            CALL tab_2d_1d( npti, nptidx(1:npti), a_i_1d  (1:npti), a_i(:,:,jl)    ) 
     194            CALL tab_2d_1d( npti, nptidx(1:npti), v_i_1d  (1:npti), v_i(:,:,jl)    ) 
    195195            ! 
    196196            IF( jl == 1 ) THEN 
    197197               !   
    198198               ! --- g(h) for category 1 --- ! 
    199                CALL ice_itd_glinear( zhb0(1:nidx)  , zhb1(1:nidx)  , h_ib_1d(1:nidx)  , a_i_1d(1:nidx)  ,  &   ! in 
    200                   &                  g0  (1:nidx,1), g1  (1:nidx,1), hL      (1:nidx,1), hR    (1:nidx,1)   )   ! out 
     199               CALL ice_itd_glinear( zhb0(1:npti)  , zhb1(1:npti)  , h_ib_1d(1:npti)  , a_i_1d(1:npti)  ,  &   ! in 
     200                  &                  g0  (1:npti,1), g1  (1:npti,1), hL      (1:npti,1), hR    (1:npti,1)   )   ! out 
    201201                  ! 
    202202               ! Area lost due to melting of thin ice 
    203                DO ji = 1, nidx 
     203               DO ji = 1, npti 
    204204                  ! 
    205205                  IF( a_i_1d(ji) > epsi10 ) THEN 
     
    233233               END DO 
    234234               ! 
    235                CALL tab_1d_2d( nidx, idxice(1:nidx), h_i_1d (1:nidx), h_i(:,:,jl)   ) 
    236                CALL tab_1d_2d( nidx, idxice(1:nidx), a_i_1d  (1:nidx), a_i(:,:,jl)    ) 
    237                CALL tab_1d_2d( nidx, idxice(1:nidx), v_i_1d  (1:nidx), v_i(:,:,jl)    ) 
     235               CALL tab_1d_2d( npti, nptidx(1:npti), h_i_1d (1:npti), h_i(:,:,jl)   ) 
     236               CALL tab_1d_2d( npti, nptidx(1:npti), a_i_1d  (1:npti), a_i(:,:,jl)    ) 
     237               CALL tab_1d_2d( npti, nptidx(1:npti), v_i_1d  (1:npti), v_i(:,:,jl)    ) 
    238238               ! 
    239239            ENDIF ! jl=1 
    240240            ! 
    241241            ! --- g(h) for each thickness category --- !   
    242             CALL ice_itd_glinear( zhbnew(1:nidx,jl-1), zhbnew(1:nidx,jl), h_i_1d(1:nidx)   , a_i_1d(1:nidx)   ,  &   ! in 
    243                &                  g0    (1:nidx,jl  ), g1    (1:nidx,jl), hL     (1:nidx,jl), hR    (1:nidx,jl)   )   ! out 
     242            CALL ice_itd_glinear( zhbnew(1:npti,jl-1), zhbnew(1:npti,jl), h_i_1d(1:npti)   , a_i_1d(1:npti)   ,  &   ! in 
     243               &                  g0    (1:npti,jl  ), g1    (1:npti,jl), hL     (1:npti,jl), hR    (1:npti,jl)   )   ! out 
    244244            ! 
    245245         END DO 
     
    250250         DO jl = 1, jpl - 1 
    251251            ! 
    252             DO ji = 1, nidx 
     252            DO ji = 1, npti 
    253253               ! 
    254254               ! left and right integration limits in eta space 
     
    281281         ! 6) Shift ice between categories 
    282282         !---------------------------------------------------------------------------------------------- 
    283          CALL ice_itd_shiftice ( jdonor(1:nidx,:), zdaice(1:nidx,:), zdvice(1:nidx,:) ) 
     283         CALL ice_itd_shiftice ( jdonor(1:npti,:), zdaice(1:npti,:), zdvice(1:npti,:) ) 
    284284          
    285285         !---------------------------------------------------------------------------------------------- 
    286286         ! 7) Make sure h_i >= minimum ice thickness hi_min 
    287287         !---------------------------------------------------------------------------------------------- 
    288          CALL tab_2d_1d( nidx, idxice(1:nidx), h_i_1d (1:nidx), h_i(:,:,1)   ) 
    289          CALL tab_2d_1d( nidx, idxice(1:nidx), a_i_1d  (1:nidx), a_i(:,:,1)    ) 
    290          CALL tab_2d_1d( nidx, idxice(1:nidx), a_ip_1d (1:nidx), a_ip(:,:,1)   ) 
     288         CALL tab_2d_1d( npti, nptidx(1:npti), h_i_1d (1:npti), h_i(:,:,1)   ) 
     289         CALL tab_2d_1d( npti, nptidx(1:npti), a_i_1d  (1:npti), a_i(:,:,1)    ) 
     290         CALL tab_2d_1d( npti, nptidx(1:npti), a_ip_1d (1:npti), a_ip(:,:,1)   ) 
    291291          
    292          DO ji = 1, nidx 
     292         DO ji = 1, npti 
    293293            IF ( a_i_1d(ji) > epsi10 .AND. h_i_1d(ji) < rn_himin ) THEN 
    294294               a_i_1d (ji) = a_i_1d(ji) * h_i_1d(ji) / rn_himin  
     
    302302         END DO 
    303303         ! 
    304          CALL tab_1d_2d( nidx, idxice(1:nidx), h_i_1d (1:nidx), h_i(:,:,1)   ) 
    305          CALL tab_1d_2d( nidx, idxice(1:nidx), a_i_1d  (1:nidx), a_i(:,:,1)    ) 
    306          CALL tab_1d_2d( nidx, idxice(1:nidx), a_ip_1d (1:nidx), a_ip(:,:,1)   ) 
     304         CALL tab_1d_2d( npti, nptidx(1:npti), h_i_1d (1:npti), h_i(:,:,1)   ) 
     305         CALL tab_1d_2d( npti, nptidx(1:npti), a_i_1d  (1:npti), a_i(:,:,1)    ) 
     306         CALL tab_1d_2d( npti, nptidx(1:npti), a_ip_1d (1:npti), a_ip(:,:,1)   ) 
    307307         ! 
    308308      ENDIF 
     
    338338      z2_3 = 2._wp / 3._wp 
    339339      ! 
    340       DO ji = 1, nidx 
     340      DO ji = 1, npti 
    341341         ! 
    342342         IF( paice(ji) > epsi10  .AND. phice(ji) > 0._wp )  THEN 
     
    392392      !!------------------------------------------------------------------ 
    393393          
    394       CALL tab_3d_2d( nidx, idxice(1:nidx), h_i_2d (1:nidx,1:jpl), h_i  ) 
    395       CALL tab_3d_2d( nidx, idxice(1:nidx), a_i_2d (1:nidx,1:jpl), a_i  ) 
    396       CALL tab_3d_2d( nidx, idxice(1:nidx), v_i_2d (1:nidx,1:jpl), v_i  ) 
    397       CALL tab_3d_2d( nidx, idxice(1:nidx), v_s_2d (1:nidx,1:jpl), v_s  ) 
    398       CALL tab_3d_2d( nidx, idxice(1:nidx), oa_i_2d(1:nidx,1:jpl), oa_i ) 
    399       CALL tab_3d_2d( nidx, idxice(1:nidx), sv_i_2d(1:nidx,1:jpl), sv_i ) 
    400       CALL tab_3d_2d( nidx, idxice(1:nidx), a_ip_2d(1:nidx,1:jpl), a_ip ) 
    401       CALL tab_3d_2d( nidx, idxice(1:nidx), v_ip_2d(1:nidx,1:jpl), v_ip ) 
    402       CALL tab_3d_2d( nidx, idxice(1:nidx), t_su_2d(1:nidx,1:jpl), t_su ) 
     394      CALL tab_3d_2d( npti, nptidx(1:npti), h_i_2d (1:npti,1:jpl), h_i  ) 
     395      CALL tab_3d_2d( npti, nptidx(1:npti), a_i_2d (1:npti,1:jpl), a_i  ) 
     396      CALL tab_3d_2d( npti, nptidx(1:npti), v_i_2d (1:npti,1:jpl), v_i  ) 
     397      CALL tab_3d_2d( npti, nptidx(1:npti), v_s_2d (1:npti,1:jpl), v_s  ) 
     398      CALL tab_3d_2d( npti, nptidx(1:npti), oa_i_2d(1:npti,1:jpl), oa_i ) 
     399      CALL tab_3d_2d( npti, nptidx(1:npti), sv_i_2d(1:npti,1:jpl), sv_i ) 
     400      CALL tab_3d_2d( npti, nptidx(1:npti), a_ip_2d(1:npti,1:jpl), a_ip ) 
     401      CALL tab_3d_2d( npti, nptidx(1:npti), v_ip_2d(1:npti,1:jpl), v_ip ) 
     402      CALL tab_3d_2d( npti, nptidx(1:npti), t_su_2d(1:npti,1:jpl), t_su ) 
    403403 
    404404      !---------------------------------------------------------------------------------------------- 
     
    406406      !---------------------------------------------------------------------------------------------- 
    407407      DO jl = 1, jpl 
    408          DO ji = 1, nidx 
     408         DO ji = 1, npti 
    409409            zaTsfn(ji,jl) = a_i_2d(ji,jl) * t_su_2d(ji,jl) 
    410410         END DO 
     
    415415      !------------------------------------------------------------------------------- 
    416416      DO jl = 1, jpl - 1 
    417          DO ji = 1, nidx 
     417         DO ji = 1, npti 
    418418            ! 
    419419            jl1 = kdonor(ji,jl) 
     
    475475         DO jk = 1, nlay_s         !--- Snow heat content 
    476476            ! 
    477             DO ji = 1, nidx 
    478                ii = MOD( idxice(ji) - 1, jpi ) + 1 
    479                ij = ( idxice(ji) - 1 ) / jpi + 1 
     477            DO ji = 1, npti 
     478               ii = MOD( nptidx(ji) - 1, jpi ) + 1 
     479               ij = ( nptidx(ji) - 1 ) / jpi + 1 
    480480               ! 
    481481               jl1 = kdonor(ji,jl) 
     
    494494 
    495495         DO jk = 1, nlay_i         !--- Ice heat content 
    496             DO ji = 1, nidx 
    497                ii = MOD( idxice(ji) - 1, jpi ) + 1 
    498                ij = ( idxice(ji) - 1 ) / jpi + 1 
     496            DO ji = 1, npti 
     497               ii = MOD( nptidx(ji) - 1, jpi ) + 1 
     498               ij = ( nptidx(ji) - 1 ) / jpi + 1 
    499499               ! 
    500500               jl1 = kdonor(ji,jl) 
     
    517517      ! 3) Update ice thickness and temperature 
    518518      !------------------------------------------------------------------------------- 
    519       WHERE( a_i_2d(1:nidx,:) >= epsi20 ) 
    520          h_i_2d(1:nidx,:)  =  v_i_2d(1:nidx,:) / a_i_2d(1:nidx,:)  
    521          t_su_2d(1:nidx,:)  =  zaTsfn(1:nidx,:) / a_i_2d(1:nidx,:)  
     519      WHERE( a_i_2d(1:npti,:) >= epsi20 ) 
     520         h_i_2d(1:npti,:)  =  v_i_2d(1:npti,:) / a_i_2d(1:npti,:)  
     521         t_su_2d(1:npti,:)  =  zaTsfn(1:npti,:) / a_i_2d(1:npti,:)  
    522522      ELSEWHERE 
    523          h_i_2d(1:nidx,:)  = 0._wp 
    524          t_su_2d(1:nidx,:)  = rt0 
     523         h_i_2d(1:npti,:)  = 0._wp 
     524         t_su_2d(1:npti,:)  = rt0 
    525525      END WHERE 
    526526      ! 
    527       CALL tab_2d_3d( nidx, idxice(1:nidx), h_i_2d (1:nidx,1:jpl), h_i  ) 
    528       CALL tab_2d_3d( nidx, idxice(1:nidx), a_i_2d (1:nidx,1:jpl), a_i  ) 
    529       CALL tab_2d_3d( nidx, idxice(1:nidx), v_i_2d (1:nidx,1:jpl), v_i  ) 
    530       CALL tab_2d_3d( nidx, idxice(1:nidx), v_s_2d (1:nidx,1:jpl), v_s  ) 
    531       CALL tab_2d_3d( nidx, idxice(1:nidx), oa_i_2d(1:nidx,1:jpl), oa_i ) 
    532       CALL tab_2d_3d( nidx, idxice(1:nidx), sv_i_2d(1:nidx,1:jpl), sv_i ) 
    533       CALL tab_2d_3d( nidx, idxice(1:nidx), a_ip_2d(1:nidx,1:jpl), a_ip ) 
    534       CALL tab_2d_3d( nidx, idxice(1:nidx), v_ip_2d(1:nidx,1:jpl), v_ip ) 
    535       CALL tab_2d_3d( nidx, idxice(1:nidx), t_su_2d(1:nidx,1:jpl), t_su ) 
     527      CALL tab_2d_3d( npti, nptidx(1:npti), h_i_2d (1:npti,1:jpl), h_i  ) 
     528      CALL tab_2d_3d( npti, nptidx(1:npti), a_i_2d (1:npti,1:jpl), a_i  ) 
     529      CALL tab_2d_3d( npti, nptidx(1:npti), v_i_2d (1:npti,1:jpl), v_i  ) 
     530      CALL tab_2d_3d( npti, nptidx(1:npti), v_s_2d (1:npti,1:jpl), v_s  ) 
     531      CALL tab_2d_3d( npti, nptidx(1:npti), oa_i_2d(1:npti,1:jpl), oa_i ) 
     532      CALL tab_2d_3d( npti, nptidx(1:npti), sv_i_2d(1:npti,1:jpl), sv_i ) 
     533      CALL tab_2d_3d( npti, nptidx(1:npti), a_ip_2d(1:npti,1:jpl), a_ip ) 
     534      CALL tab_2d_3d( npti, nptidx(1:npti), v_ip_2d(1:npti,1:jpl), v_ip ) 
     535      CALL tab_2d_3d( npti, nptidx(1:npti), t_su_2d(1:npti,1:jpl), t_su ) 
    536536      ! 
    537537   END SUBROUTINE ice_itd_shiftice 
     
    564564      DO jl = 1, jpl-1        ! identify thicknesses that are too big 
    565565         !                    !--------------------------------------- 
    566          nidx = 0   ;   idxice(:) = 0 
     566         npti = 0   ;   nptidx(:) = 0 
    567567         DO jj = 1, jpj 
    568568            DO ji = 1, jpi 
    569569               IF( a_i(ji,jj,jl) > epsi10 .AND. v_i(ji,jj,jl) > (a_i(ji,jj,jl) * hi_max(jl)) ) THEN 
    570                   nidx = nidx + 1 
    571                   idxice( nidx ) = (jj - 1) * jpi + ji                   
     570                  npti = npti + 1 
     571                  nptidx( npti ) = (jj - 1) * jpi + ji                   
    572572               ENDIF 
    573573            END DO 
    574574         END DO 
    575575         ! 
    576 !!clem   CALL tab_2d_1d( nidx, idxice(1:nidx), h_i_1d (1:nidx), h_i(:,:,jl)   ) 
    577          CALL tab_2d_1d( nidx, idxice(1:nidx), a_i_1d  (1:nidx), a_i(:,:,jl)    ) 
    578          CALL tab_2d_1d( nidx, idxice(1:nidx), v_i_1d  (1:nidx), v_i(:,:,jl)    ) 
    579          ! 
    580          DO ji = 1, nidx 
     576!!clem   CALL tab_2d_1d( npti, nptidx(1:npti), h_i_1d (1:npti), h_i(:,:,jl)   ) 
     577         CALL tab_2d_1d( npti, nptidx(1:npti), a_i_1d  (1:npti), a_i(:,:,jl)    ) 
     578         CALL tab_2d_1d( npti, nptidx(1:npti), v_i_1d  (1:npti), v_i(:,:,jl)    ) 
     579         ! 
     580         DO ji = 1, npti 
    581581            jdonor(ji,jl)  = jl  
    582582            ! how much of a_i you send in cat sup is somewhat arbitrary 
     
    592592         END DO 
    593593         ! 
    594          IF( nidx > 0 ) THEN 
    595             CALL ice_itd_shiftice( jdonor(1:nidx,:), zdaice(1:nidx,:), zdvice(1:nidx,:) )  ! Shift jl=>jl+1 
     594         IF( npti > 0 ) THEN 
     595            CALL ice_itd_shiftice( jdonor(1:npti,:), zdaice(1:npti,:), zdvice(1:npti,:) )  ! Shift jl=>jl+1 
    596596            ! Reset shift parameters 
    597             jdonor(1:nidx,jl) = 0 
    598             zdaice(1:nidx,jl) = 0._wp 
    599             zdvice(1:nidx,jl) = 0._wp 
     597            jdonor(1:npti,jl) = 0 
     598            zdaice(1:npti,jl) = 0._wp 
     599            zdvice(1:npti,jl) = 0._wp 
    600600         ENDIF 
    601601         ! 
     
    605605      DO jl = jpl-1, 1, -1    ! Identify thicknesses that are too small 
    606606         !                    !----------------------------------------- 
    607          nidx = 0 ; idxice(:) = 0 
     607         npti = 0 ; nptidx(:) = 0 
    608608         DO jj = 1, jpj 
    609609            DO ji = 1, jpi 
    610610               IF( a_i(ji,jj,jl+1) > epsi10 .AND. v_i(ji,jj,jl+1) <= (a_i(ji,jj,jl+1) * hi_max(jl)) ) THEN 
    611                   nidx = nidx + 1 
    612                   idxice( nidx ) = (jj - 1) * jpi + ji                   
     611                  npti = npti + 1 
     612                  nptidx( npti ) = (jj - 1) * jpi + ji                   
    613613               ENDIF 
    614614            END DO 
    615615         END DO 
    616616         ! 
    617          CALL tab_2d_1d( nidx, idxice(1:nidx), a_i_1d  (1:nidx), a_i(:,:,jl+1)    ) ! jl+1 is ok 
    618          CALL tab_2d_1d( nidx, idxice(1:nidx), v_i_1d  (1:nidx), v_i(:,:,jl+1)    ) ! jl+1 is ok 
    619          DO ji = 1, nidx 
     617         CALL tab_2d_1d( npti, nptidx(1:npti), a_i_1d  (1:npti), a_i(:,:,jl+1)    ) ! jl+1 is ok 
     618         CALL tab_2d_1d( npti, nptidx(1:npti), v_i_1d  (1:npti), v_i(:,:,jl+1)    ) ! jl+1 is ok 
     619         DO ji = 1, npti 
    620620            jdonor(ji,jl) = jl + 1 
    621621            zdaice(ji,jl) = a_i_1d(ji)  
     
    623623         END DO 
    624624         ! 
    625          IF( nidx > 0 ) THEN 
    626             CALL ice_itd_shiftice( jdonor(1:nidx,:), zdaice(1:nidx,:), zdvice(1:nidx,:) )  ! Shift jl+1=>jl 
     625         IF( npti > 0 ) THEN 
     626            CALL ice_itd_shiftice( jdonor(1:npti,:), zdaice(1:npti,:), zdvice(1:npti,:) )  ! Shift jl+1=>jl 
    627627            ! Reset shift parameters 
    628             jdonor(1:nidx,jl) = 0 
    629             zdaice(1:nidx,jl) = 0._wp 
    630             zdvice(1:nidx,jl) = 0._wp 
     628            jdonor(1:npti,jl) = 0 
     629            zdaice(1:npti,jl) = 0._wp 
     630            zdvice(1:npti,jl) = 0._wp 
    631631         ENDIF 
    632632         ! 
Note: See TracChangeset for help on using the changeset viewer.