]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/ggeom/gfcoor.F
Minor corrections after big transformer changes
[u/mrichter/AliRoot.git] / GEANT321 / ggeom / gfcoor.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:20:48 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.28 by S.Giani
11*-- Author :
12 SUBROUTINE GFCOOR(X,IAXIS,C)
13C.
14C. *****************************************************************
15C. * *
16C. * ROUTINE TO COMPUTE THE COORDINATE C CORRESPONDING TO THE *
17C. * AXIS IAXIS FOR THE POINT X(1-3). *
18C. * IAXIS = 1 IS THE USUAL X AXIS ------> X(1) *
19C. * IAXIS = 2 IS THE USUAL Y AXIS ------> X(2) *
20C. * IAXIS = 3 IS THE USUAL Z AXIS ------> X(3) *
21C. * IAXIS = 4 IS THE X,Y PLANE R VALUE. *
22C. * IAXIS = 5 IS THE FULL X,Y,Z R VALUE. *
23C. * IAXIS = 6 IS AZIMUTH PHI (ANGLE IN X,Y PLANE). *
24C. * IAXIS = 7 IS THE POLAR ANGLE THETA (R,Z PLANE). *
25C. * *
26C. * ==>Called by : GFTRAC, GINVOL, GMEDIA, GNEXT, GTMEDI, *
27C. * GTNEXT *
28C. * Author A.McPherson ********* *
29C. * *
30C. *****************************************************************
31C.
32#include "geant321/gconsp.inc"
33#include "geant321/gcunit.inc"
34 DIMENSION X(*)
35C.
36C. ----------------------------------------------------
37C.
38 IF(IAXIS.LE.0.OR.IAXIS.GE.8) THEN
39 WRITE(CHMAIL,10000) IAXIS
40 CALL GMAIL(0,0)
41*
42 ELSEIF(IAXIS.LE.3) THEN
43 C=X(IAXIS)
44*
45 ELSEIF(IAXIS.EQ.4) THEN
46 C=X(1)*X(1)+X(2)*X(2)
47 IF(C.GT.0.0) C=SQRT(C)
48*
49 ELSEIF(IAXIS.EQ.5) THEN
50 C=X(1)*X(1)+X(2)*X(2)+X(3)*X(3)
51 IF(C.GT.0.0) C=SQRT(C)
52*
53 ELSEIF(IAXIS.EQ.6) THEN
54 C=0.0
55 IF(ABS(X(1)).GE.1.0E-10.AND.ABS(X(2)).GE.1.0E-10) THEN
56 C=ATAN2(X(2),X(1))*RADDEG
57 ELSEIF(ABS(X(4)).GE.1.0E-10.AND.ABS(X(5)).GE.1.0E-10) THEN
58 C=ATAN2(X(5),X(4))*RADDEG
59 ENDIF
60 IF(C.LT.0.0) C=C+360.0
61*
62 ELSEIF(IAXIS.EQ.7) THEN
63 C=90.0
64 IF(ABS(X(3)).LT.1.0E-10) GO TO 999
65 R=X(1)*X(1)+X(2)*X(2)
66 IF(R.GT.0.0) R=SQRT(R)
67 C=ATAN2(R,X(3))*RADDEG
68 IF(C.LT.0.0) C=C+180.0
69 IF(C.EQ.0.0.AND.X(3).LE.0.0) C=180.0
70*
71 ENDIF
7210000 FORMAT(' ***** GFCOOR: IAXIS =',I5,' NOT SUPPORTED *****')
73 999 END