Changeset 14735


Ignore:
Timestamp:
2021-04-20T18:41:39+02:00 (3 weeks ago)
Author:
dancopsey
Message:

Allow deposition alongside sublimation

Location:
NEMO/branches/UKMO/NEMO_4.0.4_penetrating_solar/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.4_penetrating_solar/src/ICE/icethd_dh.F90

    r14075 r14735  
    251251      END DO 
    252252 
    253       ! Snow sublimation  
    254       !----------------- 
    255       ! qla_ice is always >=0 (upwards), heat goes to the atmosphere, therefore snow sublimates 
     253      ! Snow sublimation and deposition 
     254      !-------------------------------- 
     255      ! when evap_ice_1d > 0 (upwards) snow sublimates and snow thickness decreases 
     256      ! when evap_ice_1d < 0 (downwards) deposition occurs and snow thickness increases 
    256257      !    comment: not counted in mass/heat exchange in iceupdate.F90 since this is an exchange with atm. (not ocean) 
    257258      zdeltah(1:npti,:) = 0._wp 
    258259      DO ji = 1, npti 
    259          IF( evap_ice_1d(ji) > 0._wp ) THEN 
    260             ! 
    261             zdh_s_sub (ji)   = MAX( - h_s_1d(ji) , - evap_ice_1d(ji) * r1_rhos * rdt_ice ) 
    262             zevap_rema(ji)   = evap_ice_1d(ji) * rdt_ice + zdh_s_sub(ji) * rhos   ! remaining evap in kg.m-2 (used for ice melting later on) 
    263             zdeltah   (ji,1) = MAX( zdh_s_sub(ji), - zdh_s_pre(ji) ) 
    264              
    265             hfx_sub_1d    (ji) = hfx_sub_1d(ji) + &   ! Heat flux by sublimation [W.m-2], < 0 (sublimate snow that had fallen, then pre-existing snow) 
    266                &                 ( zdeltah(ji,1) * zqprec(ji) + ( zdh_s_sub(ji) - zdeltah(ji,1) ) * e_s_1d(ji,1) )  & 
    267                &                 * a_i_1d(ji) * r1_rdtice 
    268             wfx_snw_sub_1d(ji) = wfx_snw_sub_1d(ji) - rhos * a_i_1d(ji) * zdh_s_sub(ji) * r1_rdtice   ! Mass flux by sublimation 
    269              
    270             ! new snow thickness 
    271             h_s_1d(ji)    =  MAX( 0._wp , h_s_1d(ji) + zdh_s_sub(ji) ) 
    272             ! update precipitations after sublimation and correct sublimation 
    273             zdh_s_pre(ji) = zdh_s_pre(ji) + zdeltah(ji,1) 
    274             zdh_s_sub(ji) = zdh_s_sub(ji) - zdeltah(ji,1) 
    275             ! 
    276          ELSE 
    277             ! 
    278             zdh_s_sub (ji) = 0._wp 
    279             zevap_rema(ji) = 0._wp 
    280             ! 
    281          ENDIF 
     260         ! 
     261         zdh_s_sub (ji)   = MAX( - h_s_1d(ji) , - evap_ice_1d(ji) * r1_rhos * rdt_ice ) 
     262         zevap_rema(ji)   = evap_ice_1d(ji) * rdt_ice + zdh_s_sub(ji) * rhos   ! remaining evap in kg.m-2 (used for ice melting later on) 
     263         zdeltah   (ji,1) = MAX( zdh_s_sub(ji), - zdh_s_pre(ji) ) 
     264 
     265         hfx_sub_1d    (ji) = hfx_sub_1d(ji) + &   ! Heat flux by sublimation [W.m-2], < 0 (sublimate snow that had fallen, then pre-existing snow) 
     266            &                 ( zdeltah(ji,1) * zqprec(ji) + ( zdh_s_sub(ji) - zdeltah(ji,1) ) * e_s_1d(ji,1) )  & 
     267            &                 * a_i_1d(ji) * r1_rdtice 
     268         wfx_snw_sub_1d(ji) = wfx_snw_sub_1d(ji) - rhos * a_i_1d(ji) * zdh_s_sub(ji) * r1_rdtice   ! Mass flux by sublimation 
     269 
     270         ! new snow thickness 
     271         h_s_1d(ji)    =  MAX( 0._wp , h_s_1d(ji) + zdh_s_sub(ji) ) 
     272         ! update precipitations after sublimation and correct sublimation 
     273         zdh_s_pre(ji) = zdh_s_pre(ji) + zdeltah(ji,1) 
     274         zdh_s_sub(ji) = zdh_s_sub(ji) - zdeltah(ji,1) 
     275         ! 
    282276      END DO 
    283277       
  • NEMO/branches/UKMO/NEMO_4.0.4_penetrating_solar/src/OCE/SBC/sbccpl.F90

    r14616 r14735  
    19641964         zqevap_ice(:,:,jl) = -zevap_ice(:,:,jl) * ( ( rt0 - t1_ice(:,:,jl) ) * rcpi + rLfus ) 
    19651965 
    1966          ! This enthalpy change should always be negative as only positive sublimation is used (energy loss from the ice). 
    1967          WHERE( zqevap_ice(:,:,jl) > 0._wp ) zqevap_ice(:,:,jl) = 0._wp 
    19681966      END DO 
    19691967 
Note: See TracChangeset for help on using the changeset viewer.