This is the header file of my simulation of life, the universe, and everything in a cellular telephone system as I wrote it in 1984. It was preceded by another header file declaring IMPLICIT data types and assigning array sizes.

     The primitives here are cells (C), antenna faces (F), groups or logical faces (G), cell neighbors (N), radios (R), populations sets (P), terrain data sets (T), mobile telephone calls (M), X positions (X), and Y positions (Y). Each of these have attribute arrays described along with their COMMON declarations.

     This collection of primitves and attributes became the bottom layer of other applications that displayed simulation output data and made recommendations of system parameters.

     What I find most striking as I look at this header file is how similar it is to the programming I have done in the two decades between then and now. I have solved myriad different problems but the programming vocabulary here has remained sufficient to satisfy me.

    

    

c
c		Besides being the COMMON part for the M2 simulation
c		of life, the universe, and everything in a cellular
c		system, this program documents the entire data base
c		for all my cellular engineering programs.
c						Adam N. Rosenberg
c
c			NAMING CONVENTIONS:
c		First letter is variable type:
c		integer = i through n
c		floating point = a through h and r through z
c		one-byte integer = o through q.
c		Arrays generally start with f, n, p, or q
c		where f indicates floating point,
c		      n indicates integer,
c		      p indicates a power or path loss byte, and
c		      q indicates a one-byte variable.
c
c		O = of
c
c		C = cell
c		F = face
c		G = group or logical face
c		R = radio
c
c		N = neighbor
c
c		P = population set
c		T = terrain transmission data set
c
c		M = mobile or portable or call
c
c		X = x-position (bins E of W-boundary)
c		Y = y-position (bins N of S-boundary)
c
	common /m2/ m2time, m2step, mstart, m2end, bin, qnm(16)
c
c		m2time = m2 clock time in seconds
c		m2step = increment of m2 clock
c		mstart = starting time for record keeping
c		m2end  = program stopping time on m2 clock
c		bin    = distance in meters for one bin
c		qnm(j) = name of system (j=1,16)
c
	common /m2/ fxoc(NUMC), fyoc(NUMC), ntopc(NUMP,NUMC)
	common /m2/ nfoc(NUMC), nnfoc(NUMC), ndoc(NUMN,NUMC)
	common /m2/ nndoc(NUMC)
	common /m2/ nnsgoc(NUMC), qsoosc(8,NUMC), qssosc(8,NUMC)
	common /m2/ frosc(8,NUMC), nsatoc(NUMC), ndrocc(NUMC,NUMC)
	common /m2/ qnmoc(16,NUMC), jnoc, jmnoc
c
c		fxoc(jc)       = x-position of cell jc
c		fyoc(jc)       = y-position of cell jc
c		ntopc(jp,jc)   = terrain data set of pop jp, cell jc
c		nfoc(jc)       = first face of cell jc
c		nnfoc(jc)      = number of faces on cell jc
c		ndoc(jd,jc)    = directed retry neighbor jd of jc
c		nndoc(jc)      = number on directed retry list of jc
c		nnsgoc(jc)     = number of server groups of cell jc
c		qsoosc(js,jc)  = strongest only indicator of server
c				group js of cell jc
c		qssosc(js,jc)  = strongest neighbor list indicated
c				of server group js of cell jc
c		frosc(js,jc)   = radius of server group js of cell jc
c		nsatoc(jc)     = SAT of radios on cell jc
c		ndrocc(jc,kc)  = number of dir-retries from jc to kc
c		qnmoc(j,jc)    = name of cell site jc (j=1,16)
c		jnoc           = number of cells
c		jmnoc          = maximum number of cells
c
	common /m2/ qdof(NUMF), fxof(NUMF), flof(18,NUMF), nchof(NUMF)
	common /m2/ fagof(NUMF), ftpof(NUMF), fdmpof(NUMF)
	common /m2/ qltof(NUMF), ncof(NUMF)
	common /m2/ ngof(NUMF), nngof(NUMF)
	common /m2/ niof(NUMF), nniof(NUMF)
	common /m2/ mcaof(NUMF), mdraof(NUMF), mdrbof(NUMF)
	common /m2/ mlpof(NUMF), mszof(NUMF), mdmof(NUMF)
	common /m2/ mblof(NUMF), mbaof(NUMF), mvcof(NUMF), mipof(NUMF)
	common /m2/ msatrf(NUMF), msatmf(NUMF)
	common /m2/ qnmof(16,NUMF), jnof, jmnof
