00001 *
00002 *
00003 *
00004 *
00005 *
00006 *
00007 *
00008 INTEGER m_nBinMax
00009 PARAMETER ( m_nBinMax =256 )
00010 INTEGER m_NdiMax
00011 PARAMETER ( m_NdiMax = 5 ) ! maximum dimension for siplices
00012 INTEGER m_KdiMax
00013 PARAMETER ( m_KdiMax = 15 ) ! maximum dimension for hypercubics
00014 INTEGER m_DimMax
00015 PARAMETER ( m_DimMax = m_NdiMax+ m_KdiMax ) ! maximum total dimension
00016 INTEGER m_nBufMax
00017 PARAMETER ( m_nBufMax = 10000 ) ! maximum buffer length for all cells
00018 INTEGER m_vMax
00019 PARAMETER ( m_vMax = 10000 ) ! maximum number of vertices
00020 INTEGER m_cMax
00021 PARAMETER ( m_cMax = 10000 ) ! maximum number of (active) Cells
00022 INTEGER m_sMax
00023 PARAMETER ( m_sMax = 5 ) ! statistics of the weight
00024 INTEGER m_NpairMax
00025 PARAMETER ( m_NpairMax = m_NdiMax*(m_NdiMax+1)/2 ) ! no. of pairs of vertices
00026 INTEGER m_NdiviMax
00027 PARAMETER ( m_NdiviMax = m_NpairMax+m_KdiMax ) ! Total no. of division samplings
00028 *
00029 INTEGER m_CeStat, m_CePare, m_CeDau1, m_CeDau2, m_CeSamp, m_CeVert, m_CeBest !
00030 DOUBLE PRECISION m_CeIntg, m_CeSum, m_CeDriv, m_CePrim, m_CePrCu, m_CeXave, m_CeVolu !
00031 INTEGER m_LastCe, m_LastAc, m_nBuf, m_nBin, m_LastVe !
00032 INTEGER m_ActC
00033 DOUBLE PRECISION m_VerX, m_VolTot !
00034 INTEGER m_Ndim, m_Kdim, m_Dimen
00035 INTEGER m_Chat, m_Out, m_nSampl, m_Ncalls !
00036 INTEGER m_OptPeek, m_OptDrive, m_OptEdge, m_OptOrd, m_EvPerBin, m_OptRanIni, m_OptRanLux!
00037 DOUBLE PRECISION m_Drive, m_SumWt, m_SumWt2, m_NevGen, m_WtMax, m_WtMin !
00038 DOUBLE PRECISION m_MCresult, m_MCerror, m_MCwt, m_MCvector !
00039 DOUBLE PRECISION m_CeVer1, m_CeVer2
00040 INTEGER m_Ltx, m_MagicInit
00041 *
00042 COMMON /c_FoamA/
00043 $ m_CeStat(m_nBufMax), ! Cell member: status=0 inactive, =1 active
00044 $ m_CePare(m_nBufMax), ! Cell member: parent cell pointer
00045 $ m_CeDau1(m_nBufMax), ! Cell member: daughter1 cell pointer
00046 $ m_CeDau2(m_nBufMax), ! Cell member: daughter2 cell pointer
00047 $ m_CeSamp(m_nBufMax), ! Cell member: No of MC events in exploration
00048 $ m_CeVert(m_nBufMax,m_NdiMax+1),! Cell member: simplex vertex pointers
00049 $ m_CeVer1(m_nBufMax,m_KdiMax), ! Cell member: hypercubic vertex position
00050 $ m_CeVer2(m_nBufMax,m_KdiMax), ! Cell member: hypercubic vertex size
00051 $ m_CeIntg(m_nBufMax), ! Cell member: integral estimator
00052 $ m_CeDriv(m_nBufMax), ! Cell member: Drive integral estimate, from build-up
00053 $ m_CePrim(m_nBufMax), ! Cell member: Primary integral estimate, MC generation
00054 $ m_CePrCu(0:m_nBufMax), ! Cell member: Cumulative Primary
00055 $ m_CeVolu(m_nBufMax), ! Cell member: Cartesian volume
00056 $ m_CeXave(m_nBufMax), ! Cell member: Average best X
00057 $ m_CeBest(m_nBufMax), ! Cell member: Best pair of vertices, pointer
00058 $ m_CeSum( m_nBufMax,m_sMax), ! Cell member: weight summaries
00059 $ m_VerX( m_vMax, m_NdiMax), ! List of all VERTEX positions
00060 $ m_ActC(m_cMax), ! List of all pointers to ACTIVE cells
00061 $ m_VolTot, ! Estimate of Volume total, without error
00062 $ m_Drive, ! M.C. generation Drive value of integral
00063 $ m_SumWt, ! M.C. generation sum of Wt
00064 $ m_SumWt2, ! M.C. generation sum of Wt**2
00065 $ m_NevGen, ! M.C. generation sum of 1d0
00066 $ m_WtMax, ! M.C. generation maximum wt
00067 $ m_WtMin, ! M.C. generation minimum wt
00068 $ m_MCresult, ! M.C. generation Final value of INTEGRAL
00069 $ m_MCerror, ! M.C. generation Final walue of ERROR
00070 $ m_MCwt, ! M.C. generation current event weight
00071 $ m_MCvector(m_DimMax),! M.C. generated vector, dimension=m_NdiMax+ m_KdiMax
00072 $ m_Ndim, ! dimension of the siplices
00073 $ m_Kdim, ! dimension of the hypercubics
00074 $ m_Dimen, ! total dimension of the problem =m_Ndim+m_Kdim
00075 $ m_nBuf, ! Actual dynamic lenth of the buffer m_nBuf<m_nBufMax
00076 $ m_nBin, ! No of bins in histogram for cell exploration/division
00077 $ m_LastVe, ! Last vertex
00078 $ m_LastAc, ! Last active cell
00079 $ m_LastCe, ! Last cell in buffer
00080 $ m_nSampl, ! No. of sampling when dividing cell
00081 $ m_Ncalls, ! No. of function calls, total
00082 $ m_OptPeek, ! Flag for random ceel choice: Peek =0,1 for maximum,
00083 $ m_OptDrive, ! Flag for type of Drive =0,1,2 for TrueVol,Sigma,WtMax
00084 $ m_OptEdge, ! Flag which decides whether vertices are included in the sampling
00085 $ m_OptOrd, ! Flag =0 default, entire domain is hyp-cubic, =1 it is simplex
00086 $ m_EvPerBin, ! Maximum effective eevents per bin, saves CPU, =0 inactive
00087 $ m_OptRanIni, ! Flag =0 default, =1 r.n. generator not initialized in PianA
00088 $ m_OptRanLux, ! Flag =-1,0,1,2,3,4 r.n. generator level
00089 $ m_Chat, ! Flag for chat level in output, Chat=1 normal level
00090 $ m_Ltx, ! Latex Output unit, for debug
00091 $ m_Out, ! Output unit
00092 $ m_MagicInit ! Magic cookie of initialization (global variable)
00093 *
00094 SAVE /c_FoamA/
00095 *
00096 *
00097 *