1 |
* |
* |
2 |
* $Id: gpustep.F,v 3.1.1.1 2002/07/11 16:02:00 cafagna Exp $ |
* $Id: gpgig.F,v 1.1 2005/12/20 12:21:05 cafagna Exp $ |
3 |
|
* |
4 |
|
* $Log: gpgig.F,v $ |
5 |
|
* Revision 1.1 2005/12/20 12:21:05 cafagna |
6 |
|
* gpnd directory added along with ND files |
7 |
* |
* |
|
* $Log: gpustep.F,v $ |
|
8 |
* Revision 3.1.1.1 2002/07/11 16:02:00 cafagna |
* Revision 3.1.1.1 2002/07/11 16:02:00 cafagna |
9 |
* First GPAMELA release on CVS |
* First GPAMELA release on CVS |
10 |
* |
* |
29 |
* Author: Francesco Cafagna, 29/04/96 16.56.08 * |
* Author: Francesco Cafagna, 29/04/96 16.56.08 * |
30 |
* * |
* * |
31 |
************************************************************************ |
************************************************************************ |
|
#include "gpques.inc" |
|
32 |
#include "gctmed.inc" |
#include "gctmed.inc" |
|
#include "gckine.inc" |
|
33 |
#include "gcking.inc" |
#include "gcking.inc" |
|
#include "gcflag.inc" |
|
34 |
#include "gctrak.inc" |
#include "gctrak.inc" |
35 |
#include "gcvolu.inc" |
#include "gckine.inc" |
36 |
#include "gcsets.inc" |
#include "gpgig.inc" |
37 |
#include "gpkey.inc" |
#include "gpgneut.inc" |
|
#include "gpsed.inc" |
|
|
|
|
38 |
* |
* |
39 |
LOGICAL W,GPLOOK |
LOGICAL W,GPLOOK |
40 |
INTEGER IFLAG |
INTEGER IFLAG |
41 |
INTEGER IFL,IN,MECNAM(MAXMEC) |
INTEGER IFL,IN,MECNAM(MAXMEC) |
42 |
IF(IFLAG.EQ.1) GO TO 999 |
c$$$ IN = INWVOL |
43 |
IN = INWVOL |
c$$$ IF(IN.NE.0) RETURN |
44 |
IF(IN.NE.0) GO TO 999 |
|
45 |
C # open(20,file='GIG.dat',access='append') |
IF ((GETOT.GT.0.009097).AND.(GETOT.LT.0.028608) |
46 |
C # open(21,file='All.dat',access='append') |
+ .AND.IPART.EQ.1) THEN |
|
* |
|
|
* Is it a gamma ? |
|
|
* |
|
|
IF ((IPART.NE.1).AND.(IPART.NE.13)) GO TO 999 |
|
|
IF (IPART.EQ.13) write(*,*)'particle=',IPART |
|
|
* |
|
|
* Store the mechanisms active for the current step |
|
|
* |
|
|
IF(NMEC.EQ.0)THEN |
|
|
MECNAM(1)=NAMEC(29) |
|
|
ELSE |
|
|
DO I=1,NMEC |
|
|
MEC=LMEC(I) |
|
|
IF(MEC.LE.MAXMEC) THEN |
|
|
MECNAM(I)=NAMEC(MEC) |
|
|
ELSEIF(MEC-100.LE.MAXME1.AND.MEC-100.GT.0) THEN |
|
|
MECNAM(I)=NAMEC1(MEC-100) |
|
|
ENDIF |
|
|
ENDDO |
|
|
ENDIF |
|
47 |
* |
* |
48 |
W=GPLOOK('CAAB',NAMES,NLEVEL) |
* Call the Gigantic resonance routine. |
49 |
IF(W) THEN |
* |
50 |
c CALL GPCXYZ |
CALL GPGRES(STEP,GETOT,VECT(4)*VECT(7), |
51 |
IF ((GETOT.GT.0.009097).AND.(GETOT.LT.0.028608).AND.(IPART.EQ.1)) |
+ VECT(5)*VECT(7),VECT(6)*VECT(7)) |
52 |
+ then |
* |
53 |
c PRINT *, ' GPUSTEP : WE FOUND A GAMMA INTO THE W ! Energy:' |
* First of all let's stop the gamma tracking if neutron(s) is(are) generated |
54 |
c + ,GETOT |
* |
55 |
C # write(20,'(1x,f7.3,1x,f6.3,1x,i4,1x,a10,1x,i4,5(1x,e13.6),1x,i4)') |
IF(Number_N.gt.0) THEN |
56 |
C # + GETOT*1000., STEP, ISTAK, KCASE, NGKINE, |
ISTOP = 1 |
57 |
C # + VECT(4)*VECT(7)*1000., VECT(5)*VECT(7)*1000., |
DO I=1,Number_n |
58 |
C # + VECT(6)*VECT(7)*1000., VECT(7)*1000., VECT(3), NUMBER(NLEVEL) |
* |
59 |
ENDIF |
* Increment the produced secondaries number |
60 |
C # IF (IPART.EQ.13) then |
* |
61 |
C # write(21,'(1x,f7.3,1x,f6.3,1x,i4,1x,a10,1x,i4,5(1x,e13.6),1x,i4)') |
NGKINE = NGKINE + 1 |
62 |
C # + GETOT*1000., STEP, ISTAK, KCASE, NGKINE, |
* |
63 |
C # + VECT(4)*VECT(7)*1000., VECT(5)*VECT(7)*1000., |
* Store the mechnism number |
64 |
C # + VECT(6)*VECT(7)*1000., VECT(7)*1000., VECT(3), NUMBER(NLEVEL) |
* |
65 |
C # ENDIF |
KASE = IGMEC |
66 |
|
* |
67 |
|
* Store the secondaries position in the GCKING common |
68 |
|
* |
69 |
|
GPOS(1,NGKINE) = VECT(1) |
70 |
|
GPOS(2,NGKINE) = VECT(2) |
71 |
|
GPOS(2,NGKINE) = VECT(3) |
72 |
|
* |
73 |
|
* Now the other parameters: px, py, pz, E, Particle ID, TOF |
74 |
|
* |
75 |
|
GKIN(1,NGKINE) = SQRT(NEUT_EN(I)**2-AMGIG**2)* |
76 |
|
+ SIN(TETA_N(I))*COS(FI_N(I)) |
77 |
|
GKIN(2,NGKINE) = SQRT(NEUT_EN(I)**2-AMGIG**2)* |
78 |
|
+ SIN(TETA_N(I))*SIN(FI_N(I)) |
79 |
|
GKIN(3,NGKINE) = SQRT(NEUT_EN(I)**2-AMGIG**2)* |
80 |
|
+ COS(TETA_N(I)) |
81 |
|
GKIN(4,NGKINE) = NEUT_EN(I) |
82 |
|
GKIN(5,NGKINE) = IPGIG |
83 |
|
TOFD(NGKINE) = TOFG |
84 |
|
ENDDO |
85 |
|
ENDIF |
86 |
ENDIF |
ENDIF |
87 |
999 CONTINUE |
999 CONTINUE |
88 |
C # close(20) |
|
|
C # close(21) |
|
|
|
|
89 |
RETURN |
RETURN |
90 |
END |
END |
91 |
|
|