c
c		qdof(jf)    = 0 for omni, 1 for directive
c		fxof(jf)    = axis direction of face jf (deg E of N)
c		flof(j,jf)  = loss when 10*j degrees off-axis
c		nchof(jf)   = access channel of face jf &
c		fagof(jf)   = antenna gain of face jf
c		ftpof(jf)   = access channel power of face jf
c		fdmpof(jf)  = default mobile power of face jf
c		qltof(jf)   = last try indication of face jf
c		ncof(jf)    = cell of face jf
c		ngof(jf)    = first group of face jf
c		nngof(jf)   = number of groups on face jf
c		niof(jf)    = first idle radio of face jf
c		nniof(jf)   = number of idle radios on face jf
c		mcaof(jf)   = number of call attempts on face jf
c		mdraof(jf)  = number of directed retries (access)
c		mdrbof(jf)  = number of directed retries (blocked)
c		mlpof(jf)   = number of lost pages on face jf
c		mszof(jf)   = number of lost seizure messages on jf
c		mdmof(jf)   = number of lost directed retry messages
c		mbaof(jf)   = number of calls below access on jf
c		mblof(jf)   = number of blocked calls on jf
c		mvcof(jf)   = number of lost voice channel messages
c		mipof(jf)   = number of calls below i.p. threshold
c		msatrf(jf)  = number of calls losing rad SAT on setup
c		msatmf(jf)  = number of calls losing mob SAT on setup
c		qnmof(j,jf) = name of face jf (j=1,16)
c		jnof        = number of faces
c		jmnof       = maximum number of faces
c
	common /m2/ f1og(NUMG), f2og(NUMG)
	common /m2/ ndnog(NUMN,NUMG), ndngog(NUMN,NUMG)
	common /m2/ ndnsog(NUMN,NUMG)
	common /m2/ nndog(NUMG), ncmpog(NUMG), ndtrog(NUMG)
	common /m2/ ndtsog(NUMG), fatog(NUMG)
	common /m2/ fdrpog(NUMG), fdmpog(NUMG)
	common /m2/ fdrrog(NUMG), frslog(NUMG), frwiog(NUMG)
	common /m2/ fdmrog(NUMG), fmslog(NUMG), fmwiog(NUMG)
	common /m2/ ftpog(NUMG), fiptog(NUMG), fuphog(NUMG)
	common /m2/ foccog(NUMG), fovrog(NUMG)
	common /m2/ nfog(NUMG), nsgog(NUMG), qsopg(NUMP,NUMG)
	common /m2/ qdpcrog(NUMG), qdpcmog(NUMG), qsatog(NUMG)
	common /m2/ quhoog(NUMG)
	common /m2/ nrog(NUMG), nnrog(NUMG), nfrog(NUMG)
	common /m2/ masog(NUMG), mosog(NUMG)
	common /m2/ mgurog(NUMG), mgumog(NUMG)
	common /m2/ msatrg(NUMG), msatmg(NUMG)
	common /m2/ mxrog(NUMG), mxmog(NUMG), mipog(NUMG)
	common /m2/ msatrh(NUMG), msatmh(NUMG), mlhoog(NUMG)
	common /m2/ morqg(32,NUMG), momqg(32,NUMG)
	common /m2/ morsg(32,NUMG), momsg(32,NUMG)
	common /m2/ mttog(NUMG), mtpog(NUMG), mtsog(NUMG)
	common /m2/ mtdog(NUMG), mdtrog(NUMG)
	common /m2/ mhaog(NUMG), mnhaog(NUMG)
	common /m2/ mhoog(NUMG), mhblog(NUMG)
	common /m2/ muhoog(NUMG), mxhoog(NUMG), lxhoog(NUMG)
	common /m2/ mhoong(NUMN,NUMG), lhoong(NUMN,NUMG)
	common /m2/ mdpcog(NUMG), mfpcog(NUMG)
	common /m2/ maudog(NUMG), mnauog(NUMG), mfaog(NUMG)
	common /m2/ gnog(NUMG), g2og(NUMG)
	common /m2/ gmofg(NUMF,NUMG), gsofg(NUMF,NUMG), gradog(NUMG)
	common /m2/ qnmog(16,NUMG), jnog, jmnog
c
c		f1og(jg)      = primary threshold of group jg
c		f2og(jg)      = secondary threshold of group jg
c		ndnog(jn,jg)  = downward neighbor jn of group jg
c		ndngog(jn,jg) = neighbor group of downward neighbor jn
c		ndnsog(jn,jg) = neighbor subgroup of neighbor jn
c		nndog(jg)     = size of neighbor list of jg
c		ncmpog(jg)    = number for complete list of jg
c		ndtrog(jg)    = number of requests needed for delayed
c			        trigger state for group jg
c		ndtsog(jg)    = number of triggers ignored in delayed
c			        trigger state for group jg
c		fatog(jg)     = access threshold of group jg (compared
c				directly with mobile access power)
c		fdrpog(jg)    = default radio power of group jg
c		fdmpog(jg)    = default mobile power of group jg
c		fdrrog(jg)    = rad-DPC default radio received power
c		frslog(jg)    = radio-DPC slope of group jg
c		frwiog(jg)    = radio-DPC window of group jg
c		fdmrog(jg)    = mob-DPC default radio received power
c		fmslog(jg)    = mobile-DPC slope of group jg
c		fmwiog(jg)    = mobile-DPC window of group jg
c		ftpog(jg)     = maximum power of radio in group jg
c		fiptog(jg)    = interference protection threshold of jg
c		fuphog(jg)    = upward hysteresis of group jg
c		foccog(jg)    = occupancy of group jg
c		fovrog(jg)    = overflow rate of group jg
c		nfog(jg)      = face of group jg
c		nsgog(jg)     = server group of group jg
c		qsopg(jp,jg)  = one if group jg serves jp population
c		qdpcrog(jg)   = one if group jg has DPC at the cell
c		qdpcmog(jg)   = one if group jg has DPC at the mobile
c		qsatog(jg)    = one if jg has SAT detect on locate
c		quhoog(jg)    = one if group jg has upward handoff
c		nrog(jg)      = first radio of group jg
c		nnrog(jg)     = number of radios in group jg
c		nfrog(jg)     = free (available) radios in group jg
c		masog(jg)     = available call time on group jg
c		mosog(jg)     = occupied call time on group jg
c		mgurog(jg)    = number of land ends giving up on jg
c		mgumog(jg)    = number of mobiles giving up on jg
c		msatrg(jg)    = number losing rad SAT during call
c		msatmg(jg)    = number losing mob SAT during call
c		mxrog(jg)     = number of radio crosstalk lost calls
c		mxmog(jg)     = number of mobile crosstalk lost calls
c		msatrh(jg)    = number losing rad SAT after handoff
c		msatmh(jg)    = number losing mob SAT after handoff
c		mlhoog(jg)    = number of lost handoff messages
c		mipog(jg)     = number below i.p.t. after handoff
c		morqg(jq,jg)  = time on group jg at radio S/I=jq
c		momqg(jq,jg)  = time on group jg at mobile S/I=jq
c		morsg(js,jg)  = time on group jg at radio S=js
c		momsg(js,jg)  = time on group jg at mobile S=js
c		mttog(jg)     = total triggers on group jg
c		mtpog(jg)     = triggers below primary (not all are)
c		mtsog(jg)     = triggers below secondary on group jg
c		mtdog(jg)     = triggers delayed on group jg
c		mdtrog(jg)    = delayed trigger requests on group jg
c		mhaog(jg)     = handoff attempts from group jg
c		mnhaog(jg)    = no handoff attempt (audit only) from jg
c		mhoog(jg)     = handoffs from group jg
c		mhblog(jg)    = blocked handoffs from group jg
c		muhoog(jg)    = upward handoffs from group jg
c		mxhoog(jg)    = cross-face handoffs from group jg
c		lxhoog(jg)    = lost cross-face handoffs from group jg
c		mhoong(jn,jg) = handoffs from group jg to neighbor jn
c		lhoong(jn,jg) = lost handoffs from group jg to neighbor jn
c		mdpcog(jg)    = power changes in group jg
c		mfpcog(jg)    = failed power changes in group jg
c		maudog(jg)    = audits on group jg
c		mnauog(jg)    = no audit (or handoff) on group jg
c		mfaog(jg)     = failed audits on group jg
c		gnog(jg)      = call samples in gmofg, gsofg, gradog
c		g2og(jg)      = call samples with secondary server
c		gmofg(jf,jg)  = avg path loss to mobile served by
c		                group jg from face jf
c		gsofg(jf,jg)  = avg path loss squared to mobile
c		                served by group jg from face jf
c		gradog(jg)    = average serving distance (radius) of jg
c		qnmog(j,jg)   = name of group jg (j=1,16)
c		jnog          = number of groups
c		jmnog         = maximum number of groups
c
	common /m2/ nchor(NUMR), nsator(NUMR), nrnkor(NUMR)
	common /m2/ ndbor(NUMR), nochor(NUMR), nfrmor(NUMR)
	common /m2/ nogor(NUMR), nrdnor(NUMR)
	common /m2/ ncmor(NUMR), namor(NUMR), nwmor(NUMR), ftpor(NUMR)
	common /m2/ fspor(NUMR), fipor(NUMR)
	common /m2/ fcpor(NUMR), fwpor(NUMR), fapor(NUMR)
	common /m2/ ngor(NUMR), jnor, jmnor
c
c		nchor(jr)     = channel of radio jr
c		nsator(jr)    = SAT or color code of radio jr
c		nrnkor(jr)    = rank of radio jr
c		ndbor(jr)     = predicted S/I of radio jr
c		nochor(jr)    = old channel of radio jr (0 if none)
c		nfrmor(jr)    = frame of radio jr
c		nogor(jr)     = old group of jr (0 if it was idle)
c		nrdnor(jr)    = radio number (1-16) of jr on frame
c		ncmor(jr)     = correct mobile for radio jr & *
c		namor(jr)     = actual mobile for radio jr * **
c		nwmor(jr)     = worst interfering mobile for jr & **
c		ftpor(jr)     = on axis transmitted power of jr **
c		fspor(jr)     = received signal power at radio jr **
c		fwpor(jr)     = worst interferer power at radio jr **
c		fipor(jr)     = received interference at jr **
c		fcpor(jr)     = received co-chan interference at jr **
c		fapor(jr)     = received adj-chan interference at jr **
c		ngor(jr)      = group of radio jr
c		jnor          = number of radios
c		jmnor         = maximum number of radios
c
	common /m2/ nchoi(NUMI), nsatoi(NUMI), nrnkoi(NUMI)
	common /m2/ ndboi(NUMI), nochoi(NUMI), nfrmoi(NUMI)
	common /m2/ nogoi(NUMI), nrdnoi(NUMI)
	common /m2/ nfoi(NUMI), jnoi, jmnoi
c
c		nchoi(ji)  = channel of idle radio ji
c		nsatio(ji) = SAT of idle radio ji
c		nrnkoi(ji) = rank of idle radio ji
c		ndboi(ji)  = S/I of idle radio ji
c		nochoi(ji) = old channel of idle radio ji
c		nfrmoi(ji) = radio frame of idle radio ji
c		nogoi(ji)  = old group of idle radio ji (0 if idle)
c		nrdnoi(ji) = radio number (1-16) of idle radio ji
c		nfoi(ji)   = face of idle radio ji
c		jnoi       = number of idle radios
c		jmnoi      = maximum number of idle radios
c
	common /m2/ nnom(NUMM), ncrom(NUMM), nsatom(NUMM), npom(NUMM)
	common /m2/ nchom(NUMM), narom(NUMM), nwrom(NUMM), nantom(NUMM)
	common /m2/ ntimom(NUMM), nstmom(NUMM), nwtmom(NUMM)
	common /m2/ nrtoom(NUMM), nmtoom(NUMM)
	common /m2/ nrtxom(NUMM), nmtxom(NUMM)
	common /m2/ ndtmom(NUMM), ndcom(NUMN,NUMM)
	common /m2/ ncdrom(NUMM), nghoom(NUMM), nlstom(NUMM)
	common /m2/ nhtmom(NUMM), nhgom(8,NUMM), qaudom(NUMM)
	common /m2/ ndtrom(NUMM), ndtsom(NUMM)
	common /m2/ fxom(NUMM), fyom(NUMM), fpxom(NUMM), fpyom(NUMM)
	common /m2/ fxvom(NUMM), fyvom(NUMM), qmovom(NUMM)
	common /m2/ ftpom(NUMM), fstpom(NUMM)
	common /m2/ fspom(NUMM), fipom(NUMM)
	common /m2/ fcpom(NUMM), fwpom(NUMM), fapom(NUMM)
	common /m2/ nstom(NUMM), nsdom(NUMM), jnom, jmnom
c
c		nnom(jm)     = call number of mobile *
c		ncrom(jm)    = correct radio for mobile jm *
c		nsatom(jm)   = SAT or color code of mobile jm *
c		npom(jm)     = population of mobile jm *
c		nchom(jm)    = channel of mobile jm *
c		narom(jm)    = actual radio for mobile jm **
c		nwrom(jm)    = worst interfering radio for jm & **
c		nantom(jm)   = which antenna of face is serving jm **
c		ntimom(jm)   = time remaining for mobile jm **
c		nstmom(jm)   = time at call setup of mobile jm **
c		nwtmom(jm)   = time until retrying lost call **
c		nrtoom(jm)   = mobile consecutive seconds w/o SAT **
c		nmtoom(jm)   = mobile consecutive seconds w/o SAT **
c		nrtxom(jm)   = radio consecutive sec w/ crosstalk **
c		nmtxom(jm)   = mobile consecutive sec w/ crosstalk **
c		ndtmom(jm)   = time until directed retry for jm **
c		ndcom(jd,jm) = directed retry cell jd of mobile jm *
c		ncdrom(jm)   = cell directing retry of mobile jm *
c		nghoom(jm)   = group handing off mobile jm *
c		nlstom(jm)   = last try indicator of mobile jm **
c		nhtmom(jm)   = time until handoff for mobile jm **
c		nhgom(jh,jm) = handoff group jh of mobile jm **
c		qaudom(jm)   = 1 if mobile is scheduled for audit **
c		ndtrom(jm)   = number of delayed trigger requests **
c		ndtsom(jm)   = number of triggers to be ignored **
c		fxom(jm)     = x-location of mobile jm **
c		fyom(jm)     = y-location of mobile jm **
c		fpxom(jm)    = previous x-position of mobile jm **
c		fpyom(jm)    = previous y-position of mobile jm **
c		fxvom(jm)    = x-velocity of mobile jm **
c		fyvom(jm)    = y-velocity of mobile jm **
c		qmovom(jm)   = one if mobile jm is moving **
c		ftpom(jm)    = transmit power of mobile jm **
c		fstpom(jm)   = system supposed transmit power of jm **
c		fspom(jm)    = received signal power at mobile jm **
c		fipom(jm)    = received interference at jm **
c		fcpom(jm)    = received co-chan interference at jm **
c		fwpom(jm)    = worst interferer power at mobile jm & **
c		fapom(jm)    = received adj-chan interference at jm **
c		nstom(jm)    = status of mobile jm **
c			    0 = no call
c					CALLS IN PROGRESS
c			    1 = normal call
c			    2 = trigger
c			    3 = below primary on recheck
c			    4 = below secondary on recheck
c			    5 = handing off below primary
c			    6 = handing off below secondary
c					INEFFECTIVE ATTEMPTS
c			   20 = lost page
c			   21 = lost seizure message
c			   22 = below access threshold
c			   23 = blocked
c			   24 = lost voice channel message
c			   25 = below i.p.t.
c			   26 = radio only lost SAT on setup
c			   27 = mobile lost SAT on setup
c			   28 = no access channel
c			   29 = lost directed retry message
c					LOST CALLS
c			   40 = radio only lost SAT during call
c			   41 = mobile lost SAT during call
c			   42 = below i.p.t. after handoff
c			   43 = radio lost SAT after handoff
c			   44 = mobile only lost SAT after handoff
c			   45 = failed audit
c			   46 = radio party gave up (S/I)
c			   47 = mobile party only gave up (S/I)
c			   48 = radio party gave up (crosstalk)
c			   49 = mobile party gave up (crosstalk)
c		nsdom(jm)    = random number seed of mobile jm **
c		jnom         = number of mobiles
c		jmnom        = maximum number of mobiles
c
	common /m2/ feop(NUMP), fdoxyp(NUMX,NUMY,NUMP)
	common /m2/ fdoxy(NUMX,NUMY), ntop(NUMP)
	common /m2/ ftpop(NUMP), qnmop(16,NUMP), jnop, jmnop
c
c		feop(jp)         = total Erlangs in population jp
c		fdoxyp(jx,jy,jp) = amount of pop jp at (jx,jy)
c					(cumulative in x and y)
c		fdoxy (jx,jy)    = total population in bin (x,y)
c					(non-cumulative)
c		ntop(jp)         = 1 for mobile, 2 for portable
c		ftpop(jp)        = maximum power of mobiles in pop jp
c		qnmop(j,jp)      = name of population jp
c		jnop             = number of populations
c		jmnop            = maximum number of populations
c
	common /m2/ qoxyt(NUMX,NUMY,NUMT), qnmot(16,NUMT), jnot, jmnot
	common /m2/ jnox, jmnox, jnoy, jmnoy
c
c		qoxyt(jx,jy,jt) = one byte of data about mean and
c		                  variance of signal path loss of
c		                  terrain data set jt to location
c		                  (x,y).
c		qnmot(j,jt) = name of transmission group jt (j=1,16)
c		jnot  = number of terrain transmission data sets
c		jmnot = maximum number of terrain data sets
c		jnox = number of x-bins
c		jmnox = maximum number of x-bins
c		jnoy = number of y-bins
c		jmnoy = maximum number of y-bins
c
	common /m2/ ppgofm(NUMF,NUMM), pmofm(NUMF,NUMM)
	common /m2/ prrofm(NUMF,NUMM,3), prmofm(NUMF,NUMM)
	common /m2/ nnroch(NUMH), nroch(NUCC,NUMH), jmnoch, jmnocc
c
c		ppgofm(jf,jm) = local mean signal path gain from face
c					jf to mobile jm (+190dB)
c		pmofm(jf,jm)  = large area path gain mean (+190dB)
c		prrofm(jf,jm,jant) = Rayleigh component at radio
c					antenna jant in dB
c		prmofm(jf,jm) = Rayleigh component at mobile in dB
c		nnroch(jch)   = number of radios using channel jch
c		nroch(j,jch)  = radios using channel jch (j = 1,nnroch)
c		jmnoch        = maximum number of channels
c		jmnocc        = maximum number of co-channel radios
c
	common /m2/ iver, jver, jrto, jmto, jrtx, jmtx
	common /m2/ jsat, jdpc, jdpcco, juho, jaud, jdr, jgivup
	common /m2/ fdpcwi, fdpcsl, fdpcpc
	common /m2/ fmtosi(10)
	common /m2/ crud, crudm, crudr, cocmpr, cocmpm
	common /m2/ gcomp, adjcmr, adjcmm, avgdur, ferror, locate
	common /m2/ sslow, sfast, sslow2, sfast2, siglow, sighi
	common /m2/ lines(32), qfiles(16,32), qinit(16)
	common /m2/ nout(NUMO), ierror, qtext(32)
	common /m2/ iwrite, itek, itek7, intera
	common /m2/ jprop1, jprop2, jprop3, jprop4, jprop5
	common /m2/ jprop6, jprop7, jprop8, jprop9
	common /m2/ qsig
c
c		iver = version of M2 init.dat file
c		jver = version of .sys file
c		jrto = seconds without SAT for radio timeout
c		jmto = seconds without SAT for mobile timeout
c		jrtx = seconds of crosstalk for radio timeout
c		jmtx = seconds of crosstalk for mobile timeout
c		jsat = 1 if sys has SAT check on h.o. location (DEF=0)
c		jdpc = 1 if sys has dynamic power control (DEF=0)
c		jdpcco = 1 if system waits for power confirmation
c		juho = 1 if system has upward handoff (DEF=0)
c		jaud = 1 if system has audits (DEF=1)
c		jdr = 1 if system has directed retry (DEF=1)
c		fdpcwi = dynamic power control window
c		fdpcsl = dynamic power control slope
c		fdpcpc = percent dynamic power control (for dpcsl)
c		fmtosi(jsi) = mean time until giving up for S/I
c		crud  = noise level of atmosphere
c		crudm = noise level of mobile equipment
c		crudr = noise level of cell radio equipment
c		gcomp = path gain to be added to all levels (DEF=0)
c		cocmpr = compensation for co-ch interference r (DEF=0)
c		cocmpm = compensation for co-ch interference m (DEF=0)
c		adjcmr = comp. for adj-ch interference r (DEF=25)
c		adjcmm = comp. for adj-ch interference m (DEF=25)
c		avgdur = average call duration (DEF=100 seconds)
c		ferror = measurement error percentage (DEF=100)
c		locate = location interval (DEF=5 seconds)
c		sslow = autocovariance for 500 meter variation
c		sfast = autocovariance for 50 meter variation (DEF=3)
c		sslow2 = sslow squared
c		sfast2 = sfast squared
c		siglow = low variance rate for rural areas (DEF=5)
c		sighi = high variance rate for urban areas (DEF=7)
c		lines(kfile) = number of lines written in #k file
c		qfiles(j,kfile) = name of #k file (j=1,9)
c		qfiles(j,kfile) = name of #k file (j=13,16)
c		qinit(j) = name of init file (j=1,16)
c		nout(jtype) = file number of jtype of output &
c			jtype = 1 administrative data
c			jtype = 2 call quality (1-line)
c			jtype = 3 handoff record (1-line)
c			jtype = 4 system performance data
c			jtype = 5 lost call record
c			jtype = 6 signal matrix data
c			jtype = 7 ineffective attempt data
c			jtype = 8 ?
c
c		ierror = 1 if anything is written in diagnose
c		iwrite = status of diagnostic information
c		itek = status of TEK-4105 diagnostic information
c		itek7 = status of TEK-4105 graphics file
c		intera = 1 if session is interactive
c		  MARKERS:
c			solid white box = cell (init)
c			tiny blue + = call to be set up (place)
c			green + = good call in progress (term)
c			red X = call failed on setup (term)
c			green X = call terminated well (term)
c			red diamond = trigger (handof)
c		        blue diamond = handoff complete (handof)
c		  LINES:
c			dashed green line = set up
c			dotted purple line = directed retry
c			dashed red line = trigger
c			dashed blue line = handoff
c
c		jprop* are used for diagnosing propagation subroutines
c
	common /m2/ nseed, mseed, nseed0, mseed0
	common /m2/ kprop,knprop,koprop,kmobsi,kradsi,ksig, ntest0
c
c		nseed and mseed are for random number generators
c		kprop et all are for keeping tabs on CPU usage
c		of OPROP subroutine
c		ntest should be set to -123456789 to make sure
c			common space matches
c
c		*  = changes with call or handoff
c		** = changes continuously
c		&  = zero if none