Commit 8f1bf069 authored by Gwenaelle Gremion's avatar Gwenaelle Gremion
Browse files

Test avec les equations de VanRijn-beug pour grande tailles

parent 3d7dc6b7
......@@ -97,11 +97,11 @@
ice_file= 'ice.dat'
iceatt= 0.90
wet_mode= 1
heat_method= 2
heat_method= 0
const_swr= 100.0
const_heat= -100.0
heatflux_file= 'narr_daily_heatflux_ice.dat'
momentum_method= 2
momentum_method= 0
const_tx= 0.1
const_ty= 0.0
momentumflux_file='narr_hourly_momentumflux.dat'
......
......@@ -16,11 +16,11 @@
!
!-------------------------------------------------------------------------------
&model_setup
title= "Arctic SCM"
title= "exp1"
nlev= 80
dt= 300.
dt= 120.
cnpar= 1.0
buoy_method= 2
buoy_method= 1
/
!-------------------------------------------------------------------------------
......@@ -57,9 +57,9 @@
!-------------------------------------------------------------------------------
&time
timefmt= 2
MaxN= 1200
start= '2004-01-01 00:00:00'
stop= '2004-12-31 00:00:00'
MaxN= 10
start= '2008-01-01 00:00:00'
stop= '2009-05-15 00:00:00'
/
!-------------------------------------------------------------------------------
......@@ -87,9 +87,9 @@
!-------------------------------------------------------------------------------
&output
out_fmt= 2
out_dir= "."
out_fn= "amdgulf"
nsave= 36
out_dir= "./"
out_fn= "exptt"
nsave= 10
diagnostics= .false.
mld_method= 2
diff_k= 1.e-5
......
......@@ -48,7 +48,7 @@
!
!-------------------------------------------------------------------------------
&sprofile
s_prof_method= 2
s_prof_method= 1
s_analyt_method= 2
z_s1= 25.
s_1= 31.
......@@ -56,9 +56,9 @@
s_2= 32.
s_obs_NN= 2.56e-4
s_prof_file= 'franklin_sprof_ctd.dat'
SRelaxTauM= 1209600.
SRelaxTauB= 1209600.
SRelaxTauS= 1209600.
SRelaxTauM= 1.e15
SRelaxTauB= 1.e15
SRelaxTauS= 1.e15
SRelaxBott= 0.
SRelaxSurf= 0.
/
......@@ -110,7 +110,7 @@
!
!-------------------------------------------------------------------------------
&tprofile
t_prof_method= 2
t_prof_method= 1
t_analyt_method= 2
z_t1= 25.
t_1= -1.0
......@@ -118,9 +118,9 @@
t_2= 0.0
t_obs_NN= 2.56e-4
t_prof_file= 'franklin_tprof_ctd.dat'
TRelaxTauM= 1209600.
TRelaxTauB= 1209600.
TRelaxTauS= 1209600.
TRelaxTauM= 1.e15
TRelaxTauB= 1.e15
TRelaxTauS= 1.e15
TRelaxBott= 0.
TRelaxSurf= 0.
/
......
......@@ -1184,6 +1184,8 @@ end if
REALTYPE :: diam_msn_max,min_size_msn
! Sedimentation rate msn
REALTYPE :: w_msn_m,Re_msn,Rmsn,CFL
REALTYPE :: ceci
!EOP
!-----------------------------------------------------------------------
......@@ -1360,6 +1362,18 @@ diam_dph = sign(abs(((size_dph*2.)*(size_dph*2.)*(size_dph*2.)))**(1./3.),((size
diam_dzo = sign(abs(((size_dzo*4.)*(size_dzo*4.)*(size_dzo*2.)))**(1./3.),((size_dzo*4.)*(size_dzo*4.)*(size_dzo*2.)))
diam_fp = sign(abs(((size_fp*4.)*(size_fp*4.)*(size_fp*2.)))**(1./3.),((size_fp*4.)*(size_fp*4.)*(size_fp*2.)))
!----------Calculation of the CSF factor
!--Phytoplankton
CSF_phy = (size_phy*2)/sqrt((size_phy*2)*(size_phy*2))
!--Dead Phytoplankton
CSF_dph = (size_dph*2)/sqrt((size_dph*2)*(size_dph*2))
!--Dead Zooplankton
CSF_dzo = (size_dzo*2)/sqrt((size_dzo*4)*(size_dzo*4))
!--Fecla Pellets
CSF_fp = (size_fp*2)/sqrt((size_fp*4)*(size_fp*4))
!----------Calcul of densities
!Fluid density
......@@ -1458,8 +1472,6 @@ else if (Phys_w .eq. 3.0) then !#5
else if (Phys_w .eq. 4.0) then !#5
!--Phytoplankton
!-- Calculation of the CSF factor
CSF_phy = (size_phy*2)/sqrt((size_phy*2)*(size_phy*2))
if(CSF_phy .ge. 0.0 .and. CSF_phy.lt. 0.4) then !#5.5
CSF_phy = 2.18-(2.09*CSF_phy)
......@@ -1474,8 +1486,6 @@ else if (Phys_w .eq. 4.0) then !#5
w_p_m=(1/(18*(kinvis*densFlu)))*(1/CSF_phy)*(Rp)*g*(diam_phy)**2 ![m/s]
!--Dead phytoplankton
!-- Calculation of the CSF factor
CSF_dph = (size_dph*2)/sqrt((size_dph*2)*(size_dph*2))
if(CSF_dph .ge. 0.0 .and. CSF_dph.lt. 0.4) then !#5.7
CSF_dph = 2.18-(2.09*CSF_dph)
......@@ -1489,11 +1499,7 @@ else if (Phys_w .eq. 4.0) then !#5
w_dph_m=(1/(18*(kinvis*densFlu)))*(1/CSF_dph)*(Rdph)*g*(diam_dph)**2 ![m/s]
!--Dead Zooplankton
!-- Calculation of the CSF factor
CSF_dzo = (size_dzo*2)/sqrt((size_dzo*4)*(size_dzo*4))
if(CSF_dzo .ge. 0.0 .and. CSF_dzo.lt. 0.4) then !#5.8
CSF_dzo = 2.18-(2.09*CSF_dzo)
......@@ -1507,10 +1513,7 @@ else if (Phys_w .eq. 4.0) then !#5
w_dzo_m=(1/(18*(kinvis*densFlu)))*(1/CSF_dzo)*(Rdzo)*g*(diam_dzo)**2 ![m/s]
!--Fecal pellets
!-- Calculation of the CSF factor
CSF_fp = (size_fp*2)/sqrt((size_fp*4)*(size_fp*4))
if(CSF_fp .ge. 0.0 .and. CSF_fp.lt. 0.4) then !#5.9
CSF_fp = 2.18-(2.09*CSF_fp)
......@@ -1523,7 +1526,120 @@ else if (Phys_w .eq. 4.0) then !#5
endif !#5.9
w_fp_m=(1/(18*(kinvis*densFlu)))*(1/CSF_fp)*(Rfp)*g*(diam_fp)**2 ![m/s]
!!--------Depending on CSF + Re
else if (Phys_w .eq. 5.0) then !#5
!--Phytoplankton
if (CSF_phy .eq. 1.0) then ! Considered as a sphere
w_p_m = -(((Rp/densFlu)*g*(diam_phy**2))/(18*kinvis)) ![m/s]
!! write(*,*) 'CSF_phy = 0 --> Sphere, then Stokes Law ',w_p_m
! Comparaison with the Stokes range ! VanRijn 1993
Re_phy = abs(w_p_m*(diam_phy/kinvis))
if (Re_phy .gt. 1.0) then
w_p_m = -(diam_phy**0.5/secs_pr_day) ![m/s]
!! write(*,*) 'Reynolds number for phytoplankton > 1',w_p_m
endif
else ! No spherical
if(diam_phy .le. 0.0001 )then
! If the diameter of phy (d) --> 1 < d <= 100 micrometers (VanRijn 1993)
w_p_m =-(((Rp/densFlu)*g*(diam_phy**2))/(18*kinvis)) ![m/s]
!! write(*,*) 'CSF .ne. 0.0 --> Diameter of phy : 1< d <= 100 micrometers, settling =' ,w_p_m
elseif(diam_phy .gt. 0.0001 .and. diam_phy .le. 0.001)then
! If the diameter of Phy (d) --> 100< d micrometers (VanRijn 1993)
w_p_m= ((10.0*kinvis)/diam_phy)*(((1+((0.01*(Rp/densFlu)*g*((diam_phy)**3.0))/(kinvis**2.0)))**0.5)-1) ![m/s]
! w_p_m = -(((10*kinvis)/diam_phy)*&
! ((1+((0.01*(Rp/densFlu)*g*(diam_phy)**3.0) /kinvis**2.0)**0.5) -1)) ![m/s]
!! write(*,*) 'CSF .ne. 0.0 --> Diameter of phy : 100< d micrometers, settling =' ,w_p_m
elseif(diam_phy .gt. 0.001) then
! If the diameter of Phy (d) --> d > 1000 micrometers (VanRijn 1993)
w_p_m = -(1.1*((Rp/densFlu)*g*diam_phy)**0.5) ![m/s]
!! write(*,*) 'Diameter of Phy : d > 1000 micrometers, settling =' ,w_p_m
endif
endif
!--Dead Phytoplankton
if (CSF_dph .eq. 1.0) then ! Considered as a sphere
w_dph_m = -(((Rdph/densFlu)*g*(diam_dph**2))/(18*kinvis)) ![m/s]
!! write(*,*) 'CSF_dph = 0 --> Sphere, then Stokes Law ',w_dph_m
! Comparaison with the Stokes range ! VanRijn 1993
Re_dph = abs(w_dph_m*(diam_dph/kinvis))
if (Re_dph .gt. 1.0) then
w_dph_m = -diam_dph**0.5/secs_pr_day ![m/s]
!! write(*,*) 'Reynolds number for Dead-phytoplankton > 1',w_dph_m
endif
else ! No spherical
if(diam_dph .le. 0.0001 )then
! If the diameter of dph (d) --> 1 < d <= 100 micrometers (VanRijn 1993)
w_dph_m =-(((Rdph/densFlu)*g*(diam_dph**2))/(18*kinvis)) ![m/s]
!! write(*,*) 'CSF .ne. 0.0 --> Diameter of dph : 1< d <= 100 micrometers, settling =' ,w_dph_m
elseif(diam_dph .gt. 0.0001 .and. diam_dph .le. 0.001 )then
! If the diameter of dph (d) --> 100< d micrometers (VanRijn 1993)
w_dph_m= ((10.0*kinvis)/diam_dph)*(((1+((0.01*(Rdph/densFlu)*g*((diam_dph)**3.0))/(kinvis**2.0)))**0.5)-1) ![m/s]
! w_dph_m = -(((10*kinvis)/diam_dph)*&
! ((1+((0.01*(Rdph/densFlu)*g*(diam_dph)**3.0) /kinvis**2.0)**0.5) -1)) ![m/s]
!! write(*,*) 'CSF .ne. 0.0 --> Diameter of dph : 100< d micrometers, settling =' ,w_dph_m
elseif(diam_dph .gt. 0.001) then
! If the diameter of dph (d) --> d > 1000 micrometers (VanRijn 1993)
w_dph_m = -(1.1*((Rdph/densFlu)*g*diam_dph)**0.5) ![m/s]
!! write(*,*) 'Diameter of dph : d > 1000 micrometers, settling =' ,w_dph_m
endif
endif
!--Dead Zooplankton
if (CSF_dzo .eq. 1.0) then ! Considered as a sphere
w_dzo_m = -(((Rdzo/densFlu)*g*(diam_dzo**2))/(18*kinvis)) ![m/s]
!! write(*,*) 'CSF_dzo = 0 --> Sphere, then Stokes Law ',w_dzo_m
! Comparaison with the Stokes range ! VanRijn 1993
Re_dzo = abs(w_dzo_m*(diam_dzo/kinvis))
if (Re_dzo .gt. 1.0) then
w_dzo_m = -diam_dzo**0.5/secs_pr_day ![m/s]
!! write(*,*) 'Reynolds number for Dead-zooplankton > 1',w_dzo_m
endif
else ! No spherical
if(diam_dzo .le. 0.0001 )then
! If the diameter of dzo (d) --> 1 < d <= 100 micrometers (VanRijn 1993)
w_dzo_m =-(((Rdzo/densFlu)*g*(diam_dzo**2))/(18*kinvis)) ![m/s]
!! write(*,*) 'CSF .ne. 0.0 --> Diameter of dzo: 1< d <= 100 micrometers, settling =' ,w_dzo_m
elseif(diam_dzo .gt. 0.0001 .and. diam_dzo .le. 0.001)then
! If the diameter of dzo (d) --> 100< d micrometers (VanRijn 1993)
w_dzo_m= ((10.0*kinvis)/diam_dzo)*(((1+((0.01*(Rdzo/densFlu)*g*((diam_dzo)**3.0))/(kinvis**2.0)))**0.5)-1) ![m/s]
! w_dzo_m = -(((10*kinvis)/diam_dzo)*&
! ((1+((0.01*(Rdzo/densFlu)*g*(diam_dzo)**3.0) /kinvis**2.0)**0.5) -1)) ![m/s]
!! write(*,*) 'CSF .ne. 0.0 --> Diameter of dzo : 100< d micrometers, settling =' ,w_dzo_m
elseif(diam_dzo .gt. 0.001) then
! If the diameter of Dzo (d) --> d > 1000 micrometers (VanRijn 1993)
w_dzo_m = -(1.1*((Rdzo/densFlu)*g*diam_dzo)**0.5) ![m/s]
!! write(*,*) 'Diameter of Dzo : d > 1000 micrometers, settling =' ,w_dzo_m
endif
endif
!--Fecal pellets
if (CSF_fp .eq. 1.0) then ! Considered as a sphere
w_fp_m = -(((Rfp/densFlu)*g*(diam_fp**2))/(18*kinvis)) ![m/s]
!! write(*,*) 'CSF_fp = 0 --> Sphere, then Stokes Law ',w_fp_m
! Comparaison with the Stokes range ! VanRijn 1993
Re_fp = abs(w_fp_m*(diam_fp/kinvis))
if (Re_fp .gt. 1.0) then
w_fp_m = -diam_fp**0.5/secs_pr_day ![m/s]
!! write(*,*) 'Reynolds number for Fecal pellets > 1',w_fp_m
endif
else ! No spherical
if( diam_fp .le. 0.0001 )then
! If the diameter of fp (d) --> 1 < d <= 100 micrometers (VanRijn 1993)
w_fp_m =-(((Rfp/densFlu)*g*(diam_fp**2))/(18*kinvis)) ![m/s]
!! write(*,*) 'CSF .ne. 0.0 --> Diameter of fp: 1< d <= 100 micrometers, settling =' ,w_fp_m
elseif(diam_fp .gt. 0.0001 .and. diam_fp .le. 0.001)then
! If the diameter of fp (d) --> 100< d micrometers (VanRijn 1993)
w_fp_m= ((10.0*kinvis)/diam_fp)*(((1+((0.01*(Rfp/densFlu)*g*((diam_fp)**3.0))/(kinvis**2.0)))**0.5)-1) ![m/s]
! w_fp_m = -(((10*kinvis)/diam_fp)*&
! ((1+((0.01*(Rfp/densFlu)*g*(diam_fp)**3.0) /kinvis**2.0)**0.5) -1)) ![m/s]
!! write(*,*) 'CSF .ne. 0.0 --> Diameter of fp : 100< d micrometers, settling =' ,w_fp_m
elseif(diam_fp .gt. 0.001) then
! If the diameter of Fp (d) --> d > 1000 micrometers (VanRijn 1993)
! w_fp_m = -(1.1*((Rfp/densFlu)*g*diam_fp)**0.5) ![m/s]
w_fp_m = -(1.1*((Rfp/densFlu)*g*diam_fp)**0.5) ![m/s]
!! write(*,*) 'Diameter of Fp : d > 1000 micrometers, settling =' ,w_fp_m
endif
endif
else !#5
write(*,*) 'No specification for settling velocity of particles,set to nml values'
w_p_m = w_p ![m/s]
......@@ -1531,8 +1647,9 @@ else !#5
w_dzo_m = w_dzo![m/s]
w_fp_m = w_fp ![m/s]
endif !#5
! Comparaison with the Stokes range ! VanRijn 1993
If (Phys_w .ne. 5.0) then
! ! Comparaison with the Stokes range ! VanRijn 1993
Re_phy = abs(w_p_m*(diam_phy/kinvis))
Re_dph = abs(w_dph_m*(diam_dph/kinvis))
Re_dzo = abs(w_dzo_m*(diam_dzo/kinvis))
......@@ -1557,6 +1674,9 @@ if (Re_fp .gt. 1.0)then !#9
w_fp_m = -diam_fp**0.5/secs_pr_day ![m/s]
write(*,*) 'Reynolds number for fecal pellets > 1'
endif !#9
endif
!Everyone will settle at the end of the loop (see below)
......@@ -2200,7 +2320,7 @@ endif !#1
!-----------------------------------------------------------------------------------
! SIZE Marine Snow with aggregation
!-----------------------------------------------------------------------------------
! ---Maximum size at dissagregation (Alldredge 1990)
if(dm_msn .eq. 1.0) then
diam_msn_max = coef1*(eps(ci))**(-coef2) ! [m]
......@@ -2322,7 +2442,6 @@ endif !#1
! cc(size_intrm,ci) = _ZERO_
! write(*,*)'Size but no msn at :',ci
! endif
!-----------------------------------------------------------------------------------
! FRAGMENTATION
! -----------
......@@ -2485,7 +2604,9 @@ endif
! We want to use a calculated settling velocity for the msn
! Settling velocity send to the advection scheme as well as the size of the msn
!-------------------------------------------------------------------------------------
write(*,*)'Depth',ci
write(*,*)'[msn]',cc(d4,ci)
write(*,*) 'Diameter of msn :',cc(size_msn,ci)
!--» cc(size_msn,ci) --> is the diameter after coag and frag
Rmsn = (rho_msn-densFlu)
......@@ -2538,52 +2659,96 @@ endif
w_msn_m=(1/(18*(kinvis*densFlu)))*(1/CSF_msn)*(Rmsn)*g*(cc(size_msn,ci))**2 ![m/s]
elseif (w_msnow .eq. 5.0) then !#2!
!The choice of settling velocity will depend on the choice for diam_msn_us by the user. This will apply no matter the size of the particle of msn
if( diam_msn_us .gt. 0.000001 .and. diam_msn_us .le. 0.0001 )then
! if( diam_msn_us .gt. 0.000001 .and. diam_msn_us .le. 0.0001 )then
write(*,*) 'Diameter of msn :',cc(size_msn,ci)
if(cc(size_msn,ci) .le. 0.0001 )then
! If the diameter of Msn (d) --> 1< d <= 100 micrometers (VanRijn 1993)
w_msn_m = -(((2.65-1)*g*(cc(size_msn,ci)**2))/18*kinvis) ![m/s]
write(*,*) 'Diameter of msn : 1< d <= 100 micrometers, settling =' ,w_msn_m
w_msn_m = -(((Rmsn/densFlu)*g*(cc(size_msn,ci)**2))/(18*kinvis)) ![m/s]
write(*,*) 'Diameter of msn : d <= 100 micrometers, settling (Stokes Law is used !) =' ,w_msn_m
elseif( diam_msn_us .gt. 0.0001 .and. diam_msn_us .lt. 0.001 ) then
elseif(cc(size_msn,ci) .gt. 0.0001 .and. cc(size_msn,ci) .lt. 0.001 ) then
! If the diameter of Msn (d) --> 100< d <= 1000 micrometers (VanRijn 1993)
w_msn_m = -(((10*kinvis)/cc(size_msn,ci))*&
((1+((0.01*(2.65-1)*g*(cc(size_msn,ci))**3.0) /kinvis**2.0)**0.5) -1)) ![m/s]
((1+((0.01*(Rmsn/densFlu)*g*cc(size_msn,ci)**3.0) /kinvis**2.0)**0.5) -1)) ![m/s]
write(*,*) 'Diameter of msn : 100< d <= 1000 micrometers, settling =' ,w_msn_m
elseif( diam_msn_us .gt. 0.001) then
else !(cc(size_msn,ci).gt. 0.001) then
! If the diameter of Msn (d) --> d > 1000 micrometers (VanRijn 1993)
w_msn_m = -(1.1*((2.65-1)*g*cc(size_msn,ci))**0.5)/secs_pr_day ![m/s]
w_msn_m = -(1.1*((Rmsn/densFlu)*g*cc(size_msn,ci))**0.5) ![m/s]
write(*,*) 'Diameter of msn : d > 1000 micrometers, settling =' ,w_msn_m
else
w_msn_m =- (g*((cc(size_msn,ci))**2)*Rmsn)/(18*dynvis) ![m/s]
write(*,*) 'Diam.of msn < than 1 micrometers: Stokes Law is used ! ',w_msn_m
endif
elseif (w_msnow .eq. 6.0) then !#2!
if (CSF .eq. 1.0) then ! Considered as a sphere
w_msn_m = -(((Rmsn/densFlu)*g*(cc(size_msn,ci)**2))/(18*kinvis)) ![m/s]
write(*,*) 'CSF_msn = 0 --> Sphere, then Stokes Law ',w_msn_m
! Comparaison with the Stokes range ! VanRijn 1993
Re_msn = abs(w_msn_m*(cc(size_msn,ci)/kinvis))
if (Re_msn .gt. 1.0) then
w_msn_m = -(cc(size_msn,ci)**0.5/secs_pr_day) ![m/s]
write(*,*) 'Reynolds number for msn > 1',w_msn_m
endif
else ! No spherical
if(cc(size_msn,ci).le. 0.0001 )then
! If the diameter of msn (d) --> 1 < d <= 100 micrometers (VanRijn 1993)
w_msn_m =-(((Rmsn/densFlu)*g*(cc(size_msn,ci)**2))/(18*kinvis)) ![m/s]
write(*,*) 'CSF .ne. 0.0 --> Diameter of msn: 1< d <= 100 micrometers, settling =' ,w_msn_m
elseif(cc(size_msn,ci) .gt. 0.0001 )then
! If the diameter of dzo (d) --> 100< d micrometers (VanRijn 1993)
w_msn_m = -(((10*kinvis)/cc(size_msn,ci))*&
((1+((0.01*(Rmsn/densFlu)*g*(cc(size_msn,ci))**3.0) /kinvis**2.0)**0.5) -1)) ![m/s]
write(*,*) 'CSF .ne. 0.0 --> Diameter of msn : 100< d micrometers, settling =' ,w_msn_m
endif
endif
if(cc(size_msn,ci) .gt. 0.000001 .and. cc(size_msn,ci) .le. 0.0001 )then
! If the diameter of Msn (d) --> 1< d <= 100 micrometers (VanRijn 1993)
w_msn_m = -(((2.65-1)*g*(cc(size_msn,ci)**2))/18*kinvis) ![m/s]
write(*,*) 'Diameter of msn : 1< d <= 100 micrometers, settling =' ,w_msn_m
elseif(cc(size_msn,ci) .gt. 0.0001 .and. cc(size_msn,ci) .lt. 0.001 ) then
! If the diameter of Msn (d) --> 100< d <= 1000 micrometers (VanRijn 1993)
w_msn_m = -(((10*kinvis)/cc(size_msn,ci))*&
((1+((0.01*(2.65-1)*g*(cc(size_msn,ci))**3.0) /kinvis**2.0)**0.5) -1)) ![m/s]
write(*,*) 'Diameter of msn : 100< d <= 1000 micrometers, settling =' ,w_msn_m
elseif (w_msnow .eq. 7.0) then !#2!
! If the diameter of Msn (d) --> d <= 100 micrometers (Komar 1978)
if(cc(size_msn,ci) .le. 0.0001 )then
if(CSF .ge. 0.0 .and. CSF.lt. 0.4) then !#2.3
CSF_msn = 2.18-(2.09*CSF)
else if (CSF .ge. 0.4 .and. CSF .lt. 0.8) then!#2.3
CSF_msn = 0.946*(CSF)**(-0.378)
else if (CSF .ge. 0.8 .and. CSF .le. 1.0) then!#2.3
CSF_msn = 1.0 ! consider as a sphere
else !#2.3
write (*,*) 'Error in CSF values for Marine snow : CSF .NE. [0-1]'
endif !#2.3
w_msn_m=(1/(18*(kinvis*densFlu)))*(1/CSF_msn)*(Rmsn/densFlu)*g*(cc(size_msn,ci))**2 ![m/s]
write(*,*) 'Diameter of msn : d <= 100 micrometers, settling (Stokes Law is used !) =' ,w_msn_m
! If the diameter of Msn (d) --> 100< d <= 1000 micrometers (VanRijn 1993)
elseif(cc(size_msn,ci) .gt. 0.0001 .and. cc(size_msn,ci) .lt. 0.001 ) then
w_msn_m= ((10.0*kinvis)/cc(size_msn,ci))*(((1+((0.01*(Rmsn/densFlu)*g*(cc(size_msn,ci)**3.0))/(kinvis**2.0)))**0.5)-1) ![m/s]
write(*,*) 'Diameter of msn : 100< d <= 1000 micrometers, settling =' ,w_msn_m
! w_msn_m = -(((10.0*kinvis)/cc(size_msn,ci))* &
! ((1+((0.01*(Rmsn/densFlu)*g*(cc(size_msn,ci)**3.0))/kinvis**2.0)**0.5) -1))
! If the diameter of Msn (d) --> d > 1000 micrometers (VanRijn 1993)
elseif (cc(size_msn,ci) .ge. 0.001 .and. cc(size_msn,ci) .le. diam_msn_max) then
! w_msn_m = -(1.1*(((Rmsn/densFlu)*g*(cc(size_msn,ci)))**0.5)) ![m/s]
! w_msn_m = -(((cc(size_msn,ci))**(1/2))/secs_pr_day)
w_msn_m = -(1.1*(((Rmsn/densFlu)*g*cc(size_msn,ci))**(1/2)))
! write(*,*) 'Diameter of msn : d > 1000 micrometers, settling =' ,w_msn_m
else
w_msn_m = w_msn
write(*,*) ' Diam_msn_max is Overpass, value form nml is used',w_msn_m
endif
if (abs(w_msn_m) .gt. (depth_bio/nlev)/dt_bio )then
write(*,*) 'CFL Constrain is OVERPASS for W-msn'
w_msn_m = w_msn
write(*,*) 'settling',w_msn_m
endif
elseif(cc(size_msn,ci) .gt. 0.001) then
! If the diameter of Msn (d) --> d > 1000 micrometers (VanRijn 1993)
w_msn_m = -(1.1*((2.65-1)*g*cc(size_msn,ci))**0.5) ![m/s]
write(*,*) 'Diameter of msn : d > 1000 micrometers, settling =' ,w_msn_m
else
w_msn_m =- (g*((cc(size_msn,ci))**2)*Rmsn)/(18*dynvis) ![m/s]
write(*,*) 'Diam.of msn < than 1 micrometers: Stokes Law is used ! ',w_msn_m
endif
else !#2!
!if (w_msnow .ne. 0.0 .and. w_msnow .ne. 1.0 .and. w_msnow .ne. 2.0 .and. w_msnow .ne. 3.0 .and. w_msnow .ne. 4.0 .and.w_msnow .ne. 5.0 .and. w_msnow .ne. 6.0 ) then
......@@ -2593,31 +2758,33 @@ endif
elseif (cc(d4,ci) .ge. cons_max)then !#1
w_msn_m=-(coef3*cc(d4,ci)**(1.6))/secs_pr_day ![m/s] ! Metha 1989
! write(*,*)'[msn] > cons_max at :',ci
write(*,*)'[msn] > cons_max at :',ci
else !#1
write(*,*)'At Depth : ',ci
write(*,*)'Error with the specification of [msn] that equal : ',cc(d4,ci)
w_msn_m = 0.0
stop "Nan for cc(d4,ci)"
endif !#1
!-----------------------------------------------------------------------------------
!! --- Convertion & Comparaison with the Stokes range
!-----------------------------------------------------------------------------------
!if (w_msnow .ne. 6.0) then
!--» Comparaison with the Stokes range ! VanRijn 1993
Re_msn = abs(w_msn_m*(cc(size_msn,ci)/kinvis))
! Re_msn = abs(w_msn_m*(cc(size_msn,ci)/kinvis))
if (Re_msn .lt. 1.0)then !#3
! write(*,*) 'Reynolds number for marine snow allow to respect Stockes range < 1'
else !#3
write(*,*) 'Reynolds number for marine snow > 1'
w_msn_m = -(cc(size_msn,ci)**0.5/secs_pr_day) ![m/s]
if (w_msnow .eq. 1.0 .or. w_msnow .eq. 2.0 .or. w_msnow .eq. 3.0 )then
write(*,*) 'Reynolds number for marine snow > 1, another settling velocity scheme should be chose for msn'
endif
endif !#3
! if (Re_msn .lt. 1.0)then !#3
! write(*,*) 'Reynolds number for marine snow allow to respect Stockes range < 1'
! else !#3
! write(*,*) 'Reynolds number for marine snow > 1'
! w_msn_m = -(cc(size_msn,ci)**0.5/secs_pr_day) ![m/s]
! if (w_msnow .eq. 1.0 .or. w_msnow .eq. 2.0 .or. w_msnow .eq. 3.0 )then
! write(*,*) 'Reynolds number for marine snow > 1, another settling velocity scheme should be chose for msn'
! endif
! endif !#3
!endif
!-----------------------------------------------------------------------------------
! ADVECTION (WS) OF THE PARTICLES
......@@ -2645,7 +2812,7 @@ endif !#3
endif
if (rho_msn .gt. densFlu .AND. w_msn_m .gt. 0.0) then
write(*,*)' Msn density > dens_fluid + W_msn_m > 0 --> Settling go up, but is constrain to do down !'
write(*,*)' Msn density > dens_fluid + W_msn_m > 0 --> Settling go up, but is constrain to go down !'
w_msn_m = -w_msn_m
endif
......@@ -2662,32 +2829,37 @@ endif !#3
!--» Case of Phytoplankton
if (abs(w_p_m) .gt. (depth_bio/nlev)/dt_bio )then
write(*,*) 'CFL Constrain is OVERPASS for W-Phy'
stop
endif
ws(p,ci) = w_p_m
!--» Case of Dead_Phytoplankton
if (abs(w_dph_m) .gt. (depth_bio/nlev)/dt_bio )then
write(*,*) 'CFL Constrain is OVERPASS for W-Dph'
stop
endif
ws(d1,ci) = w_dph_m
!--» Case of Dead Zooplankton
if (abs(w_dzo_m) .gt. (depth_bio/nlev)/dt_bio )then
write(*,*) 'CFL Constrain is OVERPASS for W-dzo'
stop
endif
ws(d2,ci) = w_dzo_m
!--» Case of Fecal pellets
if (abs(w_fp_m) .gt. (depth_bio/nlev)/dt_bio )then
write(*,*) 'CFL Constrain is OVERPASS for W-fp'
stop
endif
ws(d3,ci) = w_fp_m
!--» Case of marine snow
if (abs(w_msn_m) .gt. (depth_bio/nlev)/dt_bio )then
write(*,*) 'CFL Constrain is OVERPASS for W-msn'
!stop
endif
ws(d4,ci) = w_msn_m
!--Size of marine snow
ws(size_msn,ci) = ws(d4,ci)
ws(size_msn,ci) = ws(d4,ci)
!-----------------------------------------------------------------------------------
......@@ -2745,5 +2917,8 @@ ws(size_msn,ci) = ws(d4,ci)
!-----------------------------------------------------------------------
! Copyright by the GOTM-team under the GNU Public License - www.gnu.org
!-----------------------------------------------------------------------
!-----------------------------------------------------------------------
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment