- Timestamp:
- 2020-04-08T18:54:44+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icedyn_adv_pra.F90
r12197 r12720 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 ! - - … … 93 95 REAL(wp), DIMENSION(jpi,jpj,jpl) :: zarea 94 96 REAL(wp), DIMENSION(jpi,jpj,jpl) :: z0ice, z0snw, z0ai, z0smi, z0oi 95 REAL(wp), DIMENSION(jpi,jpj,jpl) :: z0ap , z0vp 97 REAL(wp), DIMENSION(jpi,jpj,jpl) :: z0ap , z0vp, z0vl 96 98 REAL(wp), DIMENSION(jpi,jpj,nlay_s,jpl) :: z0es 97 99 REAL(wp), DIMENSION(jpi,jpj,nlay_i,jpl) :: z0ei … … 159 161 END DO 160 162 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 163 z0ap(:,:,jl) = pa_ip(:,:,jl) * e1e2t(:,:) ! Melt pond fraction 164 z0vp(:,:,jl) = pv_ip(:,:,jl) * e1e2t(:,:) ! Melt pond volume 165 z0vl(:,:,jl) = pv_il(:,:,jl) * e1e2t(:,:) ! Melt pond lid volume 163 166 ENDIF 164 167 END DO … … 196 199 CALL adv_x( zdt , zudy , 1._wp , zarea , z0vp , sxvp , sxxvp , syvp , syyvp , sxyvp ) !--- melt pond volume 197 200 CALL adv_y( zdt , zvdx , 0._wp , zarea , z0vp , sxvp , sxxvp , syvp , syyvp , sxyvp ) 201 CALL adv_x( zdt , zudy , 1._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl ) !--- melt pond lid volume 202 CALL adv_y( zdt , zvdx , 0._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl ) 198 203 ENDIF 199 204 ! !--------------------------------------------! … … 227 232 CALL adv_y( zdt , zvdx , 1._wp , zarea , z0vp , sxvp , sxxvp , syvp , syyvp , sxyvp ) !--- melt pond volume 228 233 CALL adv_x( zdt , zudy , 0._wp , zarea , z0vp , sxvp , sxxvp , syvp , syyvp , sxyvp ) 229 ENDIF 234 CALL adv_y( zdt , zvdx , 1._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl ) 235 CALL adv_x( zdt , zudy , 0._wp , zarea , z0vl , sxvl , sxxvl , syvl , syyvl , sxyvl ) !--- melt pond lid volume 236 ENDIF 230 237 ! 231 238 ENDIF … … 247 254 pa_ip(:,:,jl) = z0ap(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 248 255 pv_ip(:,:,jl) = z0vp(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 256 pv_il(:,:,jl) = z0vl(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 249 257 ENDIF 250 258 END DO … … 263 271 ! Remove negative values (conservation is ensured) 264 272 ! (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 )273 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 274 ! 267 275 ! --- Make sure ice thickness is not too big --- ! … … 756 764 & sxsal(jpi,jpj,jpl) , sysal(jpi,jpj,jpl) , sxxsal(jpi,jpj,jpl) , syysal(jpi,jpj,jpl) , sxysal(jpi,jpj,jpl) , & 757 765 & 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) , & 766 & sxap (jpi,jpj,jpl) , syap (jpi,jpj,jpl) , sxxap (jpi,jpj,jpl) , syyap (jpi,jpj,jpl) , sxyap (jpi,jpj,jpl) , & 767 & sxvp (jpi,jpj,jpl) , syvp (jpi,jpj,jpl) , sxxvp (jpi,jpj,jpl) , syyvp (jpi,jpj,jpl) , sxyvp (jpi,jpj,jpl) , & 768 & sxvl (jpi,jpj,jpl) , syvl (jpi,jpj,jpl) , sxxvl (jpi,jpj,jpl) , syyvl (jpi,jpj,jpl) , sxyvl (jpi,jpj,jpl) , & 760 769 ! 761 770 & sxc0 (jpi,jpj,nlay_s,jpl) , syc0 (jpi,jpj,nlay_s,jpl) , sxxc0(jpi,jpj,nlay_s,jpl) , & … … 864 873 CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp ) 865 874 CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp ) 875 ! ! melt pond lid volume 876 CALL iom_get( numrir, jpdom_autoglo, 'sxvl' , sxvl ) 877 CALL iom_get( numrir, jpdom_autoglo, 'syvl' , syvl ) 878 CALL iom_get( numrir, jpdom_autoglo, 'sxxvl', sxxvl ) 879 CALL iom_get( numrir, jpdom_autoglo, 'syyvl', syyvl ) 880 CALL iom_get( numrir, jpdom_autoglo, 'sxyvl', sxyvl ) 866 881 ENDIF 867 882 ! … … 880 895 sxap = 0._wp ; syap = 0._wp ; sxxap = 0._wp ; syyap = 0._wp ; sxyap = 0._wp ! melt pond fraction 881 896 sxvp = 0._wp ; syvp = 0._wp ; sxxvp = 0._wp ; syyvp = 0._wp ; sxyvp = 0._wp ! melt pond volume 897 sxvl = 0._wp ; syvl = 0._wp ; sxxvl = 0._wp ; syyvl = 0._wp ; sxyvl = 0._wp ! melt pond lid volume 882 898 ENDIF 883 899 ENDIF … … 954 970 CALL iom_rstput( iter, nitrst, numriw, 'syyvp', syyvp ) 955 971 CALL iom_rstput( iter, nitrst, numriw, 'sxyvp', sxyvp ) 972 ! ! melt pond lid volume 973 CALL iom_rstput( iter, nitrst, numriw, 'sxvl' , sxvl ) 974 CALL iom_rstput( iter, nitrst, numriw, 'syvl' , syvl ) 975 CALL iom_rstput( iter, nitrst, numriw, 'sxxvl', sxxvl ) 976 CALL iom_rstput( iter, nitrst, numriw, 'syyvl', syyvl ) 977 CALL iom_rstput( iter, nitrst, numriw, 'sxyvl', sxyvl ) 956 978 ENDIF 957 979 !
Note: See TracChangeset
for help on using the changeset viewer.