- Timestamp:
- 2020-09-15T09:27:47+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/temporary_r4_trunk/src/ICE/icedyn_adv_pra.F90
r12197 r13466 44 44 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxap , syap , sxxap , syyap , sxyap ! melt pond fraction 45 45 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxvp , syvp , sxxvp , syyvp , sxyvp ! melt pond volume 46 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxvl , syvl , sxxvl , syyvl , sxyvl ! melt pond lid volume 46 47 47 48 !! * Substitutions … … 55 56 56 57 SUBROUTINE ice_dyn_adv_pra( kt, pu_ice, pv_ice, ph_i, ph_s, ph_ip, & 57 & pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, p e_s, pe_i )58 & pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, pv_il, pe_s, pe_i ) 58 59 !!---------------------------------------------------------------------- 59 60 !! ** routine ice_dyn_adv_pra ** … … 81 82 REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pa_ip ! melt pond fraction 82 83 REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pv_ip ! melt pond volume 84 REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pv_il ! melt pond lid thickness 83 85 REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_s ! snw heat content 84 86 REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_i ! ice heat content 85 87 ! 86 INTEGER :: ji, jj, jk, jl, jt! dummy loop indices88 INTEGER :: ji, jj, jk, jl, jt ! dummy loop indices 87 89 INTEGER :: icycle ! number of sub-timestep for the advection 88 90 REAL(wp) :: zdt ! - - … … 90 92 REAL(wp), DIMENSION(jpi,jpj) :: zati1, zati2 91 93 REAL(wp), DIMENSION(jpi,jpj) :: zudy, zvdx 92 REAL(wp), DIMENSION(jpi,jpj,jpl) :: zhi_max, zhs_max, zhip_max 94 REAL(wp), DIMENSION(jpi,jpj,jpl) :: zhi_max, zhs_max, zhip_max, zs_i, zsi_max 95 REAL(wp), DIMENSION(jpi,jpj,nlay_i,jpl) :: ze_i, zei_max 96 REAL(wp), DIMENSION(jpi,jpj,nlay_s,jpl) :: ze_s, zes_max 93 97 REAL(wp), DIMENSION(jpi,jpj,jpl) :: zarea 94 98 REAL(wp), DIMENSION(jpi,jpj,jpl) :: z0ice, z0snw, z0ai, z0smi, z0oi 95 REAL(wp), DIMENSION(jpi,jpj,jpl) :: z0ap , z0vp 99 REAL(wp), DIMENSION(jpi,jpj,jpl) :: z0ap , z0vp, z0vl 96 100 REAL(wp), DIMENSION(jpi,jpj,nlay_s,jpl) :: z0es 97 101 REAL(wp), DIMENSION(jpi,jpj,nlay_i,jpl) :: z0ei … … 100 104 IF( kt == nit000 .AND. lwp ) WRITE(numout,*) '-- ice_dyn_adv_pra: Prather advection scheme' 101 105 ! 102 ! --- Record max of the surrounding 9-pts ice thick. (for call Hbig) --- ! 106 ! --- Record max of the surrounding 9-pts (for call Hbig) --- ! 107 ! thickness and salinity 108 WHERE( pv_i(:,:,:) >= epsi10 ) ; zs_i(:,:,:) = psv_i(:,:,:) / pv_i(:,:,:) 109 ELSEWHERE ; zs_i(:,:,:) = 0._wp 110 END WHERE 103 111 DO jl = 1, jpl 104 112 DO jj = 2, jpjm1 … … 116 124 & ph_s (ji+1,jj+1,jl), ph_s (ji-1,jj-1,jl), & 117 125 & ph_s (ji+1,jj-1,jl), ph_s (ji-1,jj+1,jl) ) 126 zsi_max (ji,jj,jl) = MAX( epsi20, zs_i (ji,jj,jl), zs_i (ji+1,jj ,jl), zs_i (ji ,jj+1,jl), & 127 & zs_i (ji-1,jj ,jl), zs_i (ji ,jj-1,jl), & 128 & zs_i (ji+1,jj+1,jl), zs_i (ji-1,jj-1,jl), & 129 & zs_i (ji+1,jj-1,jl), zs_i (ji-1,jj+1,jl) ) 118 130 END DO 119 131 END DO 120 132 END DO 121 CALL lbc_lnk_multi( 'icedyn_adv_pra', zhi_max, 'T', 1., zhs_max, 'T', 1., zhip_max, 'T', 1. ) 133 CALL lbc_lnk_multi( 'icedyn_adv_pra', zhi_max, 'T', 1., zhs_max, 'T', 1., zhip_max, 'T', 1., zsi_max, 'T', 1. ) 134 ! 135 ! enthalpies 136 DO jk = 1, nlay_i 137 WHERE( pv_i(:,:,:) >= epsi10 ) ; ze_i(:,:,jk,:) = pe_i(:,:,jk,:) / pv_i(:,:,:) 138 ELSEWHERE ; ze_i(:,:,jk,:) = 0._wp 139 END WHERE 140 END DO 141 DO jk = 1, nlay_s 142 WHERE( pv_s(:,:,:) >= epsi10 ) ; ze_s(:,:,jk,:) = pe_s(:,:,jk,:) / pv_s(:,:,:) 143 ELSEWHERE ; ze_s(:,:,jk,:) = 0._wp 144 END WHERE 145 END DO 146 DO jl = 1, jpl 147 DO jk = 1, nlay_i 148 DO jj = 2, jpjm1 149 DO ji = fs_2, fs_jpim1 150 zei_max(ji,jj,jk,jl) = MAX( epsi20, ze_i(ji,jj,jk,jl), ze_i(ji+1,jj ,jk,jl), ze_i(ji ,jj+1,jk,jl), & 151 & ze_i(ji-1,jj ,jk,jl), ze_i(ji ,jj-1,jk,jl), & 152 & ze_i(ji+1,jj+1,jk,jl), ze_i(ji-1,jj-1,jk,jl), & 153 & ze_i(ji+1,jj-1,jk,jl), ze_i(ji-1,jj+1,jk,jl) ) 154 END DO 155 END DO 156 END DO 157 END DO 158 DO jl = 1, jpl 159 DO jk = 1, nlay_s 160 DO jj = 2, jpjm1 161 DO ji = fs_2, fs_jpim1 162 zes_max(ji,jj,jk,jl) = MAX( epsi20, ze_s(ji,jj,jk,jl), ze_s(ji+1,jj ,jk,jl), ze_s(ji ,jj+1,jk,jl), & 163 & ze_s(ji-1,jj ,jk,jl), ze_s(ji ,jj-1,jk,jl), & 164 & ze_s(ji+1,jj+1,jk,jl), ze_s(ji-1,jj-1,jk,jl), & 165 & ze_s(ji+1,jj-1,jk,jl), ze_s(ji-1,jj+1,jk,jl) ) 166 END DO 167 END DO 168 END DO 169 END DO 170 CALL lbc_lnk( 'icedyn_adv_pra', zei_max, 'T', 1. ) 171 CALL lbc_lnk( 'icedyn_adv_pra', zes_max, 'T', 1. ) 172 ! 122 173 ! 123 174 ! --- If ice drift is too fast, use subtime steps for advection (CFL test for stability) --- ! … … 158 209 z0ei(:,:,jk,jl) = pe_i(:,:,jk,jl) * e1e2t(:,:) ! Ice heat content 159 210 END DO 160 IF ( ln_pnd_H12 ) THEN 161 z0ap(:,:,jl) = pa_ip(:,:,jl) * e1e2t(:,:) ! Melt pond fraction 162 z0vp(:,:,jl) = pv_ip(:,:,jl) * e1e2t(:,:) ! Melt pond volume 211 IF ( ln_pnd_LEV ) THEN 212 z0ap(:,:,jl) = pa_ip(:,:,jl) * e1e2t(:,:) ! Melt pond fraction 213 z0vp(:,:,jl) = pv_ip(:,:,jl) * e1e2t(:,:) ! Melt pond volume 214 IF ( ln_pnd_lids ) THEN 215 z0vl(:,:,jl) = pv_il(:,:,jl) * e1e2t(:,:) ! Melt pond lid volume 216 ENDIF 163 217 ENDIF 164 218 END DO … … 191 245 END DO 192 246 ! 193 IF ( ln_pnd_ H12) THEN247 IF ( ln_pnd_LEV ) THEN 194 248 CALL adv_x( zdt , zudy , 1._wp , zarea , z0ap , sxap , sxxap , syap , syyap , sxyap ) !--- melt pond fraction 195 249 CALL adv_y( zdt , zvdx , 0._wp , zarea , z0ap , sxap , sxxap , syap , syyap , sxyap ) 196 250 CALL adv_x( zdt , zudy , 1._wp , zarea , z0vp , sxvp , sxxvp , syvp , syyvp , sxyvp ) !--- melt pond volume 197 251 CALL adv_y( zdt , zvdx , 0._wp , zarea , z0vp , sxvp , sxxvp , syvp , syyvp , sxyvp ) 252 IF ( ln_pnd_lids ) THEN 253 CALL adv_x( zdt , zudy , 1._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl ) !--- melt pond lid volume 254 CALL adv_y( zdt , zvdx , 0._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl ) 255 ENDIF 198 256 ENDIF 199 257 ! !--------------------------------------------! … … 222 280 & sxxe(:,:,jk,:), sye(:,:,jk,:), syye(:,:,jk,:), sxye(:,:,jk,:) ) 223 281 END DO 224 IF ( ln_pnd_ H12) THEN282 IF ( ln_pnd_LEV ) THEN 225 283 CALL adv_y( zdt , zvdx , 1._wp , zarea , z0ap , sxap , sxxap , syap , syyap , sxyap ) !--- melt pond fraction 226 284 CALL adv_x( zdt , zudy , 0._wp , zarea , z0ap , sxap , sxxap , syap , syyap , sxyap ) 227 285 CALL adv_y( zdt , zvdx , 1._wp , zarea , z0vp , sxvp , sxxvp , syvp , syyvp , sxyvp ) !--- melt pond volume 228 286 CALL adv_x( zdt , zudy , 0._wp , zarea , z0vp , sxvp , sxxvp , syvp , syyvp , sxyvp ) 229 ENDIF 287 IF ( ln_pnd_lids ) THEN 288 CALL adv_y( zdt , zvdx , 1._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl ) !--- melt pond lid volume 289 CALL adv_x( zdt , zudy , 0._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl ) 290 ENDIF 291 ENDIF 230 292 ! 231 293 ENDIF … … 244 306 pe_i(:,:,jk,jl) = z0ei(:,:,jk,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 245 307 END DO 246 IF ( ln_pnd_ H12) THEN308 IF ( ln_pnd_LEV ) THEN 247 309 pa_ip(:,:,jl) = z0ap(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 248 310 pv_ip(:,:,jl) = z0vp(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 311 IF ( ln_pnd_lids ) THEN 312 pv_il(:,:,jl) = z0vl(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 313 ENDIF 249 314 ENDIF 250 315 END DO … … 263 328 ! Remove negative values (conservation is ensured) 264 329 ! (because advected fields are not perfectly bounded and tiny negative values can occur, e.g. -1.e-20) 265 CALL ice_var_zapneg( zdt, pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, p e_s, pe_i )330 CALL ice_var_zapneg( zdt, pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, pv_il, pe_s, pe_i ) 266 331 ! 267 332 ! --- Make sure ice thickness is not too big --- ! 268 333 ! (because ice thickness can be too large where ice concentration is very small) 269 CALL Hbig( zdt, zhi_max, zhs_max, zhip_max, pv_i, pv_s, pa_i, pa_ip, pv_ip, pe_s ) 334 CALL Hbig( zdt, zhi_max, zhs_max, zhip_max, zsi_max, zes_max, zei_max, & 335 & pv_i, pv_s, pa_i, pa_ip, pv_ip, psv_i, pe_s, pe_i ) 270 336 ! 271 337 ! --- Ensure snow load is not too big --- ! … … 619 685 620 686 621 SUBROUTINE Hbig( pdt, phi_max, phs_max, phip_max, pv_i, pv_s, pa_i, pa_ip, pv_ip, pe_s ) 687 SUBROUTINE Hbig( pdt, phi_max, phs_max, phip_max, psi_max, pes_max, pei_max, & 688 & pv_i, pv_s, pa_i, pa_ip, pv_ip, psv_i, pe_s, pe_i ) 622 689 !!------------------------------------------------------------------- 623 690 !! *** ROUTINE Hbig *** … … 633 700 !! ** input : Max thickness of the surrounding 9-points 634 701 !!------------------------------------------------------------------- 635 REAL(wp) , INTENT(in ) :: pdt ! tracer time-step 636 REAL(wp), DIMENSION(:,:,:) , INTENT(in ) :: phi_max, phs_max, phip_max ! max ice thick from surrounding 9-pts 637 REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pv_i, pv_s, pa_i, pa_ip, pv_ip 702 REAL(wp) , INTENT(in ) :: pdt ! tracer time-step 703 REAL(wp), DIMENSION(:,:,:) , INTENT(in ) :: phi_max, phs_max, phip_max, psi_max ! max ice thick from surrounding 9-pts 704 REAL(wp), DIMENSION(:,:,:,:), INTENT(in ) :: pes_max 705 REAL(wp), DIMENSION(:,:,:,:), INTENT(in ) :: pei_max 706 REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pv_i, pv_s, pa_i, pa_ip, pv_ip, psv_i 638 707 REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_s 639 ! 640 INTEGER :: ji, jj, jl ! dummy loop indices 641 REAL(wp) :: z1_dt, zhip, zhi, zhs, zfra 708 REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_i 709 ! 710 INTEGER :: ji, jj, jk, jl ! dummy loop indices 711 REAL(wp) :: z1_dt, zhip, zhi, zhs, zsi, zes, zei, zfra 642 712 !!------------------------------------------------------------------- 643 713 ! … … 645 715 ! 646 716 DO jl = 1, jpl 647 648 717 DO jj = 1, jpj 649 718 DO ji = 1, jpi … … 652 721 ! ! -- check h_ip -- ! 653 722 ! if h_ip is larger than the surrounding 9 pts => reduce h_ip and increase a_ip 654 IF( ln_pnd_ H12.AND. pv_ip(ji,jj,jl) > 0._wp ) THEN723 IF( ln_pnd_LEV .AND. pv_ip(ji,jj,jl) > 0._wp ) THEN 655 724 zhip = pv_ip(ji,jj,jl) / MAX( epsi20, pa_ip(ji,jj,jl) ) 656 725 IF( zhip > phip_max(ji,jj,jl) .AND. pa_ip(ji,jj,jl) < 0.15 ) THEN … … 679 748 ENDIF 680 749 ! 750 ! ! -- check s_i -- ! 751 ! if s_i is larger than the surrounding 9 pts => put salt excess in the ocean 752 zsi = psv_i(ji,jj,jl) / pv_i(ji,jj,jl) 753 IF( zsi > psi_max(ji,jj,jl) .AND. pa_i(ji,jj,jl) < 0.15 ) THEN 754 zfra = psi_max(ji,jj,jl) / zsi 755 sfx_res(ji,jj) = sfx_res(ji,jj) + psv_i(ji,jj,jl) * ( 1._wp - zfra ) * rhoi * z1_dt 756 psv_i(ji,jj,jl) = psv_i(ji,jj,jl) * zfra 757 ENDIF 758 ! 681 759 ENDIF 682 760 END DO 683 761 END DO 684 762 END DO 763 ! 764 ! ! -- check e_i/v_i -- ! 765 DO jl = 1, jpl 766 DO jk = 1, nlay_i 767 DO jj = 1, jpj 768 DO ji = 1, jpi 769 IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 770 ! if e_i/v_i is larger than the surrounding 9 pts => put the heat excess in the ocean 771 zei = pe_i(ji,jj,jk,jl) / pv_i(ji,jj,jl) 772 IF( zei > pei_max(ji,jj,jk,jl) .AND. pa_i(ji,jj,jl) < 0.15 ) THEN 773 zfra = pei_max(ji,jj,jk,jl) / zei 774 hfx_res(ji,jj) = hfx_res(ji,jj) - pe_i(ji,jj,jk,jl) * ( 1._wp - zfra ) * z1_dt ! W.m-2 <0 775 pe_i(ji,jj,jk,jl) = pe_i(ji,jj,jk,jl) * zfra 776 ENDIF 777 ENDIF 778 END DO 779 END DO 780 END DO 781 END DO 782 ! ! -- check e_s/v_s -- ! 783 DO jl = 1, jpl 784 DO jk = 1, nlay_s 785 DO jj = 1, jpj 786 DO ji = 1, jpi 787 IF ( pv_s(ji,jj,jl) > 0._wp ) THEN 788 ! if e_s/v_s is larger than the surrounding 9 pts => put the heat excess in the ocean 789 zes = pe_s(ji,jj,jk,jl) / pv_s(ji,jj,jl) 790 IF( zes > pes_max(ji,jj,jk,jl) .AND. pa_i(ji,jj,jl) < 0.15 ) THEN 791 zfra = pes_max(ji,jj,jk,jl) / zes 792 hfx_res(ji,jj) = hfx_res(ji,jj) - pe_s(ji,jj,jk,jl) * ( 1._wp - zfra ) * z1_dt ! W.m-2 <0 793 pe_s(ji,jj,jk,jl) = pe_s(ji,jj,jk,jl) * zfra 794 ENDIF 795 ENDIF 796 END DO 797 END DO 798 END DO 799 END DO 685 800 ! 686 801 END SUBROUTINE Hbig … … 756 871 & sxsal(jpi,jpj,jpl) , sysal(jpi,jpj,jpl) , sxxsal(jpi,jpj,jpl) , syysal(jpi,jpj,jpl) , sxysal(jpi,jpj,jpl) , & 757 872 & sxage(jpi,jpj,jpl) , syage(jpi,jpj,jpl) , sxxage(jpi,jpj,jpl) , syyage(jpi,jpj,jpl) , sxyage(jpi,jpj,jpl) , & 758 & sxap(jpi,jpj,jpl) , syap (jpi,jpj,jpl) , sxxap (jpi,jpj,jpl) , syyap (jpi,jpj,jpl) , sxyap (jpi,jpj,jpl) , & 759 & sxvp(jpi,jpj,jpl) , syvp (jpi,jpj,jpl) , sxxvp (jpi,jpj,jpl) , syyvp (jpi,jpj,jpl) , sxyvp (jpi,jpj,jpl) , & 873 & sxap (jpi,jpj,jpl) , syap (jpi,jpj,jpl) , sxxap (jpi,jpj,jpl) , syyap (jpi,jpj,jpl) , sxyap (jpi,jpj,jpl) , & 874 & sxvp (jpi,jpj,jpl) , syvp (jpi,jpj,jpl) , sxxvp (jpi,jpj,jpl) , syyvp (jpi,jpj,jpl) , sxyvp (jpi,jpj,jpl) , & 875 & sxvl (jpi,jpj,jpl) , syvl (jpi,jpj,jpl) , sxxvl (jpi,jpj,jpl) , syyvl (jpi,jpj,jpl) , sxyvl (jpi,jpj,jpl) , & 760 876 ! 761 877 & sxc0 (jpi,jpj,nlay_s,jpl) , syc0 (jpi,jpj,nlay_s,jpl) , sxxc0(jpi,jpj,nlay_s,jpl) , & … … 852 968 END DO 853 969 ! 854 IF( ln_pnd_H12 ) THEN ! melt pond fraction 855 CALL iom_get( numrir, jpdom_autoglo, 'sxap' , sxap ) 856 CALL iom_get( numrir, jpdom_autoglo, 'syap' , syap ) 857 CALL iom_get( numrir, jpdom_autoglo, 'sxxap', sxxap ) 858 CALL iom_get( numrir, jpdom_autoglo, 'syyap', syyap ) 859 CALL iom_get( numrir, jpdom_autoglo, 'sxyap', sxyap ) 860 ! ! melt pond volume 861 CALL iom_get( numrir, jpdom_autoglo, 'sxvp' , sxvp ) 862 CALL iom_get( numrir, jpdom_autoglo, 'syvp' , syvp ) 863 CALL iom_get( numrir, jpdom_autoglo, 'sxxvp', sxxvp ) 864 CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp ) 865 CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp ) 970 IF( ln_pnd_LEV ) THEN ! melt pond fraction 971 IF( iom_varid( numror, 'sxap', ldstop = .FALSE. ) > 0 ) THEN 972 CALL iom_get( numrir, jpdom_autoglo, 'sxap' , sxap ) 973 CALL iom_get( numrir, jpdom_autoglo, 'syap' , syap ) 974 CALL iom_get( numrir, jpdom_autoglo, 'sxxap', sxxap ) 975 CALL iom_get( numrir, jpdom_autoglo, 'syyap', syyap ) 976 CALL iom_get( numrir, jpdom_autoglo, 'sxyap', sxyap ) 977 ! ! melt pond volume 978 CALL iom_get( numrir, jpdom_autoglo, 'sxvp' , sxvp ) 979 CALL iom_get( numrir, jpdom_autoglo, 'syvp' , syvp ) 980 CALL iom_get( numrir, jpdom_autoglo, 'sxxvp', sxxvp ) 981 CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp ) 982 CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp ) 983 ELSE 984 sxap = 0._wp ; syap = 0._wp ; sxxap = 0._wp ; syyap = 0._wp ; sxyap = 0._wp ! melt pond fraction 985 sxvp = 0._wp ; syvp = 0._wp ; sxxvp = 0._wp ; syyvp = 0._wp ; sxyvp = 0._wp ! melt pond volume 986 ENDIF 987 ! 988 IF ( ln_pnd_lids ) THEN ! melt pond lid volume 989 IF( iom_varid( numror, 'sxvl', ldstop = .FALSE. ) > 0 ) THEN 990 CALL iom_get( numrir, jpdom_autoglo, 'sxvl' , sxvl ) 991 CALL iom_get( numrir, jpdom_autoglo, 'syvl' , syvl ) 992 CALL iom_get( numrir, jpdom_autoglo, 'sxxvl', sxxvl ) 993 CALL iom_get( numrir, jpdom_autoglo, 'syyvl', syyvl ) 994 CALL iom_get( numrir, jpdom_autoglo, 'sxyvl', sxyvl ) 995 ELSE 996 sxvl = 0._wp; syvl = 0._wp ; sxxvl = 0._wp ; syyvl = 0._wp ; sxyvl = 0._wp ! melt pond lid volume 997 ENDIF 998 ENDIF 866 999 ENDIF 867 1000 ! … … 877 1010 sxc0 = 0._wp ; syc0 = 0._wp ; sxxc0 = 0._wp ; syyc0 = 0._wp ; sxyc0 = 0._wp ! snow layers heat content 878 1011 sxe = 0._wp ; sye = 0._wp ; sxxe = 0._wp ; syye = 0._wp ; sxye = 0._wp ! ice layers heat content 879 IF( ln_pnd_H12 ) THEN 880 sxap = 0._wp ; syap = 0._wp ; sxxap = 0._wp ; syyap = 0._wp ; sxyap = 0._wp ! melt pond fraction 881 sxvp = 0._wp ; syvp = 0._wp ; sxxvp = 0._wp ; syyvp = 0._wp ; sxyvp = 0._wp ! melt pond volume 1012 IF( ln_pnd_LEV ) THEN 1013 sxap = 0._wp ; syap = 0._wp ; sxxap = 0._wp ; syyap = 0._wp ; sxyap = 0._wp ! melt pond fraction 1014 sxvp = 0._wp ; syvp = 0._wp ; sxxvp = 0._wp ; syyvp = 0._wp ; sxyvp = 0._wp ! melt pond volume 1015 IF ( ln_pnd_lids ) THEN 1016 sxvl = 0._wp; syvl = 0._wp ; sxxvl = 0._wp ; syyvl = 0._wp ; sxyvl = 0._wp ! melt pond lid volume 1017 ENDIF 882 1018 ENDIF 883 1019 ENDIF … … 942 1078 END DO 943 1079 ! 944 IF( ln_pnd_ H12) THEN ! melt pond fraction1080 IF( ln_pnd_LEV ) THEN ! melt pond fraction 945 1081 CALL iom_rstput( iter, nitrst, numriw, 'sxap' , sxap ) 946 1082 CALL iom_rstput( iter, nitrst, numriw, 'syap' , syap ) … … 954 1090 CALL iom_rstput( iter, nitrst, numriw, 'syyvp', syyvp ) 955 1091 CALL iom_rstput( iter, nitrst, numriw, 'sxyvp', sxyvp ) 1092 ! 1093 IF ( ln_pnd_lids ) THEN ! melt pond lid volume 1094 CALL iom_rstput( iter, nitrst, numriw, 'sxvl' , sxvl ) 1095 CALL iom_rstput( iter, nitrst, numriw, 'syvl' , syvl ) 1096 CALL iom_rstput( iter, nitrst, numriw, 'sxxvl', sxxvl ) 1097 CALL iom_rstput( iter, nitrst, numriw, 'syyvl', syyvl ) 1098 CALL iom_rstput( iter, nitrst, numriw, 'sxyvl', sxyvl ) 1099 ENDIF 956 1100 ENDIF 957 1101 !
Note: See TracChangeset
for help on using the changeset viewer.