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 11082 for NEMO/branches/UKMO/NEMO_4.0_GO8_package/src/ICE/icethd.F90 – NEMO

Ignore:
Timestamp:
2019-06-06T16:21:52+02:00 (5 years ago)
Author:
davestorkey
Message:

UKMO/NEMO_4.0_GO8_package : update to be relative to 11081 of NEMO_4.0_mirror.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0_GO8_package/src/ICE/icethd.F90

    r10888 r11082  
    102102      ENDIF 
    103103       
    104       CALL ice_var_glo2eqv 
    105  
    106104      !---------------------------------------------! 
    107105      ! computation of friction velocity at T points 
     
    162160            qlead(ji,jj) = MIN( 0._wp , zqld - ( qsb_ice_bot(ji,jj) * at_i(ji,jj) * rdt_ice ) - zqfr ) 
    163161 
    164             ! If there is ice and leads are warming, then transfer energy from the lead budget and use it for bottom melting  
    165             IF( zqld > 0._wp ) THEN 
     162            ! If there is ice and leads are warming => transfer energy from the lead budget and use it for bottom melting  
     163            ! If the grid cell is fully covered by ice (no leads) => transfer energy from the lead budget to the ice bottom budget 
     164            IF( ( zqld >= 0._wp .AND. at_i(ji,jj) > 0._wp ) .OR. at_i(ji,jj) >= (1._wp - epsi10) ) THEN 
    166165               fhld (ji,jj) = rswitch * zqld * r1_rdtice / MAX( at_i(ji,jj), epsi10 ) ! divided by at_i since this is (re)multiplied by a_i in icethd_dh.F90 
    167166               qlead(ji,jj) = 0._wp 
     
    178177      ! In case we bypass open-water ice formation 
    179178      IF( .NOT. ln_icedO )  qlead(:,:) = 0._wp 
    180       ! In case we bypass growing/melting from top and bottom: we suppose ice is impermeable => ocean is isolated from atmosphere 
     179      ! In case we bypass growing/melting from top and bottom 
    181180      IF( .NOT. ln_icedH ) THEN 
    182          qt_atm_oi  (:,:) = ( 1._wp - at_i_b(:,:) ) * ( qns_oce(:,:) + qsr_oce(:,:) ) + qemp_oce(:,:) 
    183181         qsb_ice_bot(:,:) = 0._wp 
    184182         fhld       (:,:) = 0._wp 
     
    221219            dh_i_sub  (1:npti) = 0._wp ; dh_i_bog(1:npti) = 0._wp 
    222220            dh_snowice(1:npti) = 0._wp ; dh_s_mlt(1:npti) = 0._wp 
    223             ! 
    224             IF( ln_icedH ) THEN                                     ! --- growing/melting --- ! 
    225                               CALL ice_thd_zdf                             ! Ice/Snow Temperature profile 
    226                               CALL ice_thd_dh                              ! Ice/Snow thickness    
    227                               CALL ice_thd_pnd                             ! Melt ponds formation 
    228                               CALL ice_thd_ent( e_i_1d(1:npti,:) )         ! Ice enthalpy remapping 
     221            !                                       
     222                              CALL ice_thd_zdf                      ! --- Ice-Snow temperature --- ! 
     223            ! 
     224            IF( ln_icedH ) THEN                                     ! --- Growing/Melting --- ! 
     225                              CALL ice_thd_dh                           ! Ice-Snow thickness    
     226                              CALL ice_thd_pnd                          ! Melt ponds formation 
     227                              CALL ice_thd_ent( e_i_1d(1:npti,:) )      ! Ice enthalpy remapping 
    229228            ENDIF 
    230             ! 
    231229                              CALL ice_thd_sal( ln_icedS )          ! --- Ice salinity --- !     
    232230            ! 
    233                               CALL ice_thd_temp                     ! --- temperature update --- ! 
     231                              CALL ice_thd_temp                     ! --- Temperature update --- ! 
    234232            ! 
    235233            IF( ln_icedH .AND. ln_virtual_itd ) & 
    236                &              CALL ice_thd_mono                     ! --- extra lateral melting if virtual_itd --- ! 
    237             ! 
    238             IF( ln_icedA )    CALL ice_thd_da                       ! --- lateral melting --- ! 
     234               &              CALL ice_thd_mono                     ! --- Extra lateral melting if virtual_itd --- ! 
     235            ! 
     236            IF( ln_icedA )    CALL ice_thd_da                       ! --- Lateral melting --- ! 
    239237            ! 
    240238                              CALL ice_thd_1d2d( jl, 2 )            ! --- Change units of e_i, e_s from J/m3 to J/m2 --- ! 
    241239            !                                                       ! --- & Move to 2D arrays --- ! 
    242             ! 
    243240         ENDIF 
    244241         ! 
    245242      END DO 
    246  
     243      ! 
    247244      IF( ln_icediachk )   CALL ice_cons_hsm(1, 'icethd', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft) 
    248       ! 
    249                            CALL ice_var_zapsmall           ! --- remove very small ice concentration (<1e-10) --- ! 
    250       !                                                    !     & make sure at_i=SUM(a_i) & ato_i=1 where at_i=0 
    251245      !                    
    252       IF( jpl > 1      )   CALL ice_itd_rem( kt )          ! --- Transport ice between thickness categories --- ! 
    253       ! 
    254       IF( ln_icedO     )   CALL ice_thd_do                 ! --- frazil ice growing in leads --- ! 
     246      IF( jpl > 1  )          CALL ice_itd_rem( kt )                ! --- Transport ice between thickness categories --- ! 
     247      ! 
     248      IF( ln_icedO )          CALL ice_thd_do                       ! --- Frazil ice growth in leads --- ! 
    255249      ! 
    256250      ! controls 
Note: See TracChangeset for help on using the changeset viewer.