File: /nfs/home/0/users/jenkins/mfix.git/model/cartesian_grid/quadric_mod.f
1 MODULE quadric
2
3
4 Use param
5 Use param1
6
7
8 INTEGER, PARAMETER :: DIM_QUADRIC = 500
9
10 INTEGER :: N_QUADRIC
11
12 INTEGER :: QUADRIC_ID
13
14 CHARACTER (LEN=12), DIMENSION(DIM_QUADRIC) :: quadric_form
15
16 DOUBLE PRECISION :: quadric_scale
17
18 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: Lambda_x,Lambda_y,Lambda_z
19
20 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: dquadric
21
22 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: t_x,t_y,t_z
23
24 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: theta_x,theta_y,theta_z
25
26 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: Radius
27
28 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: Torus_R1, Torus_R2
29
30 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: UCOIL_R1, UCOIL_R2
31
32 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: UCOIL_Y1, UCOIL_Y2
33
34 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: BEND_R1, BEND_R2
35
36 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: BEND_THETA1, BEND_THETA2
37
38 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: C2C_Y1, C2C_Y2
39
40 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: C2C_R1, C2C_R2
41
42 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: Half_angle
43
44 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: REACTOR1_R1,REACTOR1_R2
45
46 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: REACTOR1_Y1,REACTOR1_Y2
47
48 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: REACTOR1_YR1,REACTOR1_YR2
49
50 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: REACTOR1_RR1,REACTOR1_RR2
51
52 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: REACTOR1_THETA1,REACTOR1_THETA2
53
54 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: n_x,n_y,n_z
55
56 DOUBLE PRECISION, DIMENSION(3,3,DIM_QUADRIC) :: A_QUADRIC
57
58 DOUBLE PRECISION, DIMENSION(1,3,DIM_QUADRIC) :: T_QUADRIC
59
60 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: clip_xmin,clip_xmax,clip_ymin,clip_ymax,clip_zmin,clip_zmax
61
62 DOUBLE PRECISION, DIMENSION(DIM_QUADRIC) :: piece_xmin,piece_xmax,piece_ymin,piece_ymax,piece_zmin,piece_zmax
63
64 LOGICAL, DIMENSION(DIM_QUADRIC) :: FLUID_IN_CLIPPED_REGION
65
66 INTEGER :: BC_ID_Q(DIM_QUADRIC)
67
68 INTEGER, PARAMETER :: DIM_GROUP = 50
69
70 INTEGER :: N_GROUP
71
72 INTEGER,DIMENSION(DIM_GROUP) :: GROUP_SIZE
73
74 INTEGER,DIMENSION(DIM_GROUP,DIM_QUADRIC) :: GROUP_Q
75
76 CHARACTER(LEN=9),DIMENSION(DIM_GROUP) :: GROUP_RELATION
77
78 CHARACTER(LEN=9),DIMENSION(DIM_GROUP) :: RELATION_WITH_PREVIOUS
79
80 DOUBLE PRECISION :: TOL_F
81
82 INTEGER :: ITERMAX_INT
83
84 CONTAINS
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101 FUNCTION CROSS_PRODUCT(A,B)
102
103 IMPLICIT NONE
104 DOUBLE PRECISION, DIMENSION(3) :: CROSS_PRODUCT
105 DOUBLE PRECISION, INTENT(IN), DIMENSION(3) :: A,B
106
107 CROSS_PRODUCT(1) = A(2) * B(3) - A(3) * B(2)
108 CROSS_PRODUCT(2) = A(3) * B(1) - A(1) * B(3)
109 CROSS_PRODUCT(3) = A(1) * B(2) - A(2) * B(1)
110
111 END FUNCTION CROSS_PRODUCT
112
113 END MODULE quadric
114