Ignore:
Timestamp:
2020-02-28T11:57:10+01:00 (12 months ago)
Author:
dancopsey
Message:
  • Make meltponds have a maximum size.
  • Make meltponds leak into the ocean.
  • Make meltpond lids melt at the same rate as the pond underneath.
  • Make meltpond available area proportional to the total sea ice fraction (not category fraction).
File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src/ICE/icethd_dh.F90

    r11715 r12484  
    2424   USE lib_mpp        ! MPP library 
    2525   USE lib_fortran    ! fortran utilities (glob_sum + no signed zero) 
     26   USE icethd_pnd, ONLY : a_pnd_avail 
    2627    
    2728   IMPLICIT NONE 
     
    9899      REAL(wp), DIMENSION(jpij,nlay_i) ::   zh_i      ! ice layer thickness 
    99100      REAL(wp), DIMENSION(jpij,nlay_i) ::   zdeltah 
     101      REAL(wp), DIMENSION(jpij,nlay_i) ::   zdeltah_pnd  ! Change in thickness due to melting into ponds 
    100102      INTEGER , DIMENSION(jpij,nlay_i) ::   icount    ! number of layers vanished by melting  
    101103 
     
    112114         CASE( 2 )       ;   zswitch_sal = 1._wp   ! varying salinity profile 
    113115      END SELECT 
     116 
     117      ! Initialise fraction of sea ice available for melt ponding 
     118      DO ji = 1, npti 
     119         a_pnd_avail_1d(ji) = a_pnd_avail * at_i_1d(ji) 
     120      END DO 
    114121 
    115122      ! initialize layer thicknesses and enthalpies 
     
    242249               zdeltah  (ji,jk) = MAX( zdeltah(ji,jk) , - zh_s(ji,jk) )                   ! bound melting 
    243250               zdh_s_mel(ji)    = zdh_s_mel(ji) + zdeltah(ji,jk) 
     251               zdeltah_pnd(ji,jk) = zdeltah  (ji,jk) * a_pnd_avail_1d(ji) 
    244252                
    245253               hfx_snw_1d(ji)     = hfx_snw_1d(ji)     - zdeltah(ji,jk) * a_i_1d(ji) * e_s_1d (ji,jk) * r1_rdtice   ! heat used to melt snow(W.m-2, >0) 
     
    248256               ! updates available heat + thickness 
    249257               dh_s_mlt(ji)    = dh_s_mlt(ji) + zdeltah(ji,jk) 
     258               dh_s_pnd(ji)    = dh_s_pnd(ji) + zdeltah_pnd(ji,jk)                ! Cumulate surface melt on areas contributing to melt ponds 
    250259               zq_top  (ji)    = MAX( 0._wp , zq_top(ji) + zdeltah(ji,jk) * e_s_1d(ji,jk) ) 
    251260               h_s_1d  (ji)    = MAX( 0._wp , h_s_1d(ji) + zdeltah(ji,jk) ) 
     
    343352                
    344353               zdeltah(ji,jk) = - zfmdt * r1_rhoi                     ! Melt of layer jk [m, <0] 
     354               zdeltah_pnd(ji,jk) = - zfmdt * r1_rhoi * a_pnd_avail_1d(ji)                          ! Melt of layer jk [m, <0] into meltponds 
    345355                
    346356               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] 
     
    349359                
    350360               dh_i_sum(ji)   = dh_i_sum(ji) + zdeltah(ji,jk)         ! Cumulate surface melt 
     361               dh_i_pnd(ji)   = dh_i_pnd(ji) + zdeltah_pnd(ji,jk)      ! Cumulate surface melt on areas contributing to melt ponds 
    351362                
    352363               zfmdt          = - rhoi * zdeltah(ji,jk)               ! Recompute mass flux [kg/m2, >0] 
Note: See TracChangeset for help on using the changeset viewer.