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/icethd_zdf.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/icethd_zdf.F90

    r8564 r8565  
    144144 
    145145      ! --- diag error on heat diffusion - PART 1 --- ! 
    146       DO ji = 1, nidx 
     146      DO ji = 1, npti 
    147147         zq_ini(ji) = ( SUM( e_i_1d(ji,1:nlay_i) ) * h_i_1d(ji) * r1_nlay_i +  & 
    148148            &           SUM( e_s_1d(ji,1:nlay_s) ) * h_s_1d(ji) * r1_nlay_s )  
     
    152152      ! 1) Initialization 
    153153      !------------------ 
    154       DO ji = 1, nidx 
     154      DO ji = 1, npti 
    155155         isnow(ji)= 1._wp - MAX( 0._wp , SIGN(1._wp, - h_s_1d(ji) ) )  ! is there snow or not 
    156156         ! layer thickness 
     
    159159      END DO 
    160160      ! 
    161       WHERE( zh_i(1:nidx) >= epsi10 )   ;   z1_h_i(1:nidx) = 1._wp / zh_i(1:nidx) 
    162       ELSEWHERE                         ;   z1_h_i(1:nidx) = 0._wp 
     161      WHERE( zh_i(1:npti) >= epsi10 )   ;   z1_h_i(1:npti) = 1._wp / zh_i(1:npti) 
     162      ELSEWHERE                         ;   z1_h_i(1:npti) = 0._wp 
    163163      END WHERE 
    164164 
    165       WHERE( zh_s(1:nidx) >= epsi10 )   ;   z1_h_s(1:nidx) = 1._wp / zh_s(1:nidx) 
    166       ELSEWHERE                         ;   z1_h_s(1:nidx) = 0._wp 
     165      WHERE( zh_s(1:npti) >= epsi10 )   ;   z1_h_s(1:npti) = 1._wp / zh_s(1:npti) 
     166      ELSEWHERE                         ;   z1_h_s(1:npti) = 0._wp 
    167167      END WHERE 
    168168      ! 
    169169      ! temperatures 
    170       ztsub  (1:nidx)   = t_su_1d(1:nidx)  ! temperature at the previous iteration 
    171       ztsold (1:nidx,:) = t_s_1d(1:nidx,:)   ! Old snow temperature 
    172       ztiold (1:nidx,:) = t_i_1d(1:nidx,:)   ! Old ice temperature 
    173       t_su_1d(1:nidx)   = MIN( t_su_1d(1:nidx), rt0 - ztsu_err )   ! necessary 
     170      ztsub  (1:npti)   = t_su_1d(1:npti)  ! temperature at the previous iteration 
     171      ztsold (1:npti,:) = t_s_1d(1:npti,:)   ! Old snow temperature 
     172      ztiold (1:npti,:) = t_i_1d(1:npti,:)   ! Old ice temperature 
     173      t_su_1d(1:npti)   = MIN( t_su_1d(1:npti), rt0 - ztsu_err )   ! necessary 
    174174      ! 
    175175      !------------- 
     
    177177      !------------- 
    178178      z1_hsu = 1._wp / 0.1_wp ! threshold for the computation of i0 
    179       DO ji = 1, nidx 
     179      DO ji = 1, npti 
    180180         ! --- Computation of i0 --- ! 
    181181         ! i0 describes the fraction of solar radiation which does not contribute 
     
    199199 
    200200      ! --- Transmission/absorption of solar radiation in the ice --- ! 
    201       zradtr_s(1:nidx,0) = zftrice(1:nidx) 
     201      zradtr_s(1:npti,0) = zftrice(1:npti) 
    202202      DO jk = 1, nlay_s 
    203          DO ji = 1, nidx 
     203         DO ji = 1, npti 
    204204            !                             ! radiation transmitted below the layer-th snow layer 
    205205            zradtr_s(ji,jk) = zradtr_s(ji,0) * EXP( - zraext_s * zh_s(ji) * REAL(jk) ) 
     
    209209      END DO 
    210210          
    211       zradtr_i(1:nidx,0) = zradtr_s(1:nidx,nlay_s) * isnow(1:nidx) + zftrice(1:nidx) * ( 1._wp - isnow(1:nidx) ) 
     211      zradtr_i(1:npti,0) = zradtr_s(1:npti,nlay_s) * isnow(1:npti) + zftrice(1:npti) * ( 1._wp - isnow(1:npti) ) 
    212212      DO jk = 1, nlay_i  
    213          DO ji = 1, nidx 
     213         DO ji = 1, npti 
    214214            !                             ! radiation transmitted below the layer-th ice layer 
    215215            zradtr_i(ji,jk) = zradtr_i(ji,0) * EXP( - rn_kappa_i * zh_i(ji) * REAL(jk) ) 
     
    219219      END DO 
    220220 
    221       ftr_ice_1d(1:nidx) = zradtr_i(1:nidx,nlay_i)   ! record radiation transmitted below the ice 
     221      ftr_ice_1d(1:npti) = zradtr_i(1:npti,nlay_i)   ! record radiation transmitted below the ice 
    222222      ! 
    223223      iconv    =  0          ! number of iterations 
     
    228228         iconv = iconv + 1 
    229229         ! 
    230          ztib(1:nidx,:) = t_i_1d(1:nidx,:) 
    231          ztsb(1:nidx,:) = t_s_1d(1:nidx,:) 
     230         ztib(1:npti,:) = t_i_1d(1:npti,:) 
     231         ztsb(1:npti,:) = t_s_1d(1:npti,:) 
    232232         ! 
    233233         !-------------------------------- 
     
    236236         IF( ln_cndi_U64 ) THEN         !-- Untersteiner (1964) formula: k = k0 + beta.S/T 
    237237            ! 
    238             DO ji = 1, nidx 
     238            DO ji = 1, npti 
    239239               ztcond_i(ji,0)      = rcdic + zbeta * sz_i_1d(ji,1)      / MIN( -epsi10, t_i_1d(ji,1) - rt0 ) 
    240240               ztcond_i(ji,nlay_i) = rcdic + zbeta * sz_i_1d(ji,nlay_i) / MIN( -epsi10, t_bo_1d(ji)  - rt0 ) 
    241241            END DO 
    242242            DO jk = 1, nlay_i-1 
    243                DO ji = 1, nidx 
     243               DO ji = 1, npti 
    244244                  ztcond_i(ji,jk) = rcdic + zbeta * 0.5_wp * ( sz_i_1d(ji,jk) + sz_i_1d(ji,jk+1) ) /  & 
    245245                     &                      MIN( -epsi10, 0.5_wp * (t_i_1d(ji,jk) + t_i_1d(ji,jk+1)) - rt0 ) 
     
    249249         ELSEIF( ln_cndi_P07 ) THEN     !-- Pringle et al formula: k = k0 + beta1.S/T - beta2.T 
    250250            ! 
    251             DO ji = 1, nidx 
     251            DO ji = 1, npti 
    252252               ztcond_i(ji,0)      = rcdic + 0.09_wp * sz_i_1d(ji,1) / MIN( -epsi10, t_i_1d(ji,1) - rt0 )  & 
    253253                  &                        - 0.011_wp * ( t_i_1d(ji,1) - rt0 ) 
     
    256256            END DO 
    257257            DO jk = 1, nlay_i-1 
    258                DO ji = 1, nidx 
     258               DO ji = 1, npti 
    259259                  ztcond_i(ji,jk) = rcdic + 0.09_wp * 0.5_wp * ( sz_i_1d(ji,jk) + sz_i_1d(ji,jk+1) ) /          & 
    260260                     &                     MIN( -epsi10, 0.5_wp * (t_i_1d(ji,jk) + t_i_1d(ji,jk+1)) - rt0 )   & 
     
    264264            ! 
    265265         ENDIF 
    266          ztcond_i(1:nidx,:) = MAX( zkimin, ztcond_i(1:nidx,:) )         
     266         ztcond_i(1:npti,:) = MAX( zkimin, ztcond_i(1:npti,:) )         
    267267         ! 
    268268         !--- G(he) : enhancement of thermal conductivity in mono-category case 
     
    270270         ! Used in mono-category case only to simulate an ITD implicitly 
    271271         ! Fichefet and Morales Maqueda, JGR 1997 
    272          zghe(1:nidx) = 1._wp 
     272         zghe(1:npti) = 1._wp 
    273273         ! 
    274274         SELECT CASE ( nn_monocat ) 
     
    277277 
    278278            zepsilon = 0.1_wp 
    279             DO ji = 1, nidx 
     279            DO ji = 1, npti 
    280280               zcnd_i = SUM( ztcond_i(ji,:) ) / REAL( nlay_i+1, wp )                             ! Mean sea ice thermal conductivity 
    281281               zhe = ( rn_cnd_s * h_i_1d(ji) + zcnd_i * h_s_1d(ji) ) / ( rn_cnd_s + zcnd_i )   ! Effective thickness he (zhe) 
     
    292292         !--- Snow 
    293293         DO jk = 0, nlay_s-1 
    294             DO ji = 1, nidx 
     294            DO ji = 1, npti 
    295295               zkappa_s(ji,jk) = zghe(ji) * rn_cnd_s * z1_h_s(ji) 
    296296            END DO 
    297297         END DO 
    298          DO ji = 1, nidx   ! Snow-ice interface 
     298         DO ji = 1, npti   ! Snow-ice interface 
    299299            zfac = 0.5_wp * ( ztcond_i(ji,0) * zh_s(ji) + rn_cnd_s * zh_i(ji) ) 
    300300            IF( zfac > epsi10 ) THEN 
     
    307307         !--- Ice 
    308308         DO jk = 0, nlay_i 
    309             DO ji = 1, nidx 
     309            DO ji = 1, npti 
    310310               zkappa_i(ji,jk) = zghe(ji) * ztcond_i(ji,jk) * z1_h_i(ji) 
    311311            END DO 
    312312         END DO 
    313          DO ji = 1, nidx   ! Snow-ice interface 
     313         DO ji = 1, npti   ! Snow-ice interface 
    314314            zkappa_i(ji,0) = zkappa_s(ji,nlay_s) * isnow(ji) + zkappa_i(ji,0) * ( 1._wp - isnow(ji) ) 
    315315         END DO 
     
    319319         !-------------------------------------- 
    320320         DO jk = 1, nlay_i 
    321             DO ji = 1, nidx 
     321            DO ji = 1, npti 
    322322               zcpi = cpic + zgamma * sz_i_1d(ji,jk) / MAX( ( t_i_1d(ji,jk) - rt0 ) * ( ztiold(ji,jk) - rt0 ), epsi10 ) 
    323323               zeta_i(ji,jk) = rdt_ice * r1_rhoic * z1_h_i(ji) / MAX( epsi10, zcpi )  
     
    326326 
    327327         DO jk = 1, nlay_s 
    328             DO ji = 1, nidx 
     328            DO ji = 1, npti 
    329329               zeta_s(ji,jk) = rdt_ice * r1_rhosn * r1_cpic * z1_h_s(ji) 
    330330            END DO 
     
    335335         !---------------------------- 
    336336         IF ( ln_dqns_i ) THEN  
    337             DO ji = 1, nidx 
     337            DO ji = 1, npti 
    338338               ! update of the non solar flux according to the update in T_su 
    339339               qns_ice_1d(ji) = qns_ice_1d(ji) + dqns_ice_1d(ji) * ( t_su_1d(ji) - ztsub(ji) ) 
     
    341341         ENDIF 
    342342 
    343          DO ji = 1, nidx 
     343         DO ji = 1, npti 
    344344            zfnet(ji) = zfsw(ji) + qns_ice_1d(ji) ! incoming = net absorbed solar radiation + non solar total flux (LWup, LWdw, SH, LH) 
    345345         END DO 
     
    354354 
    355355         !!ice interior terms (top equation has the same form as the others) 
    356          ztrid   (1:nidx,:,:) = 0._wp 
    357          zindterm(1:nidx,:)   = 0._wp 
    358          zindtbis(1:nidx,:)   = 0._wp 
    359          zdiagbis(1:nidx,:)   = 0._wp 
     356         ztrid   (1:npti,:,:) = 0._wp 
     357         zindterm(1:npti,:)   = 0._wp 
     358         zindtbis(1:npti,:)   = 0._wp 
     359         zdiagbis(1:npti,:)   = 0._wp 
    360360 
    361361         DO jm = nlay_s + 2, nlay_s + nlay_i  
    362             DO ji = 1, nidx 
     362            DO ji = 1, npti 
    363363               jk = jm - nlay_s - 1 
    364364               ztrid(ji,jm,1)  = - zeta_i(ji,jk) * zkappa_i(ji,jk-1) 
     
    370370 
    371371         jm =  nlay_s + nlay_i + 1 
    372          DO ji = 1, nidx 
     372         DO ji = 1, npti 
    373373            !!ice bottom term 
    374374            ztrid(ji,jm,1)  = - zeta_i(ji,nlay_i)*zkappa_i(ji,nlay_i-1)    
     
    380380 
    381381 
    382          DO ji = 1, nidx 
     382         DO ji = 1, npti 
    383383            !                               !---------------------! 
    384384            IF ( h_s_1d(ji) > 0.0 ) THEN   !  snow-covered cells ! 
     
    497497         jm_maxt = 0 
    498498         jm_mint = nlay_i+5 
    499          DO ji = 1, nidx 
     499         DO ji = 1, npti 
    500500            jm_mint = MIN(jm_min(ji),jm_mint) 
    501501            jm_maxt = MAX(jm_max(ji),jm_maxt) 
     
    503503 
    504504         DO jk = jm_mint+1, jm_maxt 
    505             DO ji = 1, nidx 
     505            DO ji = 1, npti 
    506506               jm = min(max(jm_min(ji)+1,jk),jm_max(ji)) 
    507507               zdiagbis(ji,jm) = ztrid(ji,jm,2)  - ztrid(ji,jm,1) * ztrid(ji,jm-1,3)  / zdiagbis(ji,jm-1) 
     
    510510         END DO 
    511511 
    512          DO ji = 1, nidx 
     512         DO ji = 1, npti 
    513513            ! ice temperatures 
    514514            t_i_1d(ji,nlay_i) = zindtbis(ji,jm_max(ji)) / zdiagbis(ji,jm_max(ji)) 
     
    516516 
    517517         DO jm = nlay_i + nlay_s, nlay_s + 2, -1 
    518             DO ji = 1, nidx 
     518            DO ji = 1, npti 
    519519               jk    =  jm - nlay_s - 1 
    520520               t_i_1d(ji,jk) = ( zindtbis(ji,jm) - ztrid(ji,jm,3) * t_i_1d(ji,jk+1) ) / zdiagbis(ji,jm) 
     
    522522         END DO 
    523523 
    524          DO ji = 1, nidx 
     524         DO ji = 1, npti 
    525525            ! snow temperatures       
    526526            IF( h_s_1d(ji) > 0._wp ) THEN 
     
    542542         ! zdti_max is a measure of error, it has to be under zdti_bnd 
    543543         zdti_max = 0._wp 
    544          DO ji = 1, nidx 
     544         DO ji = 1, npti 
    545545            t_su_1d(ji) = MAX( MIN( t_su_1d(ji) , rt0 ) , rt0 - 100._wp ) 
    546546            zdti_max = MAX( zdti_max, ABS( t_su_1d(ji) - ztsub(ji) ) )      
     
    548548 
    549549         DO jk  =  1, nlay_s 
    550             DO ji = 1, nidx 
     550            DO ji = 1, npti 
    551551               t_s_1d(ji,jk) = MAX( MIN( t_s_1d(ji,jk), rt0 ), rt0 - 100._wp ) 
    552552               zdti_max = MAX( zdti_max, ABS( t_s_1d(ji,jk) - ztsb(ji,jk) ) ) 
     
    555555 
    556556         DO jk  =  1, nlay_i 
    557             DO ji = 1, nidx 
     557            DO ji = 1, npti 
    558558               ztmelt_i      = -tmut * sz_i_1d(ji,jk) + rt0  
    559559               t_i_1d(ji,jk) =  MAX( MIN( t_i_1d(ji,jk), ztmelt_i ), rt0 - 100._wp ) 
     
    576576      ! 10) Fluxes at the interfaces 
    577577      !----------------------------- 
    578       DO ji = 1, nidx 
     578      DO ji = 1, npti 
    579579         !                                ! surface ice conduction flux 
    580580         fc_su(ji)   =  -           isnow(ji)   * zkappa_s(ji,0) * zg1s * (t_s_1d(ji,1) - t_su_1d(ji))   & 
     
    589589      ! --- diagnose the change in non-solar flux due to surface temperature change --- ! 
    590590      IF ( ln_dqns_i ) THEN 
    591          DO ji = 1, nidx 
     591         DO ji = 1, npti 
    592592            hfx_err_dif_1d(ji) = hfx_err_dif_1d(ji) - ( qns_ice_1d(ji)  - zqns_ice_b(ji) ) * a_i_1d(ji)  
    593593         END DO 
     
    597597      !     hfx_dif = Heat flux used to warm/cool ice in W.m-2 
    598598      !     zhfx_err = correction on the diagnosed heat flux due to non-convergence of the algorithm used to solve heat equation 
    599       DO ji = 1, nidx 
     599      DO ji = 1, npti 
    600600         zdq = - zq_ini(ji) + ( SUM( e_i_1d(ji,1:nlay_i) ) * h_i_1d(ji) * r1_nlay_i +  & 
    601601            &                   SUM( e_s_1d(ji,1:nlay_s) ) * h_s_1d(ji) * r1_nlay_s ) 
     
    614614 
    615615      ! --- Diagnostics SIMIP --- ! 
    616       DO ji = 1, nidx 
     616      DO ji = 1, npti 
    617617         !--- Conduction fluxes (positive downwards) 
    618618         diag_fc_bo_1d(ji) = diag_fc_bo_1d(ji) + fc_bo_i(ji) * a_i_1d(ji) / at_i_1d(ji) 
     
    645645      ! 
    646646      DO jk = 1, nlay_i             ! Sea ice energy of melting 
    647          DO ji = 1, nidx 
     647         DO ji = 1, npti 
    648648            ztmelts      = - tmut  * sz_i_1d(ji,jk) 
    649649            t_i_1d(ji,jk) = MIN( t_i_1d(ji,jk), ztmelts + rt0 ) ! Force t_i_1d to be lower than melting point 
     
    655655      END DO 
    656656      DO jk = 1, nlay_s             ! Snow energy of melting 
    657          DO ji = 1, nidx 
     657         DO ji = 1, npti 
    658658            e_s_1d(ji,jk) = rhosn * ( cpic * ( rt0 - t_s_1d(ji,jk) ) + lfus ) 
    659659         END DO 
Note: See TracChangeset for help on using the changeset viewer.