diff --git a/src/mage_Charriage.f90 b/src/mage_Charriage.f90 index 9fc9f0587a443d1eeabc079a8e2981b8a40524ef..7394044ddfa20e329c838c568318318824cb6a15 100644 --- a/src/mage_Charriage.f90 +++ b/src/mage_Charriage.f90 @@ -921,13 +921,23 @@ subroutine update_profil_uniforme(is, lit, CS_active_0, CS_active_1, CS_substrat real(kind=long) :: delta_m !variation de masse d'une couche sédimentaire ; > 0 si dépôt, < 0 si érosion real(kind=long) :: delta_h !variation d'épaisseur d'une couche sédimentaire real(kind=long) :: z + real(kind=long) :: L !min entre largeur active et largeur au miroir prfl => la_topo%sections(is) delta_m = CS_active_1%m + CS_substrat_1%m - CS_active_0%m - CS_substrat_0%m !on convertit la variation de masse en variation d'épaisseur ! delta_h = delta_m / (rhos * (1._long-porosity) * dx * perimetre(prfl,h_state(is)%z,lit)) - delta_h = delta_m / (rhos * (1._long-porosity) * dx * min(prfl%largeur_active,largeur(prfl,h_state(is)%z,lit))) - +! delta_h = delta_m / (rhos * (1._long-porosity) * dx * min(prfl%largeur_active,largeur(prfl,h_state(is)%z,lit))) + if (lit == 1) then + L = min(distanceH(prfl%xyz(prfl%kfg), prfl%xyz(prfl%irg)), largeur(prfl,h_state(is)%z,lit)) + elseif (lit == 3) then + L = min(distanceH(prfl%xyz(prfl%ird), prfl%xyz(prfl%kfd)), largeur(prfl,h_state(is)%z,lit)) + else + L = min(prfl%largeur_active, largeur(prfl,h_state(is)%z,lit)) + endif + + delta_h = delta_m / (rhos * (1._long-porosity) * dx * L) + !correction du profil do k = prfl%li(lit-1), prfl%li(lit)-1 if (k <= prfl%kfg .or. k >= prfl%kfd) cycle !les points kfg et kfd ne bougent pas