v2.14 this version uses the FFT subtoutine which uses listvector from the book of "supercomputer" published from Maruzen. Different from previous version using Cray's FFT subroutine, One must specify lp(=log2 na) and na2 ( = na/2 ) in parameter in the file paramsv.inc. v2.14 include # of parameters checking routine. v2.22 include inheritance of sfth v2.23 include laser field wiggling effect on betatron motion. v2.24 include EM wiggler's phase shift. v2.24s3 reduce memory. v2.24s4 cosmetics v2.3 modify output.f to get ame. v2.4 use temporal array in feladv to reduce memory usage. v2.5 bex, bey, bez are defined with expansion coefficients to reduce memory usage. v2.6 caliculate aftc with apa caliculated from parc v2.7 use equivalence statement to use temporal array v3.0 change input format. input element name and element kind v4.0 use delpar to improve trancated error. v4.01 delete vme, ume, vft from mkvme, mkume v4.02 inline expansion of parprd, parcrr to reduce memeory usage. v4.03 remove daft v5.00 use cebeta, i0to3 as explicitly v5.01 complex lap(na,na) => real lap(na,na) v6.00 kl is explicit argument v6.01 not use beta v7.00 modify input format for output v7.01 use ame as work array. Don't use ame directry. One shoud caliclulate from aft using ifft routine. v8.00 nspln is installed to control spfltr in fel v8.01 reduce memory usage of i0to3,cebeta,lap. v9.00 use average value and delta for particle. v1.00 is copied from v9.00- v2.00 ngm, nxp, nyp, nbx, nby is converted as ( ... ) = ( ... ) * np * 12 hx and hy are input parameters instead of hx2, hy2. v3.00 2-dimensional distribution is included. Paraboric and Uniform distribution is now avaiable. f77 f77 allowable discription. v1 input formats for esrc and mirror are changed. suceed of random number seed v3 4-dimensinal spherical symmetric distribution is inpremented for transverse initial distribution. v4 mainly modify xyrchk to be vectrizable modify fft to avoid bank confliction. v5 fix output and input. v6 introduce nem to use variable charge macro particle. v7 variable charge macro particle method is used. this method is equivalent to phase space discritization. but no improvement is seen. v6 is recommended. v8 copied from v6 to test autotasking v9 copied from v8 names are shorter than 6 characters. v10 paramsv.inc is divided to paramsv.inc, physcon.inc debug.inc v11 introduce nam, npm to control na, np with input file. v12 na < nam, np < npm check routine is added to main.f v15 work array for aftp, and sme are used. v17 install hwhm of amepow v18 install z v19 from v18. install fortran random number generator v20 from v19. easier to convert fortran 77 standard ( ie. to make a program without double complex after conversion ) v22 from v21. install zt shaffling(initialize) routine v23 usage of random number function is modified v1 modify input.f on buflen. lmax is removed v2 from v1. isochronous recircuration is installed install EISOREC, emittance calc work directories src_3 different input scheme src_4 copied from src_2 install emittance calc. v4 from v2/src. sfth initialization is in subroutines ( not in main ) v5 input parameter buffer is replaced with string. v6 install cyclic condition for particle v7 install mirror tilt thetax thetay modification of input file is necessary v8 install real cyclic condition for w2nd and i2nd v9 (srctf3 use cyclic boundary condition for particles with smet srcft4 shape up from srctf3) src <- src4 <- srcft4 v10 enhance output control src6 fix random number generation src7 modify output v11 electron re-distribution routine is installed. v12 general user subroutine eoptic is installed src7 fortran 77 src8 random check ( ranndom must use double precision and 4 byte integer ) src9 particle cycric src10 gamma(resonance) cacliculate src11 dztave = nyu ~ v12 is in f77_12-13 v1 src1 copied from v12/src11 v2 src2 install cyclic i2nd src3 install generic intrinsic function cexp -> exp, cabs -> abs src4 install generic intrinsic function amod -> mod use automatic real conversion from comlex ( without real() ) v3 src1 copied from v2/src4 In, d(zt)/d(z), aimag(awazti) -> 2.0*aimag(awazti) v4 src1 copied from v3/src1 amehist is show ameabs instead of amepow v4test src1 copied from v4/src1 parcyc is modified 5v src1 copied from v4/src1 dspsct is added. src2 modify histw src3 esft is added 56 Mflops v6 src1 not work now. Don't use it. src2 amet is not used. 52 Mflops src3 usage of pxycyc is saved. ( reduce "call pxycyc" ) src4 add nd caliculation for DSPSCT src5 modify w2nd to be vectorized. use smew(na,na,nsme) src6 modify w2nd to be vectorized. use smew(9,nsme), ixw(nsme), iyw(nsme) src7 modify w2nd to be vectorized. use smew(9,nsme), ixw(nsme), iyw(nsme) ixp, iyp, ixm,iym use src4 for usual use. v7 src copied from v6/src4 install 'new' kind of element for easy installation of new kind of element. Find new and modify it. v8 src copied from v7/src randg is compatible to ranf src2 eliminate block data block data is converted to be subroutine blkdat which dainyu suuti to common block data automatic version number update shell script makego with verinf.f file making v9 src copied from v8/src2 correct felget.f ( about i0to3 ) src2 correct par.f v10 src partialy vectorized w2nd.f ( 22sec -> 21sec ) saturate at nw2nd ~ 128 v11 src copied from v10/src install Spontaneous Emission v12 src copied from v9/src2 install Spontaneous Emission use red = sqrt( nlt / nepll ) v14 src copied from v12/src use red = sqrt( 1.0 / nem(j*nl+1) ) v15 src copied from v14/src modify felout.f ( about afsyn ) v16 src Copied from v15/src add redfct ( control spontaneous emission ) V17 src Copied from v16/src rename redfct to sptfct v18 src Copied from v17/src particle distribution is specified with dsttyp which is not string but floating number. ztave is fixed. v19 src Copied from v18/src install complex hx, hy aimag -> imag v20 src Copied from v19/src use explicitly double precision number in subroutine random v21 src Copied from v20/src erase kw in subroutine dspsct v22 src Copied from v21/src/dc16 change real to double complex complex to double complex v23 src Copied from v22/src constant to be double precision v24 src Copied from v23/src modify for 1d calc. ( add subroutine parchk ) v25 src Copied from v24/src add 1-Dim. Uniform Distribution. v26 src Copied from v25/src src-2 avoid Optimization error of hp-ux f77 command v27 src7-16 Copied from v26/src. rename ekind to etype change histgram output switch control ( aftout.f ) v28 src7-16 expand "bun-kansu" v29 src7-16 checked by lintfor v32 src7-16 change name drift space to free space v40 src7-16 add Q-Magnet v41 src7-16 add wiggler2 v53 src delete stsfth( sfth, zero ) in aini.f v54 src add external constant focusing v55 src independent lines for distribution type in input.f v60 src change input format for distribution type add workarray wcs for subroutine gtlap (array cs was dynamically made in gtlap before) modify to avoid optimization bug HP Fortran. v61 src add apature routines sapat : for rectangular apature rapat : for circular apature aapat : for arbitorary apature v70 src hx, hy(complex) -> hx2, hy2(real) v71 src add particle corrector and field corrector fel.f aft.f, wrkary.inc v72 src add nc to input field. run corrector nc times fel.f v73 src remove nc from input field. for compatibility for ~v71 (v72 is incompatible with ~v71,v73) if nz > 0, run corrector twice(nc=2) else once(nc=1) fel.f v74 src add bessel function routine ( not polynomial approx. ) DO NOT USE v75 src full functional Bessel Function usage DO NOT USE. Not reviced. v76 src full functional Bessel Function usage speed is almost half of v73