1 c---------------------------------------------------------------------
2 c Parameter lm (declared and set in "npbparams.h") is the log-base2 of
3 c the edge size max for the partition on a given node, so must be changed
4 c either to save space (if running a small case) or made bigger for larger
5 c cases, for example, 512^3. Thus lm=7 means that the largest dimension
6 c of a partition that can be solved on a node is 2^7 = 128. lm is set
7 c automatically in npbparams.h
8 c Parameters ndim1, ndim2, ndim3 are the local problem dimensions.
9 c---------------------------------------------------------------------
13 integer nm ! actual dimension including ghost cells for communications
14 > , nv ! size of rhs array
15 > , nr ! size of residual array
16 > , nm2 ! size of communication buffer
17 > , maxlevel! maximum number of levels
19 parameter( nm=2+2**lm, nv=(2+2**ndim1)*(2+2**ndim2)*(2+2**ndim3) )
20 parameter( nm2=2*nm*nm, maxlevel=(lt_default+1) )
21 parameter( nr = (8*(nv+nm**2+5*nm+14*lt_default-7*lm))/7 )
23 parameter( maxprocs = 131072 ) ! this is the upper proc limit that
24 ! the current "nr" parameter can handle
25 c---------------------------------------------------------------------
26 integer nbr(3,-1:1,maxlevel), msg_type(3,-1:1)
27 integer msg_id(3,-1:1,2),nx(maxlevel),ny(maxlevel),nz(maxlevel)
28 common /mg3/ nbr,msg_type,msg_id,nx,ny,nz
31 common /ClassType/class
33 integer debug_vec(0:7)
34 common /my_debug/ debug_vec
36 integer ir(maxlevel), m1(maxlevel), m2(maxlevel), m3(maxlevel)
38 common /fap/ ir,m1,m2,m3,lt,lb
40 logical dead(maxlevel), give_ex(3,maxlevel), take_ex(3,maxlevel)
41 common /comm_ex/ dead, give_ex, take_ex
43 c---------------------------------------------------------------------
44 c Set at m=1024, can handle cases up to 1024^3 case
45 c---------------------------------------------------------------------
50 double precision buff(nm2,4)