Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
sfx
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
inmcm-mirror
sfx
Commits
5215915f
Commit
5215915f
authored
1 year ago
by
Бычкова Виктория
Browse files
Options
Downloads
Patches
Plain Diff
low regidtr
parent
84976472
No related branches found
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
compile2.sh
+1
-1
1 addition, 1 deletion
compile2.sh
drag3.f90
+202
-203
202 additions, 203 deletions
drag3.f90
main_drag.f90
+17
-17
17 additions, 17 deletions
main_drag.f90
prmt.mod
+0
-0
0 additions, 0 deletions
prmt.mod
with
220 additions
and
221 deletions
compile2.sh
+
1
−
1
View file @
5215915f
...
...
@@ -6,5 +6,5 @@ gfortran -c param.f90
gfortran
-c
prmt.f90
gfortran
-c
drag3.f90
gfortran
-c
main_drag.f90
gfortran
-o
drag_ddt.exe main_drag.o drag3.o inputdata.o param.o
prmt.o
gfortran
-o
drag_ddt.exe main_drag.o drag3.o inputdata.o param.o
This diff is collapsed.
Click to expand it.
drag3.f90
+
202
−
203
View file @
5215915f
module
DRAG
3
MODULE
drag
3
USE
PRMT
USE
PARAM
USE
INPUTDATA
USE
param
USE
inputdata
!implicit real (
A-H, O-Z
)
!implicit real (
a-h, o-z
)
implicit
none
type
,
public
::
DATA_IN
real
,
public
::
WS
,
DT
,
ST
,
DQ
,
CFLH
,
Z0IN
type
,
public
::
data_in
real
,
public
::
ws
,
dt
,
st
,
dq
,
cflh
,
z0in
end
type
type
,
public
::
DATA_OUTDEF
real
,
public
::
ZL
,
RI
,
RE
,
LNZUZT
,
ZU
,
ZTOUT
,
RITH
,
CM
,
CH
,
CT
,
CKT
type
,
public
::
data_outdef
real
,
public
::
zl
,
ri
,
re
,
lnzuzt
,
zu
,
ztout
,
rith
,
cm
,
ch
,
ct
,
ckt
end
type
type
,
public
::
DATA_PAR
integer
,
public
::
IT
=
10
type
,
public
::
data_par
integer
,
public
::
it
=
10
end
type
contains
subroutine
surf_flux
(
in
,
out
,
par
)
type
(
DATA_IN
)
,
intent
(
in
)
::
in
type
(
DATA_OUTDEF
)
out
type
(
DATA_PAR
)
par
SUBROUTINE
surf_flux
(
in
,
out
,
par
)
type
(
data_in
)
,
intent
(
in
)
::
in
type
(
data_outdef
)
out
type
(
data_par
)
par
real
WS
,
DT
,
ST
,
DQ
,
CFLH
,
Z0IN
integer
IT
real
ZL
,
RI
,
RE
,
LNZUZT
,
ZU
,
ZTIN
,
RI_TH
,
CM
,
CH
,
CT
,
CKT
real
Z
0
,
D
3
,
D0MAX
,
U
1
,
A
1
,
Y
1
,
CIMIN
,
H
1
,
AP
0
,
F
,
A
2
,
C
1
,
U
2
,
H
0
,
U
3
,
X
7
,
X
8
,
AN
1
,
AN
2
,
D
0
,
D
00
,
ZT
,
H
00
,
FT
0
,
AN
4
,
AN
5
real
AL
,
AL
2
,
AN
,
G
,
T
1
,
R
6
,
Q
4
,
T
4
,
U
,
G
0
,
R
1
,
F
0
,
F
4
,
A
0
,
AM
,
O
,
DD
,
X
1
,
Y
0
,
X
0
,
Z
3
,
Y
10
,
A2CH
,
X
10
,
P
1
,
P
0
,
H
,
D
1
,
F
1
real
D
,
C
4
,
C1MIN
,
C
0
,
C
,
B
1
,
AN
0
real
ws
,
dt
,
st
,
dq
,
cflh
,
z0in
integer
it
real
zl
,
ri
,
re
,
lnzuzt
,
zu
,
ztin
,
ri_th
,
cm
,
ch
,
ct
,
ckt
real
z
0
,
d
3
,
d0max
,
u
1
,
a
1
,
y
1
,
cimin
,
h
1
,
ap
0
,
f
,
a
2
,
c
1
,
u
2
,
h
0
,
u
3
,
x
7
,
x
8
,
an
1
,
an
2
,
d
0
,
d
00
,
zt
,
h
00
,
ft
0
,
an
4
,
an
5
real
al
,
al
2
,
an
,
g
,
t
1
,
r
6
,
q
4
,
t
4
,
u
,
g
0
,
r
1
,
f
0
,
f
4
,
a
0
,
am
,
o
,
dd
,
x
1
,
y
0
,
x
0
,
z
3
,
y
10
,
a2ch
,
x
10
,
p
1
,
p
0
,
h
,
d
1
,
f
1
real
d
,
c
4
,
c1min
,
c
0
,
c
,
b
1
,
an
0
integer
i
,
j
,
m
WS
=
in
%
WS
DT
=
in
%
DT
ST
=
in
%
ST
DQ
=
in
%
DQ
CFLH
=
in
%
CFLH
Z0IN
=
in
%
Z0IN
IT
=
par
%
IT
ws
=
in
%
ws
dt
=
in
%
dt
st
=
in
%
st
dq
=
in
%
dq
cflh
=
in
%
cflh
z0in
=
in
%
z0in
it
=
par
%
it
U
=
WS
T
4
=
DT
T
1
=
ST
Q
4
=
DQ
H
=
CFLH
Z
0
=
Z0IN
u
=
ws
t
4
=
dt
t
1
=
st
q
4
=
dq
h
=
cflh
z
0
=
z0in
D
3
=
0.0
E
0
D0MAX
=
2.0
E
0
!=
DATA_IN%WS
!4=
DATA_IN%DT
!4=
DATA_IN%DQ
!=
DATA_IN%CFLH
!0=
DATA_IN%Z
0
IF
(
Z0
.LT
.
0.0
E
0
)
D0MAX
=
8.0
E
0
IF
(
Z0
.LT
.
0.0
E
0
)
THEN
! ......
DEFINITION Z0 OF SEA SURFACE
......
!call
Z0SEA
module (
RAMIL_DASHA
)
!
U
1=
U
!
A
1=0.0
E
0
!
Y
1=25.0
E
0
!
C1MIN=ALOG(H
1/1.0
E
0)/
AP
0
!
DO
630
I
=1,
IT
!
F=A
2-2.0
E
0*
ALOG(U
1)
!
DO
570
J
=1,
IT
!
C
1=(
F
+2.0
E
0*
ALOG(Y
1))/
AP
0
!
IF(U.LE
.8.0
E
0)
A
1=
ALOG
(1.0
E
0+
A
3*((
Y
1/
U
1)**3))/
AP
0
!
C
1=
C
1-
A
1
!
C
1=
AMAX
1(
C
1,
C1MIN
)
!
Y
1=
C
1
!570
CONTINUE
!
Z
0=
H
1*
EXP
(-
C
1*
AP
0)
!
Z
0=
AMAX
1(
Z
0,0.000015
E
0)
!
U
2=
U*ALOG(H
1/
Z
0)/(
ALOG(H/Z
0))
!
U
1=
U
2
!630
CONTINUE
!
J
=1
!
H
0=
H/Z
0
!
U
3=
U
1/
C
1
!
ELSE
! ......
PARAMETERS FROM VISCOSITY SUBLAYER
......
!
J
=0
!
H
0=
H/Z
0
!
U
3=
U*AP0/ALOG(H
0)
d
3
=
0.0
e
0
d0max
=
2.0
e
0
!=
data_in%ws
!4=
data_in%dt
!4=
data_in%dq
!=
data_in%cflh
!0=
data_in%z
0
if
(
z0
.lt
.
0.0
e
0
)
d0max
=
8.0
e
0
if
(
z0
.lt
.
0.0
e
0
)
then
! ......
definition z0 of sea surface
......
!call
z0sea
module (
ramil_dasha
)
!
u
1=
u
!
a
1=0.0
e
0
!
y
1=25.0
e
0
!
c1min=alog(h
1/1.0
e
0)/
ap
0
!
do
630
i
=1,
it
!
f=a
2-2.0
e
0*
alog(u
1)
!
do
570
j
=1,
it
!
c
1=(
f
+2.0
e
0*
alog(y
1))/
ap
0
!
if(u.le
.8.0
e
0)
a
1=
alog
(1.0
e
0+
a
3*((
y
1/
u
1)**3))/
ap
0
!
c
1=
c
1-
a
1
!
c
1=
amax
1(
c
1,
c1min
)
!
y
1=
c
1
!570
continue
!
z
0=
h
1*
exp
(-
c
1*
ap
0)
!
z
0=
amax
1(
z
0,0.000015
e
0)
!
u
2=
u*alog(h
1/
z
0)/(
alog(h/z
0))
!
u
1=
u
2
!630
continue
!
j
=1
!
h
0=
h/z
0
!
u
3=
u
1/
c
1
!
else
! ......
parameters from viscosity sublayer
......
!
j
=0
!
h
0=
h/z
0
!
u
3=
u*ap0/alog(h
0)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
END
IF
X
7
=
U
3
*
Z
0
/
AN
IF
(
X7
.LE.
X8
)
THEN
D
0
=
AN1
*
ALOG
(
AL
1
*
X
7
)
+
AN
2
ELSE
D
0
=
AL
2
*
(
X
7
**
0.45
E
0
)
END
IF
! ......
HUMIDITY STRATIFICATION AND RI-NUMBER
......
ST
=
in
%
ST
AL
=
G
/
T
1
D
0
=
AMIN
1
(
D
0
,
D0MAX
)
R
6
=
AL
*
H
*
(
T
4
+0.61
E
0
*
T
1
*
Q
4
)/
U
**
2
D
00
=
D
0
ZT
=
Z0
/
EXP
(
D
00
)
H
00
=
H
/
ZT
FT0
=
ALOG
(
H
00
)
! ......
DEFINITION OF R-PRIM
......
AN
4
=
D
1
/
H
0
AN
5
=
D
1
/
H
00
!
C
IF(D0.EQ
.0.0
E
0)
AN5=AN
4
IF
(
ABS
(
D
0
)
.
LT
.
1.0
E
-10
)
AN5
=
AN
4
AN5
=
SQRT
(
1.0
E
0
-
G
0
*
AN
5
)
AN
4
=
(
1.0
E
0
-
G
4
*
AN
4
)
**
0.25
E
0
F
0
=
ALOG
((
X
10
-1.0
E
0
)
*
(
AN
5
+1.0
E
0
)/((
X
10
+1.0
E
0
)
*
(
AN
5
-1.0
E
0
)))/
A
0
F
4
=
2.0
E
0
*
(
ATAN
(
Y10
)
-
ATAN
(
AN4
))
+
ALOG
((
Y
10
-1.0
E
0
)
*
(
AN
4
+1.0
E
0
)/((
Y
10
+1.0
E
0
)
*
(
AN
4
-1.0
E
0
)))
R
1
=
D
1
*
F
0
/(
F
4
*
F
4
)
! ......
DEFINITION OF DZ,TA,FU,FO,FIU,FIO
......
IF
(
R6
.GT
.
0.0
E
0
)
GO TO
1460
IF
(
R6
.LT.
R1
)
GO TO
1305
IF
(
R6
.GT
.
-0.001
E
0
)
THEN
! ......
NEARLY NEUTRAL
......
write
(
*
,
*
)
'
NEUTRAL
'
F
4
=
ALOG
(
H
0
)
F
0
=
FT
0
/
A
0
!
IF(D0.EQ
.0.0
E
0)
F
0=
F
4/
A
0
IF
(
ABS
(
D
0
)
.
LT
.
1.0
E
-10
)
F
0
=
F
4
/
A
0
AM
=
1.0
E
0
O
=
1.0
E
0
/
A
0
GO TO
1570
ELSE
! ......
WEEK AND SEMISTRONG INSTABILITY
......
write
(
*
,
*
)
'
SEMISTRONG
'
F
1
=
ALOG
(
H
0
)
!
IF(D0.EQ
.0.0
E
0)
FT
0=
F
1
IF
(
ABS
(
D
0
)
.
LT
.
1.0
E
-10
)
FT
0
=
F
1
D
3
=
R
6
*
A
0
*
F
1
**
2
/
FT
0
M
=
1
1245
DO
1300
I
=
1
,
IT
D
=
D
3
/
H
0
DD
=
D
3
/
H
00
!
IF(D0.EQ
.0.0
E
0)
DD=D
IF
(
ABS
(
D
0
)
.
LT
.
1.0
E
-10
)
DD
=
D
Y
1
=
(
1.0
E
0
-
G
4
*
D
3
)
**
0.25
E
0
X
1
=
SQRT
(
1.0
E
0
-
G
0
*
D
3
)
Y
0
=
(
1.0
E
0
-
G
4
*
D
)
**
0.25
E
0
X
0
=
SQRT
(
1.0
E
0
-
G
0
*
DD
)
Y
0
=
AMAX
1
(
Y
0
,
1.000001
E
0
)
X
0
=
AMAX
1
(
X
0
,
1.000001
E
0
)
F
4
=
ALOG
((
Y
1
-1.0
E
0
)
*
(
Y
0
+1.0
E
0
)/((
Y
1
+1.0
E
0
)
*
(
Y
0
-1.0
E
0
)))
+2.0
E
0
*
(
ATAN
(
Y1
)
-
ATAN
(
Y
0
))
F
0
=
ALOG
((
X
1
-1.0
E
0
)
*
(
X
0
+1.0
E
0
)/((
X
1
+1.0
E
0
)
*
(
X
0
-1.0
E
0
)))/
A
0
IF
(
M
.NE.
1
)
GO TO
1350
Z
3
=
R
6
*
F
4
**
2
/
F
0
D
3
=
Z
3
1300
CONTINUE
M
=
2
GO TO
1245
1350
AM
=
(
1.0
E
0
-
G
4
*
D
3
)
**
(
-0.25
E
0
)
O
=
1.0
E
0
/(
A
0
*
SQRT
(
1.0
E
0
-
G
0
*
D
3
))
GO TO
1570
END
IF
! ......
STRONG INSTABILITY
.....
1305
CONTINUE
write
(
*
,
*
)
'
INSTABILITY
'
D
3
=
D
1
M
=
1
1355
DO
1410
I
=
1
,
IT
D
=
D
3
/
H
0
DD
=
D
3
/
H
00
!
IF(D0.EQ
.0.0
E
0)
DD=D
IF
(
ABS
(
D
0
)
.
LT
.
1.0
E
-10
)
DD
=
D
A
1
=
(
D
1
/
D
3
)
**
(
1.0
E
0
/
3.0
E
0
)
X
0
=
SQRT
(
1.0
E
0
-
G
0
*
DD
)
Y
0
=
(
1.0
E
0
-
G
4
*
D
)
**
0.25
E
0
C
=
ALOG
((
X
0
+1.0
E
0
)/(
X
0
-1.0
E
0
))
B
1
=
-2.0
E
0
*
ATAN
(
Y0
)
+
ALOG
((
Y
0
+1.0
E
0
)/(
Y
0
-1.0
E
0
))
F
=
3.0
E
0
*
(
1.0
E
0
-
A
1
)
F
4
=
F
/
Y
10
+
P
1
+
B
1
F
0
=
(
F
/
X
10
+
P
0
+
C
)/
A
0
IF
(
M
.NE.
1
)
GO TO
1430
Z
3
=
R
6
*
F
4
**
2
/
F
0
D
3
=
Z
3
1410
CONTINUE
M
=
2
GO TO
1355
1430
AM
=
A
1
/
Y
10
O
=
A
1
/(
A
0
*
X
10
)
GO TO
1570
! ......
STABLE STRATIFICATION
......
1460
CONTINUE
write
(
*
,
*
)
'
STABLE
'
R
6
=
AMIN
1
(
R
6
,
R
0
)
F
=
ALOG
(
H
0
)
F
1
=
D
0
/
F
A
1
=
B
4
*
R
6
A2CH
=
(
F
1
+1.0
E
0
)/
A
0
-2.0
E
0
*
A
1
D
3
=
F
*
(
SQRT
(
A2CH
**
2
+4.0
E
0
*
A
1
*
(
1.0
E
0
-
A
1
))
-
A2CH
)/(
2.0
E
0
*
B
4
*
(
1.0
E
0
-
A
1
))
F
1
=
B
4
*
D
3
F
4
=
F
+
F
1
F
0
=
(
F
+
D
0
)/
A
0
+
F
1
O
=
1.0
E
0
/
A
0
+
F
1
AM
=
1.0
E
0
+
F
1
1570
CONTINUE
! ......
COMPUTATION OF CU,CO,K(H),ALFT
C
4
=
AP
0
/
F
4
C
0
=
AP
0
/
F
0
AN4
=
AP
0
*
C
4
*
U
*
H
/
AM
AN0
=
AM
/
O
! ......
EXIT
......
140
CONTINUE
out
%
ZL
=
D
3
out
%
RI
=
R
6
out
%
RE
=
X
7
out
%
LNZUZT
=
D
00
out
%
ZU
=
Z
0
out
%
ZTOUT
=
ZT
out
%
RITH
=
R
1
out
%
CM
=
C
4
out
%
CH
=
C
0
out
%
CT
=
AN
4
out
%
CKT
=
AN
0
end
if
x
7
=
u
3
*
z
0
/
an
if
(
x7
.le.
x8
)
then
d
0
=
an1
*
alog
(
al
1
*
x
7
)
+
an
2
else
d
0
=
al
2
*
(
x
7
**
0.45
e
0
)
end
if
! ......
humidity stratification and ri-number
......
st
=
in
%
st
al
=
g
/
t
1
d
0
=
amin
1
(
d
0
,
d0max
)
r
6
=
al
*
h
*
(
t
4
+0.61
e
0
*
t
1
*
q
4
)/
u
**
2
d
00
=
d
0
zt
=
z0
/
exp
(
d
00
)
h
00
=
h
/
zt
ft0
=
alog
(
h
00
)
! ......
definition of r-prim
......
an
4
=
d
1
/
h
0
an
5
=
d
1
/
h
00
!
c
if(d0.eq
.0.0
e
0)
an5=an
4
if
(
abs
(
d
0
)
.
lt
.
1.0
e
-10
)
an5
=
an
4
an5
=
sqrt
(
1.0
e
0
-
g
0
*
an
5
)
an
4
=
(
1.0
e
0
-
g
4
*
an
4
)
**
0.25
e
0
f
0
=
alog
((
x
10
-1.0
e
0
)
*
(
an
5
+1.0
e
0
)/((
x
10
+1.0
e
0
)
*
(
an
5
-1.0
e
0
)))/
a
0
f
4
=
2.0
e
0
*
(
atan
(
y10
)
-
atan
(
an4
))
+
alog
((
y
10
-1.0
e
0
)
*
(
an
4
+1.0
e
0
)/((
y
10
+1.0
e
0
)
*
(
an
4
-1.0
e
0
)))
r
1
=
d
1
*
f
0
/(
f
4
*
f
4
)
! ......
definition of dz,ta,fu,fo,fiu,fio
......
if
(
r6
.gt
.
0.0
e
0
)
go to
1460
if
(
r6
.lt.
r1
)
go to
1305
if
(
r6
.gt
.
-0.001
e
0
)
then
! ......
nearly neutral
......
write
(
*
,
*
)
'
neutral
'
f
4
=
alog
(
h
0
)
f
0
=
ft
0
/
a
0
!
if(d0.eq
.0.0
e
0)
f
0=
f
4/
a
0
if
(
abs
(
d
0
)
.
lt
.
1.0
e
-10
)
f
0
=
f
4
/
a
0
am
=
1.0
e
0
o
=
1.0
e
0
/
a
0
go to
1570
else
! ......
week and semistrong instability
......
write
(
*
,
*
)
'
semistrong
'
f
1
=
alog
(
h
0
)
!
if(d0.eq
.0.0
e
0)
ft
0=
f
1
if
(
abs
(
d
0
)
.
lt
.
1.0
e
-10
)
ft
0
=
f
1
d
3
=
r
6
*
a
0
*
f
1
**
2
/
ft
0
m
=
1
1245
do
1300
i
=
1
,
it
d
=
d
3
/
h
0
dd
=
d
3
/
h
00
!
if(d0.eq
.0.0
e
0)
dd=d
if
(
abs
(
d
0
)
.
lt
.
1.0
e
-10
)
dd
=
d
y
1
=
(
1.0
e
0
-
g
4
*
d
3
)
**
0.25
e
0
x
1
=
sqrt
(
1.0
e
0
-
g
0
*
d
3
)
y
0
=
(
1.0
e
0
-
g
4
*
d
)
**
0.25
e
0
x
0
=
sqrt
(
1.0
e
0
-
g
0
*
dd
)
y
0
=
amax
1
(
y
0
,
1.000001
e
0
)
x
0
=
amax
1
(
x
0
,
1.000001
e
0
)
f
4
=
alog
((
y
1
-1.0
e
0
)
*
(
y
0
+1.0
e
0
)/((
y
1
+1.0
e
0
)
*
(
y
0
-1.0
e
0
)))
+2.0
e
0
*
(
atan
(
y1
)
-
atan
(
y
0
))
f
0
=
alog
((
x
1
-1.0
e
0
)
*
(
x
0
+1.0
e
0
)/((
x
1
+1.0
e
0
)
*
(
x
0
-1.0
e
0
)))/
a
0
if
(
m
.ne.
1
)
go to
1350
z
3
=
r
6
*
f
4
**
2
/
f
0
d
3
=
z
3
1300
continue
m
=
2
go to
1245
1350
am
=
(
1.0
e
0
-
g
4
*
d
3
)
**
(
-0.25
e
0
)
o
=
1.0
e
0
/(
a
0
*
sqrt
(
1.0
e
0
-
g
0
*
d
3
))
go to
1570
end
if
! ......
strong instability
.....
1305
continue
write
(
*
,
*
)
'
instability
'
d
3
=
d
1
m
=
1
1355
do
1410
i
=
1
,
it
d
=
d
3
/
h
0
dd
=
d
3
/
h
00
!
if(d0.eq
.0.0
e
0)
dd=d
if
(
abs
(
d
0
)
.
lt
.
1.0
e
-10
)
dd
=
d
a
1
=
(
d
1
/
d
3
)
**
(
1.0
e
0
/
3.0
e
0
)
x
0
=
sqrt
(
1.0
e
0
-
g
0
*
dd
)
y
0
=
(
1.0
e
0
-
g
4
*
d
)
**
0.25
e
0
c
=
alog
((
x
0
+1.0
e
0
)/(
x
0
-1.0
e
0
))
b
1
=
-2.0
e
0
*
atan
(
y0
)
+
alog
((
y
0
+1.0
e
0
)/(
y
0
-1.0
e
0
))
f
=
3.0
e
0
*
(
1.0
e
0
-
a
1
)
f
4
=
f
/
y
10
+
p
1
+
b
1
f
0
=
(
f
/
x
10
+
p
0
+
c
)/
a
0
if
(
m
.ne.
1
)
go to
1430
z
3
=
r
6
*
f
4
**
2
/
f
0
d
3
=
z
3
1410
continue
m
=
2
go to
1355
1430
am
=
a
1
/
y
10
o
=
a
1
/(
a
0
*
x
10
)
go to
1570
! ......
stable stratification
......
1460
continue
write
(
*
,
*
)
'
stable
'
r
6
=
amin
1
(
r
6
,
r
0
)
f
=
alog
(
h
0
)
f
1
=
d
0
/
f
a
1
=
b
4
*
r
6
a2ch
=
(
f
1
+1.0
e
0
)/
a
0
-2.0
e
0
*
a
1
d
3
=
f
*
(
sqrt
(
a2ch
**
2
+4.0
e
0
*
a
1
*
(
1.0
e
0
-
a
1
))
-
a2ch
)/(
2.0
e
0
*
b
4
*
(
1.0
e
0
-
a
1
))
f
1
=
b
4
*
d
3
f
4
=
f
+
f
1
f
0
=
(
f
+
d
0
)/
a
0
+
f
1
o
=
1.0
e
0
/
a
0
+
f
1
am
=
1.0
e
0
+
f
1
1570
continue
! ......
computation of cu,co,k(h),alft
c
4
=
ap
0
/
f
4
c
0
=
ap
0
/
f
0
an4
=
ap
0
*
c
4
*
u
*
h
/
am
an0
=
am
/
o
! ......
exit
......
140
continue
out
%
zl
=
d
3
out
%
ri
=
r
6
out
%
re
=
x
7
out
%
lnzuzt
=
d
00
out
%
zu
=
z
0
out
%
ztout
=
zt
out
%
rith
=
r
1
out
%
cm
=
c
4
out
%
ch
=
c
0
out
%
ct
=
an
4
out
%
ckt
=
an
0
return
end
subroutine
surf_flux
end
module
DRAG3
\ No newline at end of file
END
SUBROUTINE
surf_flux
END
MODULE
drag3
\ No newline at end of file
This diff is collapsed.
Click to expand it.
main_drag.f90
+
17
−
17
View file @
5215915f
program
main_ddt
USE
PRMT
USE
PARAM
USE
INPUTDATA
use
DRAG
3
PROGRAM
main_ddt
USE
param
USE
inputdata
USE
drag
3
type
(
DATA_IN
)::
DATA_IN
1
type
(
data_in
)::
data_in
1
type
(
DATA_OUTDEF
)
::
DATA_OUTDEF
1
type
(
data_outdef
)
::
data_outdef
1
type
(
DATA_PAR
)
::
DATA_PAR
1
type
(
data_par
)
::
data_par
1
OPEN
(
1
,
FILE
=
'4_ddt.txt'
)
open
(
1
,
file
=
'4_ddt.txt'
)
DO
I
=
1
,
1000000
READ
(
1
,
*
,
END
=
100
)
DATA_IN1
%
WS
,
DATA_IN1
%
DT
do
i
=
1
,
1000000
read
(
1
,
*
,
end
=
100
)
data_in1
%
ws
,
data_in1
%
dt
call
surf_flux
(
DATA_IN1
,
DATA_OUTDEF1
,
DATA_PAR
1
)
CALL
surf_flux
(
data_in1
,
data_outdef1
,
data_par
1
)
ENDDO
enddo
100
CONTINUE
100
continue
10
FORMAT
(
4
I
4
,
5
F
7.1
,
F
7.4
,
F
7.1
)
20
FORMAT
(
4
I
4
,
5
F
7.1
,
F
7.4
,
F
7.1
)
10
format
(
4
i
4
,
5
f
7.1
,
f
7.4
,
f
7.1
)
20
format
(
4
i
4
,
5
f
7.1
,
f
7.4
,
f
7.1
)
stop
end
program
END
PROGRAM
\ No newline at end of file
This diff is collapsed.
Click to expand it.
prmt.mod
0 → 100644
+
0
−
0
View file @
5215915f
File added
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment