]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/03/06 15:37:35 mclareni | |
6 | * Add geane321 source directories | |
7 | * | |
8 | * | |
9 | #include "geant321/pilot.h" | |
10 | *CMZ : 3.21/02 29/03/94 15.41.49 by S.Giani | |
11 | *-- Author : | |
12 | SUBROUTINE ERPROP | |
13 | C. | |
14 | C. ****************************************************************** | |
15 | C. * * | |
16 | C. * Performs the error propagation in a step * | |
17 | C. * * | |
18 | C. * ==>Called by : ERTRCH / ERTRNT * | |
19 | C. * Author E.Nagy ********* * | |
20 | C. * * | |
21 | C. ****************************************************************** | |
22 | C. | |
23 | #include "geant321/gctmed.inc" | |
24 | #include "geant321/gckine.inc" | |
25 | #include "geant321/gctrak.inc" | |
26 | #include "geant321/gcunit.inc" | |
27 | #include "geant321/erwork.inc" | |
28 | #include "geant321/ertrio.inc" | |
29 | #include "geant321/trcom3.inc" | |
30 | * | |
31 | DIMENSION DUM(15) | |
32 | * | |
33 | * *** Prepares the end-point | |
34 | * | |
35 | DO 11 I = 1,3 | |
36 | XF(I) = VECT(I) | |
37 | PF(I) = VECT(7)*VECT(3+I) | |
38 | HF(I) = 0. | |
39 | 11 CONTINUE | |
40 | * | |
41 | IF (IFIELD.EQ.3) THEN | |
42 | HF(3) = FIELDM | |
43 | ELSEIF (IFIELD.NE.0) THEN | |
44 | CALL GUFLD (VECT, HF) | |
45 | ENDIF | |
46 | * | |
47 | * *** Propagates the error (in SC-variables) | |
48 | * | |
49 | MVAR = 0 | |
50 | IFLAG = 0 | |
51 | ITRAN = 0 | |
52 | IF (.NOT.LEEXAC) THEN | |
53 | CALL TRPROP (XI ,PPI, HI, XF, PF, HF, CHTR, STEP, DUM, | |
54 | & MVAR, IFLAG, ITRAN, IERR) | |
55 | ELSE | |
56 | CALL TRPRFN (XI ,PPI, HI, XF, PF, HF, CHTR, STEP, DUM, | |
57 | & MVAR, IFLAG, ITRAN, IERR) | |
58 | ENDIF | |
59 | * | |
60 | IF(IERR.NE.0) THEN | |
61 | WRITE (LOUT, 778) IERR | |
62 | RETURN | |
63 | ENDIF | |
64 | * | |
65 | * *** Transport the matrix | |
66 | * | |
67 | CALL SSMT5T (A, EF, EF) | |
68 | * | |
69 | IF (CHARGE.NE.0.) THEN | |
70 | * | |
71 | * *** Add multiple scattering | |
72 | * | |
73 | CALL ERMCSC (EF) | |
74 | * | |
75 | * *** Add fluctuation due to ionization to the error matrix | |
76 | * (and (later) due to bremsstrahlung and pair-production) | |
77 | * | |
78 | EF(1) = EF(1) + (GETOT*GETOT*DEDX2)/(VECT(7)**6) | |
79 | * | |
80 | ENDIF | |
81 | * | |
82 | * *** Copy variables for the next step | |
83 | * | |
84 | CALL UCOPY (XF, XI, 3) | |
85 | CALL UCOPY (PF, PPI, 3) | |
86 | CALL UCOPY (HF, HI, 9) | |
87 | * | |
88 | * | |
89 | 778 FORMAT(//4X,' *** Error in subr. TRPROP',I4,' called by', | |
90 | & 'subr. ERPROP'//) | |
91 | * | |
92 | END |