Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/cfgs/SHARED/field_def_nemo-ice.xml
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/cfgs/SHARED/field_def_nemo-ice.xml (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/cfgs/SHARED/field_def_nemo-ice.xml (revision 12379)
@@ -180,4 +180,5 @@
+
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/ice.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/ice.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/ice.F90 (revision 12379)
@@ -70,4 +70,5 @@
!! a_ip | - | Ice pond concentration | |
!! v_ip | - | Ice pond volume per unit area| m |
+ !! lh_ip ! lh_ip_1d ! Ice pond lid thickness ! m !
!! |
!!-------------|-------------|---------------------------------|-------|
@@ -334,4 +335,5 @@
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: a_ip_frac !: melt pond volume per ice area
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: h_ip !: melt pond thickness [m]
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: lh_ip !: melt pond lid thickness [m]
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: at_ip !: total melt pond fraction
@@ -447,5 +449,5 @@
ii = ii + 1
- ALLOCATE( a_ip(jpi,jpj,jpl) , v_ip(jpi,jpj,jpl) , a_ip_frac(jpi,jpj,jpl) , h_ip(jpi,jpj,jpl) , STAT = ierr(ii) )
+ ALLOCATE( a_ip(jpi,jpj,jpl) , v_ip(jpi,jpj,jpl) , a_ip_frac(jpi,jpj,jpl) , h_ip(jpi,jpj,jpl), lh_ip(jpi,jpj,jpl) , STAT = ierr(ii) )
ii = ii + 1
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/ice1d.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/ice1d.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/ice1d.F90 (revision 12379)
@@ -129,4 +129,5 @@
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: h_ip_1d !:
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_ip_frac_1d !:
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: lh_ip_1d !: Ice pond lid thickness [m]
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: t_s_1d !: corresponding to the 2D var t_s
@@ -158,4 +159,5 @@
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: a_ip_2d
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: v_ip_2d
+ REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: lh_ip_2d
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: t_su_2d
REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: h_i_2d
@@ -209,5 +211,5 @@
& dh_s_tot(jpij) , dh_i_sum(jpij) , dh_i_itm (jpij) , dh_i_bom(jpij) , dh_i_bog(jpij) , &
& dh_i_sub(jpij) , dh_s_mlt(jpij) , dh_snowice(jpij) , s_i_1d (jpij) , s_i_new (jpij) , &
- & a_ip_1d (jpij) , v_ip_1d (jpij) , v_i_1d (jpij) , v_s_1d (jpij) , &
+ & a_ip_1d (jpij) , v_ip_1d (jpij) , v_i_1d (jpij) , v_s_1d (jpij) , lh_ip_1d(jpij) , &
& h_ip_1d (jpij) , a_ip_frac_1d(jpij) , &
& sv_i_1d (jpij) , oa_i_1d (jpij) , o_i_1d (jpij) , STAT=ierr(ii) )
@@ -227,5 +229,5 @@
ALLOCATE( a_i_2d (jpij,jpl) , a_ib_2d(jpij,jpl) , h_i_2d (jpij,jpl) , h_ib_2d(jpij,jpl) , &
& v_i_2d (jpij,jpl) , v_s_2d (jpij,jpl) , oa_i_2d(jpij,jpl) , sv_i_2d(jpij,jpl) , &
- & a_ip_2d(jpij,jpl) , v_ip_2d(jpij,jpl) , t_su_2d(jpij,jpl) , &
+ & a_ip_2d(jpij,jpl) , v_ip_2d(jpij,jpl) , t_su_2d(jpij,jpl) , lh_ip_2d(jpij,jpl), &
& STAT=ierr(ii) )
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn.F90 (revision 12379)
@@ -101,4 +101,5 @@
ELSEWHERE
h_ip(:,:,:) = 0._wp
+ lh_ip(:,:,:) = 0._wp
END WHERE
!
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_adv.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_adv.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_adv.F90 (revision 12379)
@@ -84,10 +84,10 @@
! !-----------------------!
CALL ice_dyn_adv_umx( nn_UMx, kt, u_ice, v_ice, h_i, h_s, h_ip, &
- & ato_i, v_i, v_s, sv_i, oa_i, a_i, a_ip, v_ip, e_s, e_i )
+ & ato_i, v_i, v_s, sv_i, oa_i, a_i, a_ip, v_ip, lh_ip, e_s, e_i )
! !-----------------------!
CASE( np_advPRA ) ! PRATHER scheme !
! !-----------------------!
CALL ice_dyn_adv_pra( kt, u_ice, v_ice, &
- & ato_i, v_i, v_s, sv_i, oa_i, a_i, a_ip, v_ip, e_s, e_i )
+ & ato_i, v_i, v_s, sv_i, oa_i, a_i, a_ip, v_ip, lh_ip, e_s, e_i )
END SELECT
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_adv_pra.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_adv_pra.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_adv_pra.F90 (revision 12379)
@@ -55,5 +55,5 @@
SUBROUTINE ice_dyn_adv_pra( kt, pu_ice, pv_ice, &
- & pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, pe_s, pe_i )
+ & pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, plh_ip, pe_s, pe_i )
!!----------------------------------------------------------------------
!! ** routine ice_dyn_adv_pra **
@@ -78,4 +78,5 @@
REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pa_ip ! melt pond fraction
REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pv_ip ! melt pond volume
+ REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: plh_ip ! melt pond lid thickness
REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_s ! snw heat content
REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_i ! ice heat content
@@ -87,5 +88,5 @@
REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: z0opw
REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: z0ice, z0snw, z0ai, z0smi, z0oi
- REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: z0ap , z0vp
+ REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: z0ap , z0vp , z0lhp
REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: z0es
REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: z0ei
@@ -96,5 +97,5 @@
ALLOCATE( zarea(jpi,jpj) , z0opw(jpi,jpj, 1 ) , z0ice(jpi,jpj,jpl) , z0snw(jpi,jpj,jpl) , &
& z0ai(jpi,jpj,jpl) , z0smi(jpi,jpj,jpl) , z0oi (jpi,jpj,jpl) , z0ap (jpi,jpj,jpl) , z0vp(jpi,jpj,jpl) , &
- & z0es (jpi,jpj,nlay_s,jpl), z0ei(jpi,jpj,nlay_i,jpl) )
+ & z0lhp(jpi,jpj,jpl), z0es (jpi,jpj,nlay_s,jpl), z0ei(jpi,jpj,nlay_i,jpl) )
!
! --- If ice drift field is too fast, use an appropriate time step for advection (CFL test for stability) --- !
@@ -127,4 +128,5 @@
z0ap(:,:,jl) = pa_ip(:,:,jl) * e1e2t(:,:) ! Melt pond fraction
z0vp(:,:,jl) = pv_ip(:,:,jl) * e1e2t(:,:) ! Melt pond volume
+ z0lhp(:,:,jl) = plh_ip(:,:,jl) * e1e2t(:,:) ! Melt pond lid thickness
ENDIF
END DO
@@ -180,4 +182,8 @@
CALL adv_y( zusnit, pv_ice, 0._wp, zarea, z0vp (:,:,jl), sxvp (:,:,jl), &
& sxxvp (:,:,jl), syvp (:,:,jl), syyvp (:,:,jl), sxyvp (:,:,jl) )
+ CALL adv_x( zusnit, pu_ice, 1._wp, zarea, z0lhp (:,:,jl), sxvp (:,:,jl), & !--- melt pond lid thickness --
+ & sxxvp (:,:,jl), syvp (:,:,jl), syyvp (:,:,jl), sxyvp (:,:,jl) )
+ CALL adv_y( zusnit, pv_ice, 0._wp, zarea, z0lhp (:,:,jl), sxvp (:,:,jl), &
+ & sxxvp (:,:,jl), syvp (:,:,jl), syyvp (:,:,jl), sxyvp (:,:,jl) )
ENDIF
END DO
@@ -233,4 +239,8 @@
CALL adv_x( zusnit, pu_ice, 0._wp, zarea, z0vp (:,:,jl), sxvp (:,:,jl), &
& sxxvp (:,:,jl), syvp (:,:,jl), syyvp (:,:,jl), sxyvp (:,:,jl) )
+ CALL adv_y( zusnit, pv_ice, 1._wp, zarea, z0lhp (:,:,jl), sxvp (:,:,jl), & !--- melt pond lid thickness ---
+ & sxxvp (:,:,jl), syvp (:,:,jl), syyvp (:,:,jl), sxyvp (:,:,jl) )
+ CALL adv_x( zusnit, pu_ice, 0._wp, zarea, z0lhp (:,:,jl), sxvp (:,:,jl), &
+ & sxxvp (:,:,jl), syvp (:,:,jl), syyvp (:,:,jl), sxyvp (:,:,jl) )
ENDIF
END DO
@@ -257,8 +267,9 @@
pa_ip (:,:,jl) = z0ap (:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1)
pv_ip (:,:,jl) = z0vp (:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1)
+ plh_ip (:,:,jl) = z0lhp (:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1)
ENDIF
END DO
!
- DEALLOCATE( zarea , z0opw , z0ice, z0snw , z0ai , z0smi , z0oi , z0ap , z0vp , z0es, z0ei )
+ DEALLOCATE( zarea , z0opw , z0ice, z0snw , z0ai , z0smi , z0oi , z0ap , z0vp , z0lhp , z0es, z0ei )
!
IF( lrst_ice ) CALL adv_pra_rst( 'WRITE', kt ) !* write Prather fields in the restart file
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_adv_umx.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_adv_umx.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_adv_umx.F90 (revision 12379)
@@ -60,5 +60,5 @@
SUBROUTINE ice_dyn_adv_umx( kn_umx, kt, pu_ice, pv_ice, ph_i, ph_s, ph_ip, &
- & pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, pe_s, pe_i )
+ & pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, plh_ip, pe_s, pe_i )
!!----------------------------------------------------------------------
!! *** ROUTINE ice_dyn_adv_umx ***
@@ -85,4 +85,5 @@
REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pa_ip ! melt pond fraction
REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pv_ip ! melt pond volume
+ REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: plh_ip ! melt pond lid thickness
REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_s ! snw heat content
REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_i ! ice heat content
@@ -336,4 +337,10 @@
CALL adv_umx( zamsk, kn_umx, jt, kt, zdt, zudy , zvdx , zua_ho , zva_ho , zcu_box, zcv_box, &
& zhvar, pv_ip, zua_ups, zva_ups )
+ ! lid thickness
+ zamsk = 0._wp
+ zhvar(:,:,:) = plh_ip(:,:,:) * z1_aip(:,:,:)
+ CALL adv_umx( zamsk, kn_umx, jt, kt, zdt, zudy , zvdx , zua_ho , zva_ho , zcu_box, zcv_box, &
+ & zhvar, plh_ip, zua_ups, zva_ups )
+
ENDIF
!
@@ -352,5 +359,5 @@
! Remove negative values (conservation is ensured)
! (because advected fields are not perfectly bounded and tiny negative values can occur, e.g. -1.e-20)
- CALL ice_var_zapneg( zdt, pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, pe_s, pe_i )
+ CALL ice_var_zapneg( zdt, pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, plh_ip, pe_s, pe_i )
!
! Make sure ice thickness is not too big
@@ -1521,5 +1528,5 @@
!!
!! ** Purpose : Thickness correction in case advection scheme creates
- !! abnormally tick ice or snow
+ !! abnormally thick ice or snow
!!
!! ** Method : 1- check whether ice thickness is larger than the surrounding 9-points
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_rdgrft.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_rdgrft.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_rdgrft.F90 (revision 12379)
@@ -575,7 +575,9 @@
aprdg2(ji) = a_ip_2d(ji,jl1) * afrdg * hi_hrdg(ji,jl1)
vprdg (ji) = v_ip_2d(ji,jl1) * afrdg
+ lhprdg(ji) = lh_ip_2d(ji,jl1) * afrdg
aprft1 = a_ip_2d(ji,jl1) * afrft
aprft2(ji) = a_ip_2d(ji,jl1) * afrft * hi_hrft
vprft (ji) = v_ip_2d(ji,jl1) * afrft
+ lhprft(ji) = lh_ip_2d(ji,jl1) * afrft
ENDIF
@@ -607,4 +609,5 @@
a_ip_2d(ji,jl1) = a_ip_2d(ji,jl1) - aprdg1 - aprft1
v_ip_2d(ji,jl1) = v_ip_2d(ji,jl1) - vprdg(ji) - vprft(ji)
+ lh_ip_2d(ji,jl1) = lh_ip_2d(ji,jl1) - lhprdg(ji) - lhprft(ji)
ENDIF
ENDIF
@@ -703,4 +706,6 @@
a_ip_2d (ji,jl2) = a_ip_2d(ji,jl2) + ( aprdg2(ji) * rn_fpndrdg * farea &
& + aprft2(ji) * rn_fpndrft * zswitch(ji) )
+ lh_ip_2d (ji,jl2) = lh_ip_2d(ji,jl2) + ( lhprdg (ji) * rn_fpndrdg * fvol (ji) &
+ & + lhprft (ji) * rn_fpndrft * zswitch(ji) )
ENDIF
@@ -733,5 +738,5 @@
!----------------
! In case ridging/rafting lead to very small negative values (sometimes it happens)
- CALL ice_var_roundoff( a_i_2d, v_i_2d, v_s_2d, sv_i_2d, oa_i_2d, a_ip_2d, v_ip_2d, ze_s_2d, ze_i_2d )
+ CALL ice_var_roundoff( a_i_2d, v_i_2d, v_s_2d, sv_i_2d, oa_i_2d, a_ip_2d, v_ip_2d, lh_ip_2d, ze_s_2d, ze_i_2d )
!
END SUBROUTINE rdgrft_shift
@@ -845,4 +850,5 @@
CALL tab_3d_2d( npti, nptidx(1:npti), a_ip_2d(1:npti,1:jpl), a_ip(:,:,:) )
CALL tab_3d_2d( npti, nptidx(1:npti), v_ip_2d(1:npti,1:jpl), v_ip(:,:,:) )
+ CALL tab_3d_2d( npti, nptidx(1:npti), lh_ip_2d(1:npti,1:jpl), lh_ip(:,:,:) )
DO jl = 1, jpl
DO jk = 1, nlay_s
@@ -871,4 +877,5 @@
CALL tab_2d_3d( npti, nptidx(1:npti), a_ip_2d(1:npti,1:jpl), a_ip(:,:,:) )
CALL tab_2d_3d( npti, nptidx(1:npti), v_ip_2d(1:npti,1:jpl), v_ip(:,:,:) )
+ CALL tab_2d_3d( npti, nptidx(1:npti), lh_ip_2d(1:npti,1:jpl), lh_ip(:,:,:) )
DO jl = 1, jpl
DO jk = 1, nlay_s
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/iceistate.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/iceistate.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/iceistate.F90 (revision 12379)
@@ -372,4 +372,5 @@
a_ip(:,:,:) = a_ip_frac(:,:,:) * a_i (:,:,:)
v_ip(:,:,:) = h_ip (:,:,:) * a_ip(:,:,:)
+ lh_ip(:,:,:) = 0._wp
!
ELSE ! if ln_iceini=false
@@ -403,4 +404,5 @@
a_ip_frac(:,:,:) = 0._wp
h_ip (:,:,:) = 0._wp
+ lh_ip(:,:,:) = 0._wp
!
ENDIF ! ln_iceini
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/iceitd.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/iceitd.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/iceitd.F90 (revision 12379)
@@ -409,4 +409,5 @@
CALL tab_3d_2d( npti, nptidx(1:npti), a_ip_2d(1:npti,1:jpl), a_ip )
CALL tab_3d_2d( npti, nptidx(1:npti), v_ip_2d(1:npti,1:jpl), v_ip )
+ CALL tab_3d_2d( npti, nptidx(1:npti), lh_ip_2d(1:npti,1:jpl), lh_ip )
CALL tab_3d_2d( npti, nptidx(1:npti), t_su_2d(1:npti,1:jpl), t_su )
DO jl = 1, jpl
@@ -481,4 +482,8 @@
v_ip_2d(ji,jl1) = v_ip_2d(ji,jl1) - ztrans
v_ip_2d(ji,jl2) = v_ip_2d(ji,jl2) + ztrans
+ !
+ ztrans = lh_ip_2d(ji,jl1) * zworka(ji) ! Pond lid thickness
+ lh_ip_2d(ji,jl1) = lh_ip_2d(ji,jl1) - ztrans
+ lh_ip_2d(ji,jl2) = lh_ip_2d(ji,jl2) + ztrans
ENDIF
!
@@ -525,5 +530,5 @@
! clem: The transfer between one category to another can lead to very small negative values (-1.e-20)
! because of truncation error ( i.e. 1. - 1. /= 0 )
- CALL ice_var_roundoff( a_i_2d, v_i_2d, v_s_2d, sv_i_2d, oa_i_2d, a_ip_2d, v_ip_2d, ze_s_2d, ze_i_2d )
+ CALL ice_var_roundoff( a_i_2d, v_i_2d, v_s_2d, sv_i_2d, oa_i_2d, a_ip_2d, v_ip_2d, lh_ip_2d, ze_s_2d, ze_i_2d )
! at_i must be <= rn_amax
@@ -553,4 +558,5 @@
CALL tab_2d_3d( npti, nptidx(1:npti), a_ip_2d(1:npti,1:jpl), a_ip )
CALL tab_2d_3d( npti, nptidx(1:npti), v_ip_2d(1:npti,1:jpl), v_ip )
+ CALL tab_2d_3d( npti, nptidx(1:npti), lh_ip_2d(1:npti,1:jpl), lh_ip )
CALL tab_2d_3d( npti, nptidx(1:npti), t_su_2d(1:npti,1:jpl), t_su )
DO jl = 1, jpl
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icerst.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icerst.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icerst.F90 (revision 12379)
@@ -127,4 +127,5 @@
CALL iom_rstput( iter, nitrst, numriw, 'a_ip', a_ip )
CALL iom_rstput( iter, nitrst, numriw, 'v_ip', v_ip )
+ CALL iom_rstput( iter, nitrst, numriw, 'lh_ip', lh_ip )
! Snow enthalpy
DO jk = 1, nlay_s
@@ -211,8 +212,10 @@
CALL iom_get( numrir, jpdom_autoglo, 'a_ip' , a_ip )
CALL iom_get( numrir, jpdom_autoglo, 'v_ip' , v_ip )
+ CALL iom_get( numrir, jpdom_autoglo, 'lh_ip' , lh_ip )
ELSE ! start from rest
IF(lwp) WRITE(numout,*) ' ==>> previous run without melt ponds output then set it to zero'
a_ip(:,:,:) = 0._wp
v_ip(:,:,:) = 0._wp
+ lh_ip(:,:,:) = 0._wp
ENDIF
! Snow enthalpy
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icethd.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icethd.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icethd.F90 (revision 12379)
@@ -413,4 +413,5 @@
CALL tab_2d_1d( npti, nptidx(1:npti), h_ip_1d (1:npti), h_ip (:,:,kl) )
CALL tab_2d_1d( npti, nptidx(1:npti), a_ip_frac_1d(1:npti), a_ip_frac(:,:,kl) )
+ CALL tab_2d_1d( npti, nptidx(1:npti), lh_ip_1d (1:npti), lh_ip (:,:,kl) )
!
CALL tab_2d_1d( npti, nptidx(1:npti), qprec_ice_1d (1:npti), qprec_ice )
@@ -519,4 +520,5 @@
CALL tab_1d_2d( npti, nptidx(1:npti), h_ip_1d (1:npti), h_ip (:,:,kl) )
CALL tab_1d_2d( npti, nptidx(1:npti), a_ip_frac_1d(1:npti), a_ip_frac(:,:,kl) )
+ CALL tab_1d_2d( npti, nptidx(1:npti), lh_ip_1d (1:npti), lh_ip (:,:,kl) )
!
CALL tab_1d_2d( npti, nptidx(1:npti), wfx_snw_sni_1d(1:npti), wfx_snw_sni )
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icethd_pnd.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icethd_pnd.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icethd_pnd.F90 (revision 12379)
@@ -156,4 +156,5 @@
a_ip_frac_1d(ji) = 0._wp
h_ip_1d(ji) = 0._wp
+ lh_ip_1d(ji) = 0._wp
! !--------------------------------!
ELSE ! Case ice thickness >= rn_himin !
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icevar.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icevar.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icevar.F90 (revision 12379)
@@ -567,4 +567,5 @@
a_ip (ji,jj,jl) = a_ip (ji,jj,jl) * zswitch(ji,jj)
v_ip (ji,jj,jl) = v_ip (ji,jj,jl) * zswitch(ji,jj)
+ lh_ip (ji,jj,jl) = lh_ip (ji,jj,jl) * zswitch(ji,jj)
!
END DO
@@ -583,5 +584,5 @@
- SUBROUTINE ice_var_zapneg( pdt, pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, pe_s, pe_i )
+ SUBROUTINE ice_var_zapneg( pdt, pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, plh_ip, pe_s, pe_i )
!!-------------------------------------------------------------------
!! *** ROUTINE ice_var_zapneg ***
@@ -598,4 +599,5 @@
REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pa_ip ! melt pond fraction
REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pv_ip ! melt pond volume
+ REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: plh_ip ! melt pond lid thickness
REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_s ! snw heat content
REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_i ! ice heat content
@@ -665,9 +667,10 @@
WHERE( pv_ip (:,:,:) < 0._wp ) pv_ip (:,:,:) = 0._wp ! in theory one should change wfx_pnd(-) and wfx_sum(+)
! but it does not change conservation, so keep it this way is ok
+ WHERE( plh_ip (:,:,:) < 0._wp ) plh_ip (:,:,:) = 0._wp
!
END SUBROUTINE ice_var_zapneg
- SUBROUTINE ice_var_roundoff( pa_i, pv_i, pv_s, psv_i, poa_i, pa_ip, pv_ip, pe_s, pe_i )
+ SUBROUTINE ice_var_roundoff( pa_i, pv_i, pv_s, psv_i, poa_i, pa_ip, pv_ip, plh_ip, pe_s, pe_i )
!!-------------------------------------------------------------------
!! *** ROUTINE ice_var_roundoff ***
@@ -682,4 +685,5 @@
REAL(wp), DIMENSION(:,:) , INTENT(inout) :: pa_ip ! melt pond fraction
REAL(wp), DIMENSION(:,:) , INTENT(inout) :: pv_ip ! melt pond volume
+ REAL(wp), DIMENSION(:,:) , INTENT(inout) :: plh_ip ! melt pond lid thickness
REAL(wp), DIMENSION(:,:,:), INTENT(inout) :: pe_s ! snw heat content
REAL(wp), DIMENSION(:,:,:), INTENT(inout) :: pe_i ! ice heat content
@@ -696,4 +700,5 @@
WHERE( pa_ip(1:npti,:) < 0._wp .AND. pa_ip(1:npti,:) > -epsi10 ) pa_ip(1:npti,:) = 0._wp ! a_ip must be >= 0
WHERE( pv_ip(1:npti,:) < 0._wp .AND. pv_ip(1:npti,:) > -epsi10 ) pv_ip(1:npti,:) = 0._wp ! v_ip must be >= 0
+ WHERE( plh_ip(1:npti,:) < 0._wp .AND. plh_ip(1:npti,:) > -epsi10 ) plh_ip(1:npti,:) = 0._wp ! lh_ip must be >= 0
ENDIF
!
Index: /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icewri.F90
===================================================================
--- /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icewri.F90 (revision 12378)
+++ /NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icewri.F90 (revision 12379)
@@ -166,4 +166,5 @@
IF( iom_use('icehpnd_cat' ) ) CALL iom_put( "icehpnd_cat" , h_ip * zmsk00l ) ! melt pond frac for categories
IF( iom_use('iceafpnd_cat') ) CALL iom_put( "iceafpnd_cat", a_ip_frac * zmsk00l ) ! melt pond frac for categories
+ IF( iom_uce('icehlid_cat' ) ) CALL iom_put( "icehlid_cat", lh_ip * zmsk00l ) ! melt pond lid thickness for categories
!------------------