- Timestamp:
- 06/10/22 14:12:38 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SOURCES/dragging_coulomb_friction_simplhydro_mod.f90
r351 r357 55 55 56 56 real :: till_c0 ! A friction coefficient 57 real :: TFA_coeff ! Till friction angle parameter, could be spatially variable 57 real :: TFA_min ! Till friction angle parameter, min value (below bed_crit) 58 real :: TFA_max ! Till friction angle parameter, max value (above bed_crit) 59 real :: bed_crit ! Critical bed elevation for change in TFA 58 60 real :: Ob_coeff ! A friction coefficient, could be spatially variable 59 61 real :: m_nolin ! Schoof non-linear exponent … … 94 96 integer i,j 95 97 96 namelist/drag_coulomb_friction_simplhydro/till_c0, TFA_ coeff, Ob_coeff,m_nolin,niter_nolin,betamax,betamin,bool_sedim,file_sedim,seuil_sedim,coef_sedim98 namelist/drag_coulomb_friction_simplhydro/till_c0, TFA_min, TFA_max, bed_crit, Ob_coeff,m_nolin,niter_nolin,betamax,betamin,bool_sedim,file_sedim,seuil_sedim,coef_sedim 97 99 98 100 … … 113 115 write(num_rep_42,*) 114 116 write(num_rep_42,*) 'till_c0 = ', till_c0 115 write(num_rep_42,*) 'TFA_coeff = ', TFA_coeff 117 write(num_rep_42,*) 'TFA_min = ', TFA_min 118 write(num_rep_42,*) 'TFA_max = ', TFA_max 119 write(num_rep_42,*) 'bed_crit = ', bed_crit 116 120 write(num_rep_42,*) 'Ob_coeff = ', Ob_coeff 117 121 write(num_rep_42,*) 'm_nolin = ', m_nolin … … 125 129 write(num_rep_42,*)'/' 126 130 write(num_rep_42,428) '! till_c0: sediment cohesion (usually = 0)' 127 write(num_rep_42,428) '! TFA_coeff: till friction angle' 131 write(num_rep_42,428) '! TFA_min/max: till friction angle' 132 write(num_rep_42,428) '! bed_crit: to change the value of TFA with depth (<0 for below pi sea level' 128 133 write(num_rep_42,428) '! Ob_coeff: a friction coefficient' 129 134 write(num_rep_42,428) '! m_nolin: non-linear exponent, from 1 to infinity (put -1 for infinity)' … … 138 143 mstream_mx(:,:)=1 139 144 mstream_my(:,:)=1 140 141 145 142 146 ! coefficient permettant de modifier le basal drag. … … 200 204 implicit none 201 205 202 ! Mohr-Coulomb friction law without hydrology as described in Pattyn et al. 2017. 206 ! Mohr-Coulomb friction law without hydrology as described in PISM Martin et al. TC (2011). 207 real, dimension(nx,ny) :: TFA ! till friction angle 208 real, dimension(nx,ny) :: frac_porewater ! water pressure as a fraction of the total overburden pressure 203 209 real, dimension(nx,ny) :: effective_pressure ! local simple Neff 204 210 real, dimension(nx,ny) :: effective_pressure_mx ! local simple Neff … … 211 217 real,dimension(nx,ny) :: hwatmy ! hauteur d'eau staggered grille - afq 212 218 219 real,dimension(nx,ny) :: Bsea ! temporary variable 220 213 221 real,parameter :: u0 = 100d0 ! threshold sliding speed 214 222 … … 216 224 217 225 !$OMP WORKSHARE 226 Bsea(:,:) = Bsoc(:,:)-sealevel_2d(:,:) 218 227 hwatmx(:,:)=0. 219 228 hwatmy(:,:)=0. 220 effective_pressure(:,:)= max ( RO*G*H(:,:)-max(-ROFRESH*G*(B(:,:)-sealevel_2d(:,:)), 0.) , 1. ) !limited to 1Pa 229 where (Bsea(:,:).le.bed_crit) 230 TFA(:,:) = TFA_min 231 elsewhere (Bsea(:,:).le.0.) 232 TFA(:,:) = TFA_min + TFA_max * (1-Bsea(:,:)/bed_crit) 233 elsewhere 234 TFA(:,:) = TFA_max 235 endwhere 236 237 ! [0,1] linear elevation weighing: 238 frac_porewater(:,:) = 1. - min ( max ( Bsea(:,:), 0. ) , 1000. ) / 1000. 239 240 241 effective_pressure(:,:) = max ( RO*G*H(:,:) * (1.-0.96 * frac_porewater(:,:)) , 1. ) !limited to 1Pa 221 242 !$OMP END WORKSHARE 243 222 244 !$OMP DO 223 245 do i=2,nx … … 238 260 !$OMP WORKSHARE 239 261 240 tauc_mx(:,:) = till_c0 + Ob_coeff*TAND(TFA _coeff) * effective_pressure_mx(:,:) * coef_sedim_mx(:,:)241 tauc_my(:,:) = till_c0 + Ob_coeff*TAND(TFA _coeff) * effective_pressure_my(:,:) * coef_sedim_my(:,:)262 tauc_mx(:,:) = till_c0 + Ob_coeff*TAND(TFA) * effective_pressure_mx(:,:) * coef_sedim_mx(:,:) 263 tauc_my(:,:) = till_c0 + Ob_coeff*TAND(TFA) * effective_pressure_my(:,:) * coef_sedim_my(:,:) 242 264 243 265 ! ux/uy(:,:,nz) should be used but only uxbar/uybar are updated by diagno_L2
Note: See TracChangeset
for help on using the changeset viewer.