]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1995/10/24 10:20:28 cernlib | |
6 | * Geant | |
7 | * | |
8 | * | |
9 | #include "geant321/pilot.h" | |
10 | *CMZ : 3.21/02 29/03/94 15.41.27 by S.Giani | |
11 | *-- Author : | |
12 | SUBROUTINE GDSSUR(P1,P2,P3,P4) | |
13 | C. | |
14 | C. ****************************************************************** | |
15 | C. * * | |
16 | C. * Store space points P1,P2,P3,P4 in vector SURF * | |
17 | C. * starting from SURF(ISURF) * | |
18 | C. * * | |
19 | C. * ==>Called by : GDRWSC * | |
20 | C. * Author : P.Zanarini ********* * | |
21 | C. * * | |
22 | C. ****************************************************************** | |
23 | C. | |
24 | #include "geant321/gcbank.inc" | |
25 | #include "geant321/gcdraw.inc" | |
26 | #include "geant321/gcvolu.inc" | |
27 | DIMENSION SURF(2) | |
28 | EQUIVALENCE (WS(1),SURF(1)) | |
29 | DIMENSION P1(1),P2(1),P3(1),P4(1),RP1(3),RP2(3),RP3(3),RP4(3) | |
30 | C | |
31 | C MPOINT is maximum number of points that can be stored; | |
32 | C at present MPOINT=(2000-12), because SURF is equivalenced | |
33 | C from WS(1) to WS(2000) | |
34 | C | |
35 | SAVE MPOINT | |
36 | DATA MPOINT/1988/ | |
37 | C. | |
38 | C. ------------------------------------------------------------------ | |
39 | C. | |
40 | C Rotation matrix | |
41 | C | |
42 | CALL GINROT(P1(1),GRMAT(1,NLEVEL),RP1(1)) | |
43 | CALL GINROT(P2(1),GRMAT(1,NLEVEL),RP2(1)) | |
44 | CALL GINROT(P3(1),GRMAT(1,NLEVEL),RP3(1)) | |
45 | CALL GINROT(P4(1),GRMAT(1,NLEVEL),RP4(1)) | |
46 | C | |
47 | C Translation matrix | |
48 | C | |
49 | DO 10 I=1,3 | |
50 | RP1(I)=RP1(I)+GTRAN(I,NLEVEL) | |
51 | RP2(I)=RP2(I)+GTRAN(I,NLEVEL) | |
52 | RP3(I)=RP3(I)+GTRAN(I,NLEVEL) | |
53 | RP4(I)=RP4(I)+GTRAN(I,NLEVEL) | |
54 | 10 CONTINUE | |
55 | C | |
56 | C Store space points | |
57 | C | |
58 | SURF(ISURF)=RP1(1) | |
59 | SURF(ISURF+1)=RP1(2) | |
60 | SURF(ISURF+2)=RP1(3) | |
61 | SURF(ISURF+3)=RP2(1) | |
62 | SURF(ISURF+4)=RP2(2) | |
63 | SURF(ISURF+5)=RP2(3) | |
64 | SURF(ISURF+6)=RP3(1) | |
65 | SURF(ISURF+7)=RP3(2) | |
66 | SURF(ISURF+8)=RP3(3) | |
67 | SURF(ISURF+9)=RP4(1) | |
68 | SURF(ISURF+10)=RP4(2) | |
69 | SURF(ISURF+11)=RP4(3) | |
70 | ISURF=ISURF+12 | |
71 | NSURF=NSURF+1 | |
72 | C | |
73 | C If there is not enough space perform a cut | |
74 | C to empty the surface buffer SURF | |
75 | C | |
76 | IF (ISURF.GE.MPOINT) CALL GDCUT | |
77 | C | |
78 | END |