musrsim/trimsp/src/Changelog.txt

170 lines
9.9 KiB
Plaintext

Sep 1998: to create an executable for PC running under WIN95
using the DIGITAL VISUAL FORTRAN compiler (ed. Aug. 97)
Insertion of !DEC$REAL:8 (all REAL are REAL*8)
Conversion of function to double precession
Conversion of function to integer*4
Conversion of random number generator from DRAND48()
to DBLE(RAN(ISEED))
UNIT 17 (data to tape) disabled
UNIT 11 (input data) changed to file name EINGABE1.inp
UNIT 21 (output.data) changed to file name AUSGABE1.out
Insertion of UNIT 22 (only range data), file name AUSGABE1.rge
Dec 1998: Introduction of gaussian distributed projectile energies
new variable RI2 = random number initializer for gaussian energy distribution
new variable ISEED2 = random number for gaussian energy distribution
new variable Esig = sigma of the energy distribution
if Esig=0. then fixed projectile energy
new variable Epar = projectile energy
new subroutine ENERGGAUSS = for the gaussian distribution
new variables in subroutine p1,p2,p3, necessary for calculation of
the gaussian energy distribution
Mar 1999: LOGICAL FUNCTION EQUAL inserted. This function is used for comparision
of REAL*8 variables with 0.
OUTPUT to files AUSGABE1:
bug fixed for the output of the CH(i), bug was also present
in the original and the older version of TRIMSPP*C
if OUTPUT file exists then program asks for new OUTPUT filename
all variables are now defined as REAL*8 or INTEGER*4
for variable conversion from REAL to INTEGER or INTEGER to REAL
conversion function inserted (IDINT, DFLOTJ)
use of correct MIN or MAX functions
data initialization for all variables (like in BHam) but without
DATA ier/102*0/ give an error in calculation of ions stopped in layer 2 - 3
Unit 99 for file ausgabe1.err inserted, if and IF... (see below is true
then a message is included into this file
IF's inserted - can be found by using find WRITE(99,
DABS inserted for DLOG and DLOG10 arguments
Mai 1999: Version h
for TRIMSP simulations running in batch mode (i.e. to calculate
a serie of different range profiles using the same target an output
file FOR33 is created. In this file the following parameters are
written:
E0,Esig,NH,IIM,IB,IT,IRPL(1),IRPL(2),IRPL(3),fix0,sigmax
the FILE open statement is inserted after label 1502
new variable column(100)*104 and colcount inserted.
Mai 1999: Version i
tried to fix bug for variable C2 (in Do 65 loop).
Sometimes this variable becames smaller then 10-10 (an underflow occurs,
the variable C2 is NaN, variables S2 and DENS, which are directly calculated
from C2 are also NaN. If variable C2 is less then 10-10 then C2 is 10-10.
S2 and DENS are calculated with the resetted value of C2.
Range file (output to unit 22) slightly changed. Now the midth of a channel
is calculated and only the number of particles is written to the file
Jun 1999: Version j1
changed calculation of Firsoc screening length according to the IRCU 49 report.
the Andersen-Ziegler tables (file stopping.dat) are revised,i.e. the coefficients
from the ICRU 49 report are included for all elements (file stopicru.dat)
PROGRAM DATMAK2c: this program creates the input files for TRIMSPP4*.
with this program one can change the energy,
the energy distribution, the number of muons, and the
layer thickness easily. This is for making different
simulations (i.e. energy scan, sigma scan, particle
number scan, layer thickness scan). A corresponding
batch file is created with this program too.
Nov 1999: Version j1a
UNIT33: now Etrans, sigmaEtrans, Eback, sigmaEback included
Bug fixed in line 2084, location of 'write to unit33' changed.
Dec 1999: Version k
inclusion of variables
tryE :how often a random energy is calculated by the random generator
for large E0 this number should be the same as the number of projectiles nh
negE :how often a negative energy is calculated by the random generator
tryE - negE should be nh
both variables are type integer, both variables included in the output file
and in the fort33.file
inclusion of alphasig: one dimensional distribution of the angle of incidence
if alphasig .NE. 0 THEN a gaussian distribution of alpha will be calculated
in the subroutine ALPHAGAUSS
if the calculated angle is < 0 then the absolute value is taken because of
the options alpha = -1 or alpha = -2 (see file TRVMC95-v4k.txt)
inclusion of RI3: random seed for the calculation of the gaussian distribution
of alpha.
Header line for file for33 included.
Jan 2000: no new version but
included energy scaling of particle reflection coefficients after Thomas et al.
NIM B69 (1992) 427
the calculated particle reflection coefficients prcoeff are written to the fort.33 file
prc is calculated if 1st layer consists only one element !
included constants prc(1) - prc(6)
Thomas-Fermi reduced energy: epsilon
output of E0 and Esig now in keV
Apr 2000: BUG fixed, Var CHM2 removed, i.e. stopping power for energies below 10 keV
was a little bit overestimated. now version TrimSpP4L
Prg Datmak4L creates input files.
Jun 2000: Source code enlarged to simulate implantation profiles in up to 7 layers.
Each layer can have up to 5 different elements.
BUG fixed in line 1470,i.e. in calculation of scattering angle for the
Moliere potential the variable rrr1 was not handled correct. The length of
line 1470 was too long, RRR1 was read as RRR which has the value 0.
Due to the fact, that all calculation based on the other interaction potentials
(Krypton Carbon and ZBL) give more or less the same inplantation profiles, this
bug has a minor influence to the implantation profile.
Variables DateTime(8) = Integer array and
Real_Clock(3) = Character array included for date and time output to file
Changes for output file to UNIT 33:
Size of character variable column enlarged from 214 to 246
Program datmak7a creates input files for this TrimSp release.
true calculation, i.e. indendent of bin width, of particles stopped
in layers - see UpTiefe,LowTiefe,number_in_layer(7)
INTEGER check_layer_flag : IF 1 then calculated implantation profile
in the 100 depth intervals agrees with
number of particles stopped in the different layers
IF 0 not, message will be written in the range file
UNIT 21 and UNIT22
Nov 2000: Tanya Riseman
Starts porting program to Open VMS and DEC UNIX.
Compile options: f90/list/warn/ext
Minor problems with continuation characters in wrong column and
with a few variables undeclared, mostly functions.
Make code fit on 72 columns, because -extend_source
does not appear to work on DEC Unix.
Start changing strings in format and write statments so that
strings don't straddle continuation character in
column 6. Straddling can be non-portable!
Comment out !DEC$REAL:8 because all
reals are already declared REAL*8. Add implicit none.
Jun 2002: Thomas Prokscha PSI
Stopped porting to f90, use f77 only.
replaced all non-standard f77 function by standard functions.
use ranlux random number generator from the CERN library (libmathlib.a must
be installed) to get rid of machine specific random number generators.
Add pre-compiler instructions for making different output for the .rge files
on Windows and Unix.
Oct 2002: Thomas Prokscha PSI
corrected error in the calculation of the Thomas-Fermi reduced energy:
it was 1/(Z1 Z2 * sqrt( Z1**2/3 + Z2**2/3))
it must be:
1/(Z1 Z2 * sqrt( Z1**(2/3) + Z2**(2/3)))
Aug 2009: Zaher Salman PSI
Changed input file reading to non-formatted. This still works
with old input files, but makes it much easier to create new
input files without the hassle of formatting.
Included the source of ranlux for random numbers generation
into trimsp7l source. No need for cern libraries to be installed.
Feb 2013: Zaher Salman PSI
Cleaned up the code.
When possible remove loop numbres and use do-enddo instead.
Using proper fortran line indentation (emacs style).
Created TimeStamp subroutine to generate time stamp and removed
original code from main (two places)
Mar 2013: Zaher Salman PSI
Started implementation of a more flexible input file format, with
flexible number of layer, not limited to max 7.
Apr 2013: Zaher Salman PSI
Implantation into structures up to 100 layers is possible
Depth profiles with up to 500 points are now possible
Note: The .out file contains only the first 7 layers. This is due
Fortran formatting limitation and is unlikely to changes unless the
layout of the output files is changed. However, for most purposes
this does not affect the functionality of the simulation.