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 12928 for NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/ICE/iceitd.F90 – NEMO

Ignore:
Timestamp:
2020-05-14T21:46:00+02:00 (4 years ago)
Author:
smueller
Message:

Synchronizing with /NEMO/trunk@12925 (ticket #2170)

Location:
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser

    • Property svn:externals
      •  

        old new  
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@HEAD         sette 
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/ICE/iceitd.F90

    r12178 r12928  
    4848   REAL(wp), DIMENSION(0:100) ::   rn_catbnd    ! ice categories bounds 
    4949   ! 
     50   !! * Substitutions 
     51#  include "do_loop_substitute.h90" 
    5052   !!---------------------------------------------------------------------- 
    5153   !! NEMO/ICE 4.0 , NEMO Consortium (2018) 
     
    9698      ! 
    9799      npti = 0   ;   nptidx(:) = 0 
    98       DO jj = 1, jpj 
    99          DO ji = 1, jpi 
    100             IF ( at_i(ji,jj) > epsi10 ) THEN 
    101                npti = npti + 1 
    102                nptidx( npti ) = (jj - 1) * jpi + ji 
    103             ENDIF 
    104          END DO 
    105       END DO 
     100      DO_2D_11_11 
     101         IF ( at_i(ji,jj) > epsi10 ) THEN 
     102            npti = npti + 1 
     103            nptidx( npti ) = (jj - 1) * jpi + ji 
     104         ENDIF 
     105      END_2D 
    106106       
    107107      !----------------------------------------------------------------------------------------------- 
     
    211211               CALL itd_glinear( zhb0(1:npti)  , zhb1(1:npti)  , h_ib_1d(1:npti)  , a_i_1d(1:npti)  ,  &   ! in 
    212212                  &              g0  (1:npti,1), g1  (1:npti,1), hL     (1:npti,1), hR    (1:npti,1)   )   ! out 
    213                   ! 
     213               ! 
    214214               ! Area lost due to melting of thin ice 
    215215               DO ji = 1, npti 
     
    218218                     ! 
    219219                     zdh0 =  h_i_1d(ji) - h_ib_1d(ji)                 
    220                      IF( zdh0 < 0.0 ) THEN      !remove area from category 1 
     220                     IF( zdh0 < 0.0 ) THEN      ! remove area from category 1 
    221221                        zdh0 = MIN( -zdh0, hi_max(1) ) 
    222222                        !Integrate g(1) from 0 to dh0 to estimate area melted 
     
    226226                           zx1    = zetamax 
    227227                           zx2    = 0.5 * zetamax * zetamax  
    228                            zda0   = g1(ji,1) * zx2 + g0(ji,1) * zx1                        ! ice area removed 
     228                           zda0   = g1(ji,1) * zx2 + g0(ji,1) * zx1                ! ice area removed 
    229229                           zdamax = a_i_1d(ji) * (1.0 - h_i_1d(ji) / h_ib_1d(ji) ) ! Constrain new thickness <= h_i                 
    230                            zda0   = MIN( zda0, zdamax )                                                  ! ice area lost due to melting  
    231                            !     of thin ice (zdamax > 0) 
     230                           zda0   = MIN( zda0, zdamax )                            ! ice area lost due to melting of thin ice (zdamax > 0) 
    232231                           ! Remove area, conserving volume 
    233232                           h_i_1d(ji) = h_i_1d(ji) * a_i_1d(ji) / ( a_i_1d(ji) - zda0 ) 
     
    349348      DO ji = 1, npti 
    350349         ! 
    351          IF( paice(ji) > epsi10  .AND. phice(ji) > 0._wp )  THEN 
     350         IF( paice(ji) > epsi10  .AND. phice(ji) > epsi10 )  THEN 
    352351            ! 
    353352            ! Initialize hL and hR 
     
    598597         !                    !--------------------------------------- 
    599598         npti = 0   ;   nptidx(:) = 0 
    600          DO jj = 1, jpj 
    601             DO ji = 1, jpi 
    602                IF( a_i(ji,jj,jl) > 0._wp .AND. v_i(ji,jj,jl) > (a_i(ji,jj,jl) * hi_max(jl)) ) THEN 
    603                   npti = npti + 1 
    604                   nptidx( npti ) = (jj - 1) * jpi + ji                   
    605                ENDIF 
    606             END DO 
    607          END DO 
     599         DO_2D_11_11 
     600            IF( a_i(ji,jj,jl) > 0._wp .AND. v_i(ji,jj,jl) > (a_i(ji,jj,jl) * hi_max(jl)) ) THEN 
     601               npti = npti + 1 
     602               nptidx( npti ) = (jj - 1) * jpi + ji                   
     603            ENDIF 
     604         END_2D 
    608605         ! 
    609606!!clem   CALL tab_2d_1d( npti, nptidx(1:npti), h_i_1d(1:npti), h_i(:,:,jl) ) 
     
    639636         !                    !----------------------------------------- 
    640637         npti = 0 ; nptidx(:) = 0 
    641          DO jj = 1, jpj 
    642             DO ji = 1, jpi 
    643                IF( a_i(ji,jj,jl+1) > 0._wp .AND. v_i(ji,jj,jl+1) <= (a_i(ji,jj,jl+1) * hi_max(jl)) ) THEN 
    644                   npti = npti + 1 
    645                   nptidx( npti ) = (jj - 1) * jpi + ji                   
    646                ENDIF 
    647             END DO 
    648          END DO 
     638         DO_2D_11_11 
     639            IF( a_i(ji,jj,jl+1) > 0._wp .AND. v_i(ji,jj,jl+1) <= (a_i(ji,jj,jl+1) * hi_max(jl)) ) THEN 
     640               npti = npti + 1 
     641               nptidx( npti ) = (jj - 1) * jpi + ji                   
     642            ENDIF 
     643         END_2D 
    649644         ! 
    650645         CALL tab_2d_1d( npti, nptidx(1:npti), a_i_1d(1:npti), a_i(:,:,jl+1) ) ! jl+1 is ok 
     
    687682      !!------------------------------------------------------------------ 
    688683      ! 
    689       REWIND( numnam_ice_ref )      ! Namelist namitd in reference namelist : Parameters for ice 
    690684      READ  ( numnam_ice_ref, namitd, IOSTAT = ios, ERR = 901) 
    691685901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namitd in reference namelist' ) 
    692       REWIND( numnam_ice_cfg )      ! Namelist namitd in configuration namelist : Parameters for ice 
    693686      READ  ( numnam_ice_cfg, namitd, IOSTAT = ios, ERR = 902 ) 
    694687902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namitd in configuration namelist' ) 
Note: See TracChangeset for help on using the changeset viewer.