macro mfm requires that:
  1. mfm has been loaded
  2. values have been ascribed to:
     nflf,nflr,nx,ny,mz,lstep,conrea,conmix,mfmmod

NFLUIDS=NFLF*NFLR
IF(NFLF.GT.1) THEN
 STORE(AVEF); VARMAX(AVEF)=1.0; VARMIN(AVEF)=0.0
 IF(NFLR.EQ.1) THEN
+  STORE(MNSQ); VARMAX(MNSQ)=1.0; VARMIN(MNSQ)=0.0
 ENDIF
ENDIF
IF(NFLR.GT.1) THEN
 STORE(AVER); VARMAX(AVER)=1.0; VARMIN(AVER)=0.0
 IF(NFLF.EQ.1) THEN
+  STORE(MNSQ); VARMAX(MNSQ)=1.0; VARMIN(MNSQ)=0.0
 ENDIF
ENDIF
mesg(mfm1 arranges solution for :nfluids: fluids in rising order
INTEGER(III)
III=NFLUIDS+1
                 ! DO loop order chosen so that
                 ! F1 is solved first          
DO II = 1,NFLUIDS              
 III = III-1                  
 SOLVE(F:III:)
 VARMAX(F:III:)=1.0; VARMIN(F:III:)=0.0; RELAX(F:III:,LINRLX,0.5)
ENDDO
mesg(macro mfm1 sets linear relaxation for all fluids = 0.5

mesg(mfmmod  = :mfmmod:; viscon  = :viscon:; nfluids = :nfluids:;  $
 CONMIX= :CONMIX:
IF(CONREA.GT.0.0) THEN
 MESG(conrea = :conrea:; Chemical reaction is active
 mesg(ratexp  = :ratexp:;  highf  = :highf:; lowf  = :lowf:
ENDIF 

mesg(macro mfm1 transmits data to EARTH via SPEDAT

SPEDAT(MFM,MFMMOD,C,:MFMMOD:)
SPEDAT(MFM,NFLUIDS,I,:NFLUIDS:)
SPEDAT(MFM,NFLR,I,:NFLR:)
SPEDAT(MFM,NFLF,I,:NFLF:)
SPEDAT( MFM, CONREA, R, :CONREA:)
SPEDAT( MFM, CONMIX, R, :CONMIX:)

IF(CONREA.GT.0.0) THEN
 SPEDAT(MFM,RATEXP,R,:RATEXP:)
 SPEDAT(MFM,highf,R,:highf:)
 SPEDAT(MFM,lowf,R,:lowf:)
ENDIF 
SPEDAT(MFM,VISCON,R,:VISCON:)
mesga(>> During an EARTH run with graphical monitor active,  <<
mesg(>> entering S S brings fluid-population display <<
mesg(>> to screen, and allows some data-change opportunity. <<
mesgb(macro mfm1, i.e. L003, ends
STOP