summaryrefslogtreecommitdiff
path: root/Dragon/src/SYBT1D.f
diff options
context:
space:
mode:
Diffstat (limited to 'Dragon/src/SYBT1D.f')
-rw-r--r--Dragon/src/SYBT1D.f93
1 files changed, 93 insertions, 0 deletions
diff --git a/Dragon/src/SYBT1D.f b/Dragon/src/SYBT1D.f
new file mode 100644
index 0000000..8377d67
--- /dev/null
+++ b/Dragon/src/SYBT1D.f
@@ -0,0 +1,93 @@
+*DECK SYBT1D
+ SUBROUTINE SYBT1D(NPIJ,RAD,LGSPH,NGAUSS,Z)
+*
+*-----------------------------------------------------------------------
+*
+*Purpose:
+* Tracking for pij calculation using the method of Kavenoky in annular
+* or spherical geometry. The tracking is used by SYBALC.
+*
+*Copyright:
+* Copyright (C) 2002 Ecole Polytechnique de Montreal
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version
+*
+*Author(s): A. Hebert
+*
+*Parameters: input
+* NPIJ number of regions.
+* RAD radius of regions array.
+* LGSPH geometry flag (=.TRUE. for spherical geometry).
+* NGAUSS number of Gauss points.
+*
+*Parameters: output
+* Z tracking information.
+*
+*-----------------------------------------------------------------------
+*
+* REFERENCE:
+* A. KAVENOKY, 'CALCUL ET UTILISATION DES PROBABILITES DE PREMIERE
+* COLLISION POUR LES MILIEUX HETEROGENES A UNE DIMENSION: LES PROGRAMMES
+* ALCOLL ET CORTINA', NOTE CEA-N-1077, COMMISSARIAT A L'ENERGIE
+* ATOMIQUE, MARS 1969.
+*----
+* SUBROUTINE ARGUMENTS
+*----
+ LOGICAL LGSPH
+ INTEGER NPIJ,NGAUSS
+ REAL RAD(0:NPIJ),Z(*)
+*----
+* LOCAL VARIABLES
+*----
+ PARAMETER(MAXGAU=64,PI=3.1415926535)
+ REAL ALPR(MAXGAU),PWR(MAXGAU)
+*
+ CALL ALGJP(NGAUSS,ALPR,PWR)
+ SUM=0.0
+ IZ=1
+ RIK1=RAD(0)
+ RI=1.0/RAD(NPIJ)
+ DO 60 IK=1,NPIJ
+ RIK2=RAD(IK)
+ RD=RIK2-RIK1
+ DO 50 IL=1,NGAUSS
+ R=RIK2-RD*ALPR(IL)**2
+ R2=R*R
+ IZ=IZ+2
+ IZ1=IZ
+*
+*----
+* STORE INTEGRATION WEIGHT (TIMES 2) FOR THIS LINE
+*----
+ AUX=RD*PWR(IL)*4.0
+ IF(LGSPH) AUX=AUX*R*PI
+ Z(IZ)=AUX
+ CT1=0.
+ CT2=0.
+ DO 40 I=IK,NPIJ
+ CT2=SQRT(RAD(I)**2-R2)
+ IZ=IZ+1
+*----
+* STORE LENGTH OF PATH
+*----
+ Z(IZ)=CT2-CT1
+ CT1=CT2
+ 40 CONTINUE
+*----
+* STORE COS(PHI)*INTEGRATION WEIGHT ( TIMES 2 )
+*----
+ Z(IZ1-1)=Z(IZ1)*CT2*RI
+ SUM=SUM+AUX/CT2
+ 50 CONTINUE
+ RIK1=RIK2
+ 60 CONTINUE
+ IZ=IZ+1
+ IF(LGSPH) THEN
+ Z(1)=SUM/(PI*2.0*RAD(NPIJ))
+ ELSE
+ Z(1)=SUM/PI
+ ENDIF
+ RETURN
+ END