277 lines
8.4 KiB
Plaintext
277 lines
8.4 KiB
Plaintext
|
|
c===============================================================================
|
|
c INITIALIZE.INC
|
|
c===============================================================================
|
|
|
|
|
|
c die Spezifizierungen der Schleifen-Parameter (character*22):
|
|
|
|
par_text(UTarget) = 'U(Target) [kV] : '
|
|
par_text(UGuard ) = 'U(Guard) [kV] : '
|
|
par_text(UGi1 ) = 'U(Gitter1)[kV] : '
|
|
par_text(BTD ) = 'B(TD) [Gauss] : '
|
|
par_text(BHelm ) = 'B(Helmh.) [Gauss] : '
|
|
par_text(mass ) = 'Masse [keV/c**2]: '
|
|
par_text(charge ) = 'Ladung [e] : '
|
|
par_text(ener ) = 'Energie [keV] : '
|
|
par_text(yPos ) = 'y0 [mm] : '
|
|
par_text(zPos ) = 'z0 [mm] : '
|
|
par_text(thetAng) = 'theta0 [degree] : '
|
|
par_text(phiAng ) = 'phi0 [degree] : '
|
|
|
|
|
|
c die Gebiets-Bezeichnungen (character*40):
|
|
|
|
Gebiet_Text(upToGrid1) = 'in 1. Beschl.Stufe:'
|
|
Gebiet_Text(upToGrid2) = 'in 2. Beschl.Stufe:'
|
|
Gebiet_Text(upToHeShield) = 'bis He-Schild:'
|
|
Gebiet_Text(upToLNShield) = 'bis LN-Schild:'
|
|
|
|
|
|
c die Bezeichnungen fuer die moeglichen Teilchenschicksale (character*26):
|
|
|
|
code_text(code_vor_Mappe ) = 'Testort vor Potentialmappe: '
|
|
code_text(code_neben_Mappe ) = 'Potentialmappe verlassen: '
|
|
code_text(code_hit_grid2 ) = 'auf Gitter 2 aufgeschlagen: '
|
|
code_text(code_hit_grid1 ) = 'auf Gitter 1 aufgeschlagen: '
|
|
code_text(code_hit_TgtHolder ) = 'Targethalter getroffen: '
|
|
|
|
code_text(code_OK ) = 'bis jetzt alles ok: '
|
|
|
|
code_text(code_decay ) = 'zerfallen: '
|
|
code_text(code_reflektiert ) = 'reflektiert: '
|
|
code_text(code_wand ) = 'aufgeschlagen: '
|
|
code_text(code_lost ) = 'verloren (steps>maxsteps): '
|
|
code_text(code_dtsmall ) = 'zu oft dt < dtSmall: '
|
|
|
|
|
|
c die Ueberschriften der Tabellen-files (character*9):
|
|
|
|
statName(Nr_S1M2) = 'S1M2 '
|
|
|
|
|
|
c die Extensions der Tabellen-files (character*9):
|
|
|
|
TabExt(Nr_S1M2) = '._S1M2 '
|
|
|
|
|
|
c die Reihenfolge, in welcher die Schleifen der 'Schleifenparameter' par(i,k)
|
|
c im Hauptprogramm abgearbeitet werden:
|
|
|
|
DATA reihenfolge /
|
|
+ UTarget,UGuard,UGi1, BHelm,BTD, mass,charge,
|
|
+ ener,thetAng,phiAng,yPos,zPos /
|
|
|
|
|
|
c====== Initialisierungen fuer die benutzerdefinierbaren Parameter ============
|
|
|
|
c Das Startgebiet 'Gebiet0' wird indirekt im SUB 'READ_INPUTFILE' via eine der
|
|
c lokalen Variablen 'Startflaeche' oder 'x0_' initialisiert.
|
|
|
|
c - - - - - - - - - - zufallsverteilte Startparameter - - - - - - - - - - - - -
|
|
|
|
c Energie:
|
|
|
|
DATA random_E0 /.false./
|
|
DATA random_energy / 0 /
|
|
|
|
DATA random_E0_equal /.false./
|
|
DATA lowerE0 / 0.000 /
|
|
DATA upperE0 / 0.010 /
|
|
|
|
DATA random_E0_gauss /.false./
|
|
DATA sigmaE0 / 0.010 /
|
|
|
|
|
|
c Position:
|
|
|
|
DATA random_pos /.false./
|
|
DATA random_position / 0 /
|
|
DATA sigmaPosition / 15. /
|
|
|
|
DATA random_y0z0_equal /.false./
|
|
DATA random_r0_equal /.false./
|
|
DATA random_y0z0_Gauss /.false./
|
|
DATA random_r0_Gauss /.false./
|
|
DATA StartBreite / -1. /
|
|
DATA StartHoehe / -1. /
|
|
DATA StartRadius / -1. /
|
|
|
|
|
|
c Winkel:
|
|
|
|
DATA random_angle /.false./
|
|
DATA random_winkel / 0 /
|
|
|
|
DATA random_lambert /.false./
|
|
DATA random_gauss /.false./
|
|
DATA StartLambertOrd / 1. /
|
|
DATA sigmaWinkel / 1. /
|
|
|
|
DATA ener_offset / .true. /
|
|
DATA pos_offset / .true. /
|
|
DATA angle_offset / .true. /
|
|
|
|
c - - - - - - - - - - Schleifen-Parameter - - - - - - - - - - - - - - - - - - -
|
|
|
|
! Das Schleifenparameterfeld 'par(i,k)' (1 <= k <= par_Anzahl)
|
|
! wird indirekt im SUB 'read_inputFile' ueber die dortigen lokalen
|
|
! Variablen '_parameter' initialisiert. (siehe dort).
|
|
! Hier wird nur die 'Zufallsschleife' par(i,0) initialisiert.
|
|
|
|
DATA par(1,0) / 1. /
|
|
DATA par(2,0) / 1. /
|
|
DATA par(3,0) / 1. /
|
|
|
|
|
|
c - - - - - - - - - - Projektile- - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
DATA art_Name / 'm+ ', 'm- ', ! character*4
|
|
+ 'Mu ', 'Mu- ',
|
|
+ 'e+ ', 'e- ',
|
|
+ 'H+ ', 'H ', 'H- ',
|
|
+ 'H2+ ', 'H2 ', 'H2- ',
|
|
+ 'alfa',
|
|
|
|
+ 'A11+', 'A12+', 'A21+', 'A31+', 'A32+',
|
|
+ 'N11+', 'N21+',
|
|
+ 'K11+', 'K12+',
|
|
|
|
+ 'H2O1', 'H2O2', 'H2O3', 'H2O4', 'H2O5',
|
|
|
|
+ 'Hyd1', 'Hyd2', 'Hyd3', 'Hyd4', 'Hyd5',
|
|
+ 'Hyd6', 'Hyd7', 'Hyd8', 'Hyd9'
|
|
+ /
|
|
|
|
c folgende Werte wurden aus bzw. mittels 'HANDBOOK OF CHEMESTRY AND PHYSICS,
|
|
c 74th edition' und 'PHYSICAL REVIEW D, 50, S.1173-1826 (August 1994)' bestimmt:
|
|
|
|
DATA art_Masse / 105658., 105658.,
|
|
+ 106169., 106680.,
|
|
+ 510.9991, 510.9991,
|
|
+ 938272.3, 938783.3, 939294.3,
|
|
+ 1877055.6, 1877566.6, 1878077.6,
|
|
+ 3727380.2,
|
|
|
|
+ 37.96238E6,37.22371E6,74.44896E6,111.673689E6,111.673178E6,
|
|
+ 13.043273 ,26.087057,
|
|
+ 78.16258E6,78.162070E6,
|
|
|
|
+ 16.77623E6,33.55297E6,50.32971E6,67.10644E6,83.88318E6,
|
|
|
|
+ 17.71501E6,34.49175E6,51.26849E6,68.04523E6,84.82197E6,
|
|
+ 101.59870E6,118.37544E6,135.15218E6,151.92892E6
|
|
|
|
+ /
|
|
|
|
DATA art_Ladung / +1., -1.,
|
|
+ 0., -1.,
|
|
+ +1., -1.,
|
|
+ +1., 0., -1.,
|
|
+ +1., 0., -1.,
|
|
+ +2.,
|
|
|
|
+ +1., +2., +1., +1., +2.,
|
|
+ +1., +1.,
|
|
+ +1., +2.,
|
|
|
|
+ +1., +1., +1., +1., +1.,
|
|
|
|
+ +1., +1., +1., +1., +1.,
|
|
+ +1., +1., +1., +1.
|
|
+ /
|
|
|
|
DATA artList / ' ' /
|
|
DATA artList_defined /.false./
|
|
|
|
c - - - - - - - - - - Programmsteuerung - - - - - - - - - - - - - - - - - - - -
|
|
|
|
DATA scaleFactor / 1. /
|
|
|
|
DATA UseDecay / .false. /
|
|
|
|
DATA DEBUG / .false. /
|
|
|
|
DATA HVs_from_map / .false. /
|
|
DATA TestRun / .false. /
|
|
DATA log_confine / .false. /
|
|
DATA maxBelowDtSmall / 50 /
|
|
|
|
c - - - - - - - - - - Graphikausgabe- - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
DATA GRAPHICS / .false. /
|
|
DATA GRAPHICS_Anzahl / 25 /
|
|
|
|
DATA n_postSkript / 1 /
|
|
|
|
DATA imonitor / 2 /
|
|
|
|
c - - - - - - - - - - FileName- - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
DATA filename / 'AC_' /
|
|
|
|
c - - - - - - - - - - Vorgaben fuer das Summary - - - - - - - - - - - - - - - -
|
|
|
|
DATA n_outWhere / 2 /
|
|
|
|
DATA LogFile / .false. /
|
|
DATA smallLogFile / .false. /
|
|
|
|
DATA statsInSummary / .false. /
|
|
|
|
! 'statInSummary' wird indirekt im SUB 'read_inputFile' ueber die
|
|
! lokalen Variablen 'SUM_*' initialisiert (alle auf .false.)
|
|
|
|
c - - - - - - - - WELCHE FILES sollen erzeugt werden? (ausser .SUM)- - - - - -
|
|
|
|
DATA createTabellen / .false. /
|
|
|
|
! 'createTabelle' wird indirekt im SUB 'read_inputFile' ueber die
|
|
! lokalen Variablen 'TAB_*' initialisiert (alle auf .false.)
|
|
|
|
DATA createPhysTab / .false. /
|
|
|
|
DATA NTP_Misc / .false. /
|
|
DATA NTP_start / .false. /
|
|
DATA NTP_stop / .false. /
|
|
DATA NTP_40mm / .false. /
|
|
|
|
c - - - - - - - - - - Fehlerkontrolle - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
DATA eps_x / 1.e-5 /
|
|
DATA eps_v / 1.e-5 /
|
|
DATA log_relativ / .false. /
|
|
|
|
DATA maxStep / 6000 /
|
|
|
|
DATA dtsmall / .001 /
|
|
|
|
c - - - - - - - - - - Programmablauf- - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
DATA n_dtsmall / 0 /
|
|
DATA n_dtsmall_Max / 0 /
|
|
DATA dtsmall_counter / 0 /
|
|
DATA Lost_counter / 0 /
|
|
|
|
DATA Startflaeche / 0 /
|
|
DATA SchleifenNr / 0 /
|
|
|
|
c Ausgabekanaele (fuer die 'do indx = indx1, indx2 ....' Anweisungen):
|
|
|
|
DATA lun / lunLOG, lunScreen /
|
|
|
|
DATA OneLoop / .false. /
|
|
DATA OneStartPerLoop / .false. /
|
|
|
|
|
|
c fuer Random-Generator: 'seed' soll gross und ungerade sein. ->
|
|
c nimm den Sinus von secnds, und mache daraus durch Multiplikation mit ent-
|
|
c sprechender 10er-Potenz eine 8stellige Integer-Zahl. Sollte seed dann
|
|
c gerade sein, mache es ungerade:
|
|
|
|
help1= abs(sin(secnds(0.))) ! abs(), da sonst log10(sec) zu Fehler fuehrt
|
|
seed = int(help1* 10.**(8-int(log10(help1)) ) )
|
|
if ((seed/2)*2.EQ.seed) seed=seed-1 ! z.B. seed=3 -> seed/2=1, wegen Integer
|
|
|
|
|