-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvtos.src
More file actions
91 lines (91 loc) · 2.75 KB
/
Copy pathvtos.src
File metadata and controls
91 lines (91 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include "zeus2d.def"
c=======================================================================
c////////////////////// SUBROUTINES VTOS,STOV \\\\\\\\\\\\\\\\\\\\\\\\
c
subroutine vtos(s1,s2,s3)
c
c PURPOSE: Computes momentum densities S1, S2 and S3 from linear
c velocities V1, V2, and V3 and appropriate metric factors, while the
c accompanying routine STOV does the reverse. Note the momentum
c densities are only computed for active zones; boundary zones are not
c calculated. In XY geometry, S1,S2, and S3 are linear momentum
c densities; in RZ geometry S1 and S2 are linear momentum densities,
c while S3 is the angular momentum about the symmetry axis (ijb) ; in
c RT geometry S1 is linear momentum density, S2 is angular momentum
c about origin and S3 is angular momentum about symmetry axis (ijb).
c
c INPUT ARGUMENTS: [none]
c
c OUTPUT ARGUMENTS:
c s1,s2,s3 = momentum densities in the 1,2 and 3 directions
c
c EXTERNALS: [none]
c
c LOCALS:
c-----------------------------------------------------------------------
implicit NONE
#include "param.h"
#include "grid.h"
#include "field.h"
REAL s1(in,jn),s2(in,jn),s3(in,jn)
integer i,j
c\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////
c=======================================================================
c
do 20 j=js,je
do 10 i=iip1(j),io(j)
s1(i,j) = 0.5*(d(i-1,j) + d(i,j))*v1(i,j)
10 continue
20 continue
c
do 40 i=is,ie
do 30 j=jip1(i),jo(i)
s2(i,j) = 0.5*(d(i,j-1) + d(i,j))*v2(i,j)*g2b(i)
30 continue
40 continue
#ifdef ROTATE
do 60 j=js,je
do 50 i=ii(j),io(j)
s3(i,j) = d(i,j)*v3(i,j)*g31b(i)*g32b(j)
50 continue
60 continue
#endif
return
end
c=======================================================================
subroutine stov(s1,s2,s3)
c
c PURPOSE: Computes velocities from updates momentum densities
c
c INPUT ARGUMENTS:
c s1,s2,s3 = momentum densities in the 1,2 and 3 directions
c
c OUTPUT ARGUMENTS: [none]
c-----------------------------------------------------------------------
implicit NONE
#include "param.h"
#include "grid.h"
#include "field.h"
REAL s1(in,jn),s2(in,jn),s3(in,jn)
integer i,j
c=======================================================================
do 20 j=js,je
do 10 i=iip1(j),io(j)
v1(i,j) = s1(i,j)/(0.5*(d(i-1,j) + d(i,j)))
10 continue
20 continue
c
do 40 i=is,ie
do 30 j=jip1(i),jo(i)
v2(i,j) = s2(i,j)/(0.5*(d(i,j-1) + d(i,j))*g2b(i))
30 continue
40 continue
#ifdef ROTATE
do 60 j=js,je
do 50 i=ii(j),io(j)
v3(i,j) = s3(i,j)/(d(i,j)*g31b(i)*g32b(j))
50 continue
60 continue
#endif
return
end