Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Jérémy Baudry
WIM2
Commits
5fb59e80
Commit
5fb59e80
authored
Apr 14, 2016
by
Jérémy Baudry
Browse files
Merge branch 'master' of gitlasso.uqar.ca:bauj0001/WIM2
parents
c5b6a1a5
02390bea
Changes
3
Hide whitespace changes
Inline
Side-by-side
batch/.RUN_BATCH_Ec.sh.swp
deleted
100644 → 0
View file @
c5b6a1a5
File deleted
src/floe_breaking.f90
deleted
100644 → 0
View file @
c5b6a1a5
!_______________________________________________________________________________
!DESCRIPTION: Here is the parametrization proposed by
!Williams et al. (2013) for wave induced
!floe breaking. In this routine, the maximum floe size
!is computed using the significant strain imposed by
!passing waves in ice.
!_______________________________________________________________________________
!INTERFACE:
subroutine
floe_breaking
!USES:
use
parameters
!LOCAL PARAMETERS:
implicit
none
double precision
,
allocatable
::
WN_ice
(:)
double precision
,
allocatable
::
fnt
(:)
double precision
,
allocatable
::
k
(:)
double precision
::
rho
=
1025
double precision
::
d
double precision
::
F
double precision
::
Y
=
5.5
double precision
::
v
=
0.3
integer
::
acc
=
10000
double precision
,
allocatable
::
W
(:)
double precision
,
allocatable
::
fnt_d
(:)
double precision
,
allocatable
::
S
(:)
double precision
::
SS
double precision
::
WN_ice_d
double precision
::
RS
=
7.05e-05
double precision
::
m0_s
double precision
::
m0_a
double precision
::
m2_a
double precision
::
Tw
double precision
::
om_d
double precision
::
wl_w
allocate
(
fnt
(
acc
+1
))
allocate
(
k
(
acc
+1
))
allocate
(
WN_ice
(
nfreq
))
allocate
(
W
(
nfreq
))
allocate
(
fnt_d
(
acc
+1
))
allocate
(
S
(
nfreq
))
!_______________________________________________________________________________
F
=
Y
*
h
(
i
)
**
3
/
12d0
*
(
1
-
v
**
2
)
d
=
0.9
*
h
(
i
)
jj
=
1
!create a wavelength vector (this is used to
!find the root of the polynom fnt
do
ii
=
0
,
acc
k
(
jj
)
=
real
(
ii
)
*
10d0
/
real
(
acc
)
jj
=
jj
+1
end
do
do
j
=
1
,
nfreq
fnt
=
F
*
k
**
5
+
rho
*
(
g
-
d
*
omega
(
j
)
**
2
)
*
k
-
rho
*
omega
(
j
)
**
2
WN_ice
(
j
)
=
k
(
minloc
(
abs
(
fnt
),
DIM
=
1
))
!calculate wavelength in ice
end
do
W
=
g
*
WN_ice
/
omega
**
2
S
=
(
0.5
*
h
(
i
))
*
WN_ice
**
2
*
W
m0_s
=
sum
(
E
(
n
,
i
,
1
:
nfreq
)
*
S
**
2
)
*
domega
!0th moment of the strain spectrum
SS
=
2
*
sqrt
(
m0_s
)
!significant strain
if
(
SS
.gt.
RS
)
then
m0_a
=
sum
(
E
(
n
,
i
,
1
:
nfreq
)
*
W
**
2
)
*
domega
m2_a
=
sum
(
omega
**
2
*
E
(
n
,
i
,
1
:
nfreq
)
*
W
**
2
)
*
domega
Tw
=
2
*
pi
*
sqrt
(
m0_a
/
m2_a
)
om_d
=
2
*
pi
/
Tw
fnt_d
=
F
*
k
**
5
+
rho
*
(
g
-
d
*
om_d
**
2
)
*
k
-
rho
*
om_d
**
2
WN_ice_d
=
k
(
minloc
(
abs
(
fnt_d
),
DIM
=
1
))
wl_w
=
2
*
pi
/
WN_ice_d
Dmax
(
i
)
=
max
(
Dmin
,
min
(
0.5
*
wl_w
,
Dmax
(
i
)))
end
if
!_________________________________________________________________________________
end
subroutine
floe_breaking
src/fsd_build.f90
deleted
100644 → 0
View file @
c5b6a1a5
!________________________________________________________________________________
!DESCRIPTION: In this routine the average floe size
!Dave is computed using the value of Dmax calculated in
!the subroutine 'floe_breaking'.
!________________________________________________________________________________
!INTERFACE:
subroutine
fsd_build
!MODULE USES:
use
parameters
!LOCAL PARAMETERS:
implicit
none
double precision
::
coeff
double precision
,
allocatable
::
ND
(:)
double precision
,
allocatable
::
NN
(:)
integer
::
M
integer
::
mm
!_________________________________________________________________________________
if
(
C_ice
(
i
)
.eq.
0
)
then
Dave
(
i
)
=
0
elseif
(
Dmax
(
i
)
.eq.
D0
)
then
Dave
(
i
)
=
Dmax
(
i
)
elseif
(
Dmax
(
i
)
.eq.
Dmin
)
then
Dave
(
i
)
=
Dmin
elseif
(
FSD_scheme
.eq.
1
)
then
!use a power law to compute <D>
coeff
=
1
/((
1
/(
1
-
gam
))
*
(
Dmax
(
i
)
**
(
1
-
gam
)
-
Dmin
**
(
1
-
gam
)))
Dave
(
i
)
=
coeff
*
(
1
/(
2
-
gam
))
*
(
Dmax
(
i
)
**
(
2
-
gam
)
-
Dmin
**
(
2
-
gam
))
else
!use the method from Dumont et al.(2011) to compute <D>
M
=
floor
(
log
(
Dmax
(
i
)/
Dmin
)/
log
(
psi
))
allocate
(
ND
(
M
+1
))
allocate
(
NN
(
M
+1
))
jj
=
1
do
mm
=
0
,
M
-1
NN
(
jj
)
=
((
1
-
ff
)
*
(
psi
**
2
*
ff
)
**
mm
)
*
(
Dmax
(
i
)/
psi
**
mm
)
ND
(
jj
)
=
(
1
-
ff
)
*
(
psi
**
2
*
ff
)
**
mm
jj
=
jj
+1
end
do
Dave
(
i
)
=
(
sum
(
NN
)
+
((
psi
**
2
*
ff
)
**
M
)
*
(
Dmax
(
i
)/
psi
**
M
))/(
sum
(
ND
)
+
(
psi
**
2
*
ff
)
**
M
)
deallocate
(
ND
)
deallocate
(
NN
)
end
if
!_________________________________________________________________________________
end
subroutine
fsd_build
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment