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 5078 for branches/2015/dev_r5044_CNRS_LIM3CLEAN/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90 – NEMO

Ignore:
Timestamp:
2015-02-11T16:15:11+01:00 (9 years ago)
Author:
clem
Message:

LIM3: cosmetic changes to increase readability and performance

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5044_CNRS_LIM3CLEAN/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90

    r5070 r5078  
    145145      DO jk = 1, nlay_i 
    146146         DO ji = kideb, kiut 
    147             h_i_old (ji,jk) = ht_i_1d(ji) / REAL( nlay_i ) 
     147            h_i_old (ji,jk) = ht_i_1d(ji) * r1_nlay_i 
    148148            qh_i_old(ji,jk) = q_i_1d(ji,jk) * h_i_old(ji,jk) 
    149149         ENDDO 
     
    188188      ! 
    189189      DO ji = kideb, kiut      
    190          zh_s(ji) = ht_s_1d(ji) / REAL( nlay_s ) 
     190         zh_s(ji) = ht_s_1d(ji) * r1_nlay_s 
    191191      END DO 
    192192      ! 
     
    199199      DO jk = 1, nlay_i 
    200200         DO ji = kideb, kiut 
    201             zh_i(ji,jk) = ht_i_1d(ji) / REAL( nlay_i ) 
     201            zh_i(ji,jk) = ht_i_1d(ji) * r1_nlay_i 
    202202            zqh_i(ji)   = zqh_i(ji) + q_i_1d(ji,jk) * zh_i(ji,jk) 
    203203         END DO 
     
    228228         ! thickness change 
    229229         zcoeff = ( 1._wp - ( 1._wp - at_i_1d(ji) )**rn_betas ) / at_i_1d(ji)  
    230          zdh_s_pre(ji) = zcoeff * sprecip_1d(ji) * rdt_ice / rhosn 
     230         zdh_s_pre(ji) = zcoeff * sprecip_1d(ji) * rdt_ice * r1_rhosn 
    231231         ! enthalpy of the precip (>0, J.m-3) (tatm_ice is now in K) 
    232232         zqprec   (ji) = rhosn * ( cpic * ( rtt - MIN( tatm_ice_1d(ji), rt0_snow) ) + lfus )    
     
    255255         zq_su (ji) = MAX( 0._wp , zq_su (ji) + zdh_s_mel(ji) * zqprec(ji) )       
    256256         ht_s_1d(ji) = MAX( 0._wp , ht_s_1d(ji) + zdh_s_mel(ji) ) 
    257          zh_s  (ji) = ht_s_1d(ji) / REAL( nlay_s ) 
     257         zh_s  (ji) = ht_s_1d(ji) * r1_nlay_s 
    258258 
    259259         ENDIF 
     
    311311      DO ji = kideb, kiut 
    312312         dh_s_tot(ji)   = zdh_s_mel(ji) + zdh_s_pre(ji) + zdh_s_sub(ji) 
    313          zh_s(ji)       = ht_s_1d(ji) / REAL( nlay_s ) 
     313         zh_s(ji)       = ht_s_1d(ji) * r1_nlay_s 
    314314      END DO ! ji 
    315315 
     
    335335      DO jk = 1, nlay_i 
    336336         DO ji = kideb, kiut  
    337             zEi            = - q_i_1d(ji,jk) / rhoic                ! Specific enthalpy of layer k [J/kg, <0] 
     337            zEi            = - q_i_1d(ji,jk) * r1_rhoic             ! Specific enthalpy of layer k [J/kg, <0] 
    338338 
    339339            ztmelts        = - tmut * s_i_1d(ji,jk) + rtt           ! Melting point of layer k [K] 
     
    345345            zfmdt          = - zq_su(ji) / zdE                     ! Mass flux to the ocean [kg/m2, >0] 
    346346 
    347             zdeltah(ji,jk) = - zfmdt / rhoic                       ! Melt of layer jk [m, <0] 
     347            zdeltah(ji,jk) = - zfmdt * r1_rhoic                    ! Melt of layer jk [m, <0] 
    348348 
    349349            zdeltah(ji,jk) = MIN( 0._wp , MAX( zdeltah(ji,jk) , - zh_i(ji,jk) ) )    ! Melt of layer jk cannot exceed the layer thickness [m, <0] 
     
    506506               IF( t_i_1d(ji,jk) >= ztmelts ) THEN !!! Internal melting 
    507507 
    508                   zEi               = - q_i_1d(ji,jk) / rhoic        ! Specific enthalpy of melting ice (J/kg, <0) 
     508                  zEi               = - q_i_1d(ji,jk) * r1_rhoic    ! Specific enthalpy of melting ice (J/kg, <0) 
    509509 
    510510                  !!zEw               = rcp * ( t_i_1d(ji,jk) - rtt )  ! Specific enthalpy of meltwater at T = t_i_1d (J/kg, <0) 
     
    535535               ELSE                               !!! Basal melting 
    536536 
    537                   zEi               = - q_i_1d(ji,jk) / rhoic ! Specific enthalpy of melting ice (J/kg, <0) 
    538  
    539                   zEw               = rcp * ( ztmelts - rtt )! Specific enthalpy of meltwater (J/kg, <0) 
    540  
    541                   zdE               = zEi - zEw              ! Specific enthalpy difference   (J/kg, <0) 
    542  
    543                   zfmdt             = - zq_bo(ji) / zdE  ! Mass flux x time step (kg/m2, >0) 
    544  
    545                   zdeltah(ji,jk)    = - zfmdt / rhoic        ! Gross thickness change 
     537                  zEi               = - q_i_1d(ji,jk) * r1_rhoic ! Specific enthalpy of melting ice (J/kg, <0) 
     538 
     539                  zEw               = rcp * ( ztmelts - rtt )    ! Specific enthalpy of meltwater (J/kg, <0) 
     540 
     541                  zdE               = zEi - zEw                  ! Specific enthalpy difference   (J/kg, <0) 
     542 
     543                  zfmdt             = - zq_bo(ji) / zdE          ! Mass flux x time step (kg/m2, >0) 
     544 
     545                  zdeltah(ji,jk)    = - zfmdt * r1_rhoic         ! Gross thickness change 
    546546 
    547547                  zdeltah(ji,jk)    = MIN( 0._wp , MAX( zdeltah(ji,jk), - zh_i(ji,jk) ) ) ! bound thickness change 
     
    627627         ! Salinity of snow ice 
    628628         ii = MOD( npb(ji) - 1, jpi ) + 1 ; ij = ( npb(ji) - 1 ) / jpi + 1 
    629          zs_snic = zswitch_sal * sss_m(ii,ij) * ( rhoic - rhosn ) / rhoic + ( 1. - zswitch_sal ) * sm_i_1d(ji) 
     629         zs_snic = zswitch_sal * sss_m(ii,ij) * ( rhoic - rhosn ) * r1_rhoic + ( 1. - zswitch_sal ) * sm_i_1d(ji) 
    630630 
    631631         ! entrapment during snow ice formation 
Note: See TracChangeset for help on using the changeset viewer.