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

Ignore:
Timestamp:
2017-07-15T17:27:14+02:00 (7 years ago)
Author:
clem
Message:

simplify the code

File:
1 edited

Legend:

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

    r8341 r8342  
    4242CONTAINS 
    4343 
    44    SUBROUTINE lim_thd_dh( kideb, kiut ) 
     44   SUBROUTINE lim_thd_dh 
    4545      !!------------------------------------------------------------------ 
    4646      !!                ***  ROUTINE lim_thd_dh  *** 
     
    6666      !!              Vancoppenolle et al.,2009, Ocean Modelling 
    6767      !!------------------------------------------------------------------ 
    68       INTEGER , INTENT(in) ::   kideb, kiut   ! Start/End point on which the  the computation is applied 
    69       !!  
    7068      INTEGER  ::   ji , jk        ! dummy loop indices 
    7169      INTEGER  ::   iter 
     
    130128 
    131129      ! Initialize enthalpy at nlay_i+1 
    132       DO ji = kideb, kiut 
     130      DO ji = 1, nidx 
    133131         e_i_1d(ji,nlay_i+1) = 0._wp 
    134132      END DO 
     
    138136      eh_i_old(:,0:nlay_i+1) = 0._wp 
    139137      DO jk = 1, nlay_i 
    140          DO ji = kideb, kiut 
     138         DO ji = 1, nidx 
    141139            h_i_old (ji,jk) = ht_i_1d(ji) * r1_nlay_i 
    142140            eh_i_old(ji,jk) = e_i_1d(ji,jk) * h_i_old(ji,jk) 
     
    148146      !------------------------------------------------------------------------------! 
    149147      ! 
    150       DO ji = kideb, kiut 
     148      DO ji = 1, nidx 
    151149         zdum       = qns_ice_1d(ji) + ( 1._wp - i0(ji) ) * qsr_ice_1d(ji) - fc_su(ji)  
    152150         zf_tt(ji)  = fc_bo_i(ji) + fhtur_1d(ji) + fhld_1d(ji)  
     
    161159      ! (should not happen but sometimes it does) 
    162160      !------------------------------------------------------------------------------! 
    163       DO ji = kideb, kiut 
     161      DO ji = 1, nidx 
    164162         IF( t_s_1d(ji,1) > rt0 ) THEN !!! Internal melting 
    165163            ! Contribution to heat flux to the ocean [W.m-2], < 0   
     
    179177      ! 
    180178      DO jk = 1, nlay_i 
    181          DO ji = kideb, kiut 
     179         DO ji = 1, nidx 
    182180            zh_i(ji,jk) = ht_i_1d(ji) * r1_nlay_i 
    183181            zeh_i(ji)   = zeh_i(ji) + e_i_1d(ji,jk) * zh_i(ji,jk) 
     
    203201      ! Martin Vancoppenolle, December 2006 
    204202 
    205       CALL lim_thd_snwblow( 1. - at_i_1d(kideb:kiut), zsnw(kideb:kiut) ) ! snow distribution over ice after wind blowing 
     203      CALL lim_thd_snwblow( 1. - at_i_1d(1:nidx), zsnw(1:nidx) ) ! snow distribution over ice after wind blowing 
    206204 
    207205      zdeltah(:,:) = 0._wp 
    208       DO ji = kideb, kiut 
     206      DO ji = 1, nidx 
    209207         !----------- 
    210208         ! Snow fall 
     
    242240      zdeltah(:,:) = 0._wp 
    243241      DO jk = 1, nlay_s 
    244          DO ji = kideb, kiut 
     242         DO ji = 1, nidx 
    245243            ! thickness change 
    246244            rswitch          = 1._wp - MAX( 0._wp, SIGN( 1._wp, - ht_s_1d(ji) ) )  
     
    265263      ! clem comment: not counted in mass/heat exchange in limsbc since this is an exchange with atm. (not ocean) 
    266264      zdeltah(:,:) = 0._wp 
    267       DO ji = kideb, kiut 
     265      DO ji = 1, nidx 
    268266         zdh_s_sub(ji)  = MAX( - ht_s_1d(ji) , - evap_ice_1d(ji) * r1_rhosn * rdt_ice ) 
    269267         ! remaining evap in kg.m-2 (used for ice melting later on) 
     
    284282       
    285283      ! --- Update snow diags --- ! 
    286       DO ji = kideb, kiut 
     284      DO ji = 1, nidx 
    287285         dh_s_tot(ji) = zdh_s_mel(ji) + zdh_s_pre(ji) + zdh_s_sub(ji) 
    288286      END DO 
     
    293291      ! new temp and enthalpy of the snow (remaining snow precip + remaining pre-existing snow) 
    294292      DO jk = 1, nlay_s 
    295          DO ji = kideb,kiut 
     293         DO ji = 1,nidx 
    296294            rswitch       = MAX( 0._wp , SIGN( 1._wp, ht_s_1d(ji) - epsi20 ) ) 
    297295            e_s_1d(ji,jk) = rswitch / MAX( ht_s_1d(ji), epsi20 ) *           & 
     
    306304      zdeltah(:,:) = 0._wp ! important 
    307305      DO jk = 1, nlay_i 
    308          DO ji = kideb, kiut 
     306         DO ji = 1, nidx 
    309307            ztmelts           = - tmut * s_i_1d(ji,jk) + rt0          ! Melting point of layer k [K] 
    310308             
     
    394392      END DO 
    395393      ! update ice thickness 
    396       DO ji = kideb, kiut 
     394      DO ji = 1, nidx 
    397395         ht_i_1d(ji) =  MAX( 0._wp , ht_i_1d(ji) + dh_i_surf(ji) + dh_i_sub(ji) ) 
    398396      END DO 
    399397 
    400398      ! remaining "potential" evap is sent to ocean 
    401       DO ji = kideb, kiut 
     399      DO ji = 1, nidx 
    402400         wfx_err_sub_1d(ji) = wfx_err_sub_1d(ji) - zevap_rema(ji) * a_i_1d(ji) * r1_rdtice  ! <=0 (net evap for the ocean in kg.m-2.s-1) 
    403401      END DO 
     
    426424 
    427425      ! Iterative procedure 
    428       DO ji = kideb, kiut 
     426      DO ji = 1, nidx 
    429427         IF(  zf_tt(ji) < 0._wp  ) THEN 
    430428            DO iter = 1, num_iter_max 
     
    501499      zdeltah(:,:) = 0._wp ! important 
    502500      DO jk = nlay_i, 1, -1 
    503          DO ji = kideb, kiut 
     501         DO ji = 1, nidx 
    504502            IF(  zf_tt(ji)  >  0._wp  .AND. jk > icount(ji,jk) ) THEN   ! do not calculate where layer has already disappeared by surface melting  
    505503 
     
    575573      ! Update temperature, energy 
    576574      !------------------------------------------- 
    577       DO ji = kideb, kiut 
     575      DO ji = 1, nidx 
    578576         ht_i_1d(ji) =  MAX( 0._wp , ht_i_1d(ji) + dh_i_bott(ji) ) 
    579577      END DO   
     
    585583      !------------------------------------------- 
    586584      zdeltah(:,:) = 0._wp ! important 
    587       DO ji = kideb, kiut 
     585      DO ji = 1, nidx 
    588586         zq_rema(ji)     = zq_su(ji) + zq_bo(ji)  
    589587         rswitch         = 1._wp - MAX( 0._wp, SIGN( 1._wp, - ht_s_1d(ji) ) )   ! =1 if snow 
     
    612610      ! When snow load excesses Archimede's limit, snow-ice interface goes down under sea-level,  
    613611      ! flooding of seawater transforms snow into ice dh_snowice is positive for the ice 
    614       DO ji = kideb, kiut 
     612      DO ji = 1, nidx 
    615613         ! 
    616614         dh_snowice(ji) = MAX(  0._wp , ( rhosn * ht_s_1d(ji) + (rhoic-rau0) * ht_i_1d(ji) ) / ( rhosn+rau0-rhoic )  ) 
     
    651649      ! Update temperature, energy 
    652650      !------------------------------------------- 
    653       DO ji = kideb, kiut 
     651      DO ji = 1, nidx 
    654652         rswitch     =  1.0 - MAX( 0._wp , SIGN( 1._wp , - ht_i_1d(ji) ) )  
    655653         t_su_1d(ji) =  rswitch * t_su_1d(ji) + ( 1.0 - rswitch ) * rt0 
     
    657655 
    658656      DO jk = 1, nlay_s 
    659          DO ji = kideb,kiut 
     657         DO ji = 1,nidx 
    660658            ! mask enthalpy 
    661659            rswitch       = 1._wp - MAX(  0._wp , SIGN( 1._wp, - ht_s_1d(ji) )  ) 
Note: See TracChangeset for help on using the changeset viewer.