1 |
SUBROUTINE GPNDV |
2 |
************************************************************************ |
3 |
* * |
4 |
* Volumes definition for the neutron detector * |
5 |
* Called by: GPGEOM * |
6 |
* Author: Francesco Cafagna, 05-sep-05 * |
7 |
* * |
8 |
************************************************************************ |
9 |
#include "gpgeo.inc" |
10 |
#include "gpmed.inc" |
11 |
#include "gpkey.inc" |
12 |
* |
13 |
INTEGER IROT,IVOLU,N,NMED |
14 |
REAL X,Y,Z |
15 |
* |
16 |
* Define the NDBX volume |
17 |
* |
18 |
NMED= MAL |
19 |
CALL GSVOLU('NDBX','BOX ',NMED,NDBX, 3,IVOLU) |
20 |
* |
21 |
* Define the NDBI volume |
22 |
* |
23 |
NMED= MN2 |
24 |
CALL GSVOLU('NDBI','BOX ',NMED,NDBI, 3,IVOLU) |
25 |
* |
26 |
* Define the NDTU volume |
27 |
* |
28 |
NMED= MIRON |
29 |
NMED= MSCIN |
30 |
CALL GSVOLU('NDTU','TUBE',NMED,NDTU, 3,IVOLU) |
31 |
* |
32 |
* Define the NDTI volume |
33 |
* |
34 |
NMED= MHEND |
35 |
NMED= MSCIN |
36 |
CALL GSVOLU('NDTI','TUBE',NMED,NDTI, 3,IVOLU) |
37 |
* |
38 |
* Define the NDPB volume |
39 |
* |
40 |
NMED= MC2H4 |
41 |
NMED= MN2 |
42 |
CALL GSVOLU('NDPB','BOX ',NMED,NDPB, 3,IVOLU) |
43 |
* |
44 |
* Define the NDCD volume |
45 |
* |
46 |
NMED= MN2 |
47 |
CALL GSVOLU('NDCD','BOX ',NMED,NDCD, 3,IVOLU) |
48 |
* |
49 |
* Positioning volumes NDTI inside NDTU. |
50 |
* |
51 |
N = 1 |
52 |
X = 0. |
53 |
Y = 0. |
54 |
Z = 0. |
55 |
CALL GSPOS('NDTI',N,'NDTU',X,Y,Z,0,'ONLY') |
56 |
* |
57 |
* Positioning volume NDTU inside the mother NDPB |
58 |
* |
59 |
N = 0 |
60 |
Y = 0. |
61 |
C # |
62 |
C # Start to put tube on top of a cmd and 3 pholyetilene planes |
63 |
C # |
64 |
DO I=1,2 |
65 |
C # |
66 |
C # Place a tube layer at a 4 mm distance each |
67 |
C # |
68 |
X = -NDBI(2) + 0.2 + 1.1 |
69 |
Z = -NDBI(3) + 2.*NDCD(3) + 3.*(2.*NDPB(3)) + NDTU(2) |
70 |
+ + (I-1)*4*NDPB(3) |
71 |
DO II=1,18 |
72 |
N= N + 1 |
73 |
CALL GSPOS('NDTU',N,'NDBI',X,Y,Z,2,'MANY') |
74 |
X = X + 2.2 |
75 |
ENDDO |
76 |
ENDDO |
77 |
* |
78 |
* Positioning volume NDPB inside the mother NDPB |
79 |
* |
80 |
N = 0 |
81 |
X = 0. |
82 |
Y = 0. |
83 |
C # |
84 |
C # Stack 3 planes then leave the tube gap between the last two |
85 |
C # |
86 |
DO I=1,3 |
87 |
N= N + 1 |
88 |
Z = -NDBI(3) + 2.*NDCD(3) + (I-1)*2.*NDPB(3) + NDPB(3) |
89 |
CALL GSPOS('NDPB',N,'NDBI',X,Y,Z,0,'MANY') |
90 |
ENDDO |
91 |
DO I=1,2 |
92 |
Z = -NDBI(3) + 2.*NDCD(3) + 4.*2.*NDPB(3) + NDPB(3) |
93 |
+ + (I-1)*4.*NDPB(3) |
94 |
N= N + 1 |
95 |
CALL GSPOS('NDPB',N,'NDBI',X,Y,Z,0,'MANY') |
96 |
ENDDO |
97 |
C # |
98 |
C # Positioning the NDCD |
99 |
C # |
100 |
N=1 |
101 |
X = 0 |
102 |
Y = 0 |
103 |
Z = -NDBI(3) + NDCD(3) |
104 |
CALL GSPOS('NDCD',N,'NDBI',X,Y,Z,0,'MANY') |
105 |
N = N +1 |
106 |
Z = -NDBI(3) + 2.*NDCD(3) + 7.*2.*NDPB(3)+ NDCD(3) |
107 |
CALL GSPOS('NDCD',N,'NDBI',X,Y,Z,0,'MANY') |
108 |
C # |
109 |
C # Now put the internal volume inside the aluminum box |
110 |
C # * |
111 |
N = 1 |
112 |
X = 0. |
113 |
Y = 0. |
114 |
Z = 0. |
115 |
CALL GSPOS('NDBI',N,'NDBX',X,Y,Z,0,'MANY') |
116 |
|
117 |
RETURN |
118 |
END |