Changeset 12686


Ignore:
Timestamp:
2020-04-06T11:56:20+02:00 (7 months ago)
Author:
dancopsey
Message:
  • We don't need maximum outflow when reducing pond width or depth.
    • Move code changes in sbccpl to avoid conflicts.
Location:
NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src
Files:
2 edited

Legend:

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

    r12605 r12686  
    133133      REAL(wp), PARAMETER ::   zpnd_aspect = 0.8_wp   ! pond aspect ratio 
    134134      REAL(wp), PARAMETER ::   zTp         = -2._wp   ! reference temperature 
    135       REAL(wp), PARAMETER ::   max_h_diff_s = -1.0E-6 ! Maximum meltpond depth change due to leaking or overflow (m s-1) 
    136135      REAL(wp), PARAMETER ::   pnd_lid_max = 0.015_wp ! pond lid thickness above which the ponds disappear from the albedo calculation 
    137136      REAL(wp), PARAMETER ::   pnd_lid_min = 0.005_wp ! pond lid thickness below which the full pond area is used in the albedo calculation 
     
    149148      REAL(wp) ::   lh_ip_end        ! Lid thickness at end of timestep (temporary variable) 
    150149      REAL(wp) ::   zdh_frz          ! Amount of melt pond that freezes (m) 
    151       REAL(wp) ::   v_ip_old         ! Pond volume before leaking back to the ocean 
    152       REAL(wp) ::   dh_ip_over       ! Pond thickness change due to overflow or leaking 
     150      REAL(wp) ::   dh_ip_over       ! Pond thickness change due to leaking 
    153151      REAL(wp) ::   dh_i_pndleak     ! Grid box mean change in water depth due to leaking back to the ocean 
    154152      REAL(wp) ::   h_gravity_head   ! Height above sea level of the top of the melt pond 
     
    168166      z1_Tp          = 1._wp / zTp  
    169167      z1_rhoi        = 1._wp / rhoi 
    170       max_h_diff_ts  = max_h_diff_s * rdt_ice 
    171168 
    172169      ! Define time-independent field for use in refreezing 
     
    266263               ! If pond area exceeds zfr_mlt * a_i_1d(ji) then reduce the pond volume 
    267264               IF ( a_ip_1d(ji) > zfr_mlt * a_i_1d(ji) ) THEN 
    268                    v_ip_old = v_ip_1d(ji)   ! Save original volume before leak for future use 
    269                    dh_ip_over = zpnd_aspect * zfr_mlt - h_ip_1d(ji)   ! This will be a negative number 
    270                    dh_ip_over = MAX(dh_ip_over,max_h_diff_ts)                       ! Apply a limit 
    271                    h_ip_1d(ji) = MAX(0._wp, h_ip_1d(ji) + dh_ip_over) 
     265                   h_ip_1d(ji) = zpnd_aspect * zfr_mlt 
    272266                   a_ip_frac_1d(ji) = h_ip_1d(ji) / zpnd_aspect 
    273267                   a_ip_1d(ji) = a_ip_frac_1d(ji) * a_i_1d(ji) 
     
    277271               ! If pond depth exceeds half the ice thickness then reduce the pond volume 
    278272               IF ( h_ip_1d(ji) > 0.5_wp * h_i_1d(ji) ) THEN 
    279                    v_ip_old = v_ip_1d(ji)   ! Save original volume before leak for future use 
    280                    dh_ip_over = 0.5_wp * h_i_1d(ji) - h_ip_1d(ji)                ! This will be a negative number 
    281                    dh_ip_over = MAX(dh_ip_over,max_h_diff_ts)                       ! Apply a limit 
    282                    h_ip_1d(ji) = MAX(0._wp, h_ip_1d(ji) + dh_ip_over) 
     273                   h_ip_1d(ji) = 0.5_wp * h_i_1d(ji) 
    283274                   a_ip_frac_1d(ji) = h_ip_1d(ji) / zpnd_aspect 
    284275                   a_ip_1d(ji) = a_ip_frac_1d(ji) * a_i_1d(ji) 
     
    309300                   dh_ip_over = MIN(dh_ip_over, 0._wp)      ! Make sure it is negative 
    310301 
    311                    v_ip_old = v_ip_1d(ji)   ! Save original volume before leak for future use 
    312                    dh_ip_over = MAX(dh_ip_over,max_h_diff_ts)                       ! Apply a limit 
    313302                   h_ip_1d(ji) = MAX(0._wp, h_ip_1d(ji) + dh_ip_over) 
    314303                   a_ip_frac_1d(ji) = h_ip_1d(ji) / zpnd_aspect 
  • NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src/OCE/SBC/sbccpl.F90

    r12566 r12686  
    263263      NAMELIST/namsbc_cpl/  sn_snd_temp  , sn_snd_alb   , sn_snd_thick, sn_snd_crt   , sn_snd_co2  ,   &  
    264264         &                  sn_snd_ttilyr, sn_snd_cond  , sn_snd_mpnd , sn_snd_sstfrz, sn_snd_thick1,  &  
     265         &                  ln_scale_ice_fluxes,                                                       & 
    265266         &                  sn_snd_ifrac , sn_snd_crtw  , sn_snd_wlev , sn_rcv_hsig  , sn_rcv_phioc,   &  
    266267         &                  sn_rcv_w10m  , sn_rcv_taumod, sn_rcv_tau  , sn_rcv_dqnsdt, sn_rcv_qsr  ,   &  
     
    269270         &                  sn_rcv_iceflx, sn_rcv_co2   , nn_cplmodel , ln_usecplmask, sn_rcv_mslp ,   & 
    270271         &                  sn_rcv_icb   , sn_rcv_isf   , sn_rcv_wfreq , sn_rcv_tauw, nn_cats_cpl  ,   & 
    271          &                  sn_rcv_ts_ice, ln_scale_ice_fluxes 
     272         &                  sn_rcv_ts_ice 
    272273 
    273274      !!--------------------------------------------------------------------- 
     
    292293      ENDIF 
    293294      IF( lwp .AND. ln_cpl ) THEN                        ! control print 
     295         WRITE(numout,*)'  ln_scale_ice_fluxes                 = ', ln_scale_ice_fluxes 
    294296         WRITE(numout,*)'  received fields (mutiple ice categogies)' 
    295297         WRITE(numout,*)'      10m wind module                 = ', TRIM(sn_rcv_w10m%cldes  ), ' (', TRIM(sn_rcv_w10m%clcat  ), ')' 
     
    343345         WRITE(numout,*)'  ln_usecplmask                       = ', ln_usecplmask 
    344346         WRITE(numout,*)'  nn_cats_cpl                         = ', nn_cats_cpl 
    345          WRITE(numout,*)'  ln_scale_ice_fluxes                 = ', ln_scale_ice_fluxes 
    346347      ENDIF 
    347348 
Note: See TracChangeset for help on using the changeset viewer.