C MTRINI SOURCE PV 08/05/13 21:15:00 6100 C MTRINI SOURCE PV 92/02/27 21:03:45 486 C C driver, derivato dalla strini.eso, per generazione di C un file mif da manipolare con FrameMaker per text-processing C 02.09.92 folco,loris C 15.09.93 pierre C 1995 degrade pour le trace face Pierre Pegon JRC-ISPRA C SUBROUTINE MTRINI(NOL,AXAX,AYAY,TITR,HAUTT,VALEU,NCOUMA) IMPLICIT INTEGER(I-N) -INC CCREEL -INC CCOPTIO external long DIMENSION XTR(*),YTR(*) CHARACTER*(*) TITR,CARAC,PROMPT,REPLY CHARACTER*(*) LEGEND CHARACTER*80 TITRE CHARACTER*500 CHEMIN equivalence (chemin,ichemi) LOGICAL VALEU,FENE,VALEUR,FENET SAVE XIOCAD,YIOCAD,VALEUR,FENET,TITRE,LTITRE SAVE XMIN,YMIN,XXAX,YYAX,CLX,XRAP,YRAP,XDEP,YDEP save kcoul,initia,ipag,jfont,jfonl,jpol,landsc CLP save lfi CLP CLP PARAMETER(IUPS=24) PARAMETER(IUPS=97) CPP data initia/0/ CPP data ipag/1/ DIMENSION ITB(17) logical landsc character miffil*64,line*256 character*18 lfi,lsp character*2 cisov(18),cline(18) C+PPf (FACE) DIMENSION ITCODP(6) DATA ITCODP/6,5,4,3,2,1/ C+PPf data sacfac/1.134/ data initia/0/ data jfont /0/ data jfonl /0/ data jpol /0/ data ipag /1/ c C PP For a 7-color scale I assume it uses only kolor(4,2,6,3,5,7,0) c data cisov /'D0','D1','D2','D3','D4','D5','D6','D7','D8', > 'D9','DA','DB','DC','DD','DE','DF','DG','DH'/ data cline /'C0','C1','C2','C3','C4','C5','C6','C7',10*'C0'/ c * verification des bornes bornex(xxx)=min(max(xiocad*0.01,xxx),xiocad*0.99) borney(yyy)=min(max(yiocad*0.01,yyy),yiocad*0.99) cfolco c c Note: saclay PostScript output generates a scale that is c not in true cm, but a bit larger (1 unit= 1.134 cm) c To obtain 'true' cm we must then divide by 1.134 c We then add 2.0 cm to make the border coxmif(xxx)=(xxx/sacfac)+2.0 coymif(yyy)=(21.0-yyy)/sacfac+2.0 cfolco * C INITIALISATION * on part pour 7 couleurs NCOUMA=7 C!!! NCOUMA=16 C!!! kcoul=0 LTITRE=LONG(TITR) TITRE=TITR VALEUR=VALEU * INITIALISATION DE POSTSCRIPT CLX=0.3 xiocad=diocad yiocad=xiocad*21/29.7 CLP lfi='' lfi='' CLP lsp='' lsp='' landsc=.true. c C+PP if (ZINIPS) then ZINIPS = .false. initia = 0 endif C+PP if (initia.eq.0) then initia=1 kcoul=0 write(iups,'(a)') '# Generated by CASTEM2000' write(iups,'(a,i1)') '# Dimension: ',idim write(iups,'(a,a)') '# Title:',titr write(iups,'(a)') '#' C LP C--------------------------- c c 'mifheader.l' : name of file containing MIF header (Landscape) c 'mifheader.p' : name of file containing MIF header (Portrait) c chemin='MIF_PATH'//char(0) lchem=500 call ooozen(ichemi,lchem) if (lchem.eq.0) then write (ioimp,*) 'Please define MIF_PATH' stop endif lchem=long(chemin(1:lchem)) if(landsc) then miffil=chemin(1:lchem)//'/mifheader.la' else miffil=chemin(1:lchem)//'/mifheader.po' endif jfm=89 open(jfm,file=miffil,FORM='FORMATTED',err=901) nlrd=0 1 read(jfm,'(a)',end=2) line nlrd=nlrd+1 klast=0 do 3 k=256,1,-1 if(line(k:k).ne.' ') then klast=k go to 4 endif 3 continue 4 continue if(nlrd.eq.1) then c c comment out ' # End of page' endif initia=initia+1 write(iups,'(a)') '#' write(iups,'(a)') '# New Page ----------------------------' write(iups,'(a)') '#' write(iups,'(a)') '' write(iups,'(a,i3,a)') '' if(landsc) then write(iups,'(a)') '' write(iups,'(a)') '' else write(iups,'(a)') '' write(iups,'(a)') '' endif write(iups,'(a)') '' write(iups,'(a)') '#' write(iups,'(a)') '# Objects on page:' write(iups,'(a)') '#' write(iups,'(a)') '' write(iups,'(a)') ' ' write(iups,'(a,2f8.3,a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' c------------(assegnazione fonts)------ if(jfonl.eq.1) then write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' > # end of Font' jfonl=0 endif if(jfont.eq.0) then write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' CLP write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' > # end of Font' jfont=1 endif write(iups,'(a)') ' ' write(iups,'(a)') '> # end of TextLine' ipag=ipag+1 c c RETURN ** ENTRY mTRLAB(XT,YT,CARAC,NCARR,HAUT) * ECRITURE TEXT C kcoul=0 write (IUPS,'(a)')cline(kcoul+1) C xmif=coxmif(bornex((xdep+xt)*xrap)) ymif=coymif(borney((ydep+yt)*yrap)) write(iups,'(a)') '#' write(iups,'(a)') '' write(iups,'(a,2f8.3,a)') '' write(iups,'(a)') '' write(iups,'(a)') '' c------------(assegnazione fonts)------ CLP if(jfonl.eq.0) then write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' > # end of Font' jfonl=1 endif CLP if(jfont.eq.0) then write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' CLP write(iups,'(a)') ' ' write(iups,'(a)') ' ' CLP write(iups,'(a)') ' ' write(iups,'(a)') ' ' CLP write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' > # end of Font' jfont=1 endif write(iups,'(a,a,a)') ' ' write(iups,'(a)') '> # end of TextLine' c RETURN ** ENTRY mCHCOU(JCOLO) * CHANGEMENT DE COULEUR kcoul=jcolo RETURN ** ENTRY mINSEG(JSEG,IRESS) * CHANGEMENT SEGMENT IGNORE RETURN ** ENTRY mPOLRL(NTRSTU,XTR,YTR) * POLYLINE write(iups,'(a)') '#' write(iups,'(a)') '' write(iups,'(a)') lfi write(iups,'(a)') ' ' write(iups,'(a)') ' ' write(iups,'(a)') ' ' jpol=1 endif write (IUPS,'(a)')cline(kcoul+1) write(iups,'(a,i3)') ' ' do 10 i=1,ntrstu xmif=coxmif(bornex((xdep+xtr(i))*xrap)) ymif=coymif(borney((ydep+ytr(i))*yrap)) write(iups,'(a,2f8.3,a)') ' ' 10 continue write(iups,'(a)') '> # end of PolyLine' c RETURN ** ENTRY mTRFAC(NTRSTU,XTR,YTR,ZN,ICOLE,IEFF) * FACETTE C+PPf ZZN=ABS(ZN/XPI*2) IF (ZZN.GT.0.99999)ZZN=0.99999 IZN=INT(6*ZZN)+1 IZN=ITCODP(IZN) C+PPf kcoul=icole write(iups,'(a)') '#' write(iups,'(a)') '' C+PPf C PPf if(jpol.eq.0) then C PPf write(iups,'(a)') '' C PPf write(iups,'(a)') lfi C PPf write(iups,'(a)') '' C PPf endif C PPf write (IUPS,'(a)')cisov(kcoul+1) write (IUPS,'(a)')cline(kcoul+1) C+PPf write(iups,'(a6,i1,a1)') '' C+PPf do 20 i=1,ntrstu xmif=coxmif(bornex((xdep+xtr(i))*xrap)) ymif=coymif(borney((ydep+ytr(i))*yrap)) write(iups,'(a,2f8.3,a)') '' 20 continue write(iups,'(a)') '>' c IEFF=1 RETURN ** ENTRY mTRAIS(NP,XTR,YTR,ICOLE) * FACETTE kcoul=icole write(iups,'(a)') '#' write(iups,'(a)') '' write(iups,'(a)') lfi write(iups,'(a)') '' endif write (IUPS,'(a)')cisov(kcoul+1) do 30 i=1,np xmif=coxmif(bornex((xdep+xtr(i))*xrap)) ymif=coymif(borney((ydep+ytr(i))*yrap)) write(iups,'(a,2f8.3,a)') '' 30 continue write(iups,'(a)') '>' c RETURN ** ENTRY mTRDIG(XRO,XCOL,ICLE) * DIGITALISATION DE POINT IGNORE ICLE=0 RETURN ** ENTRY mTRAFF(ICLE) * FIN DE DESSIN ICLE=0 jpol=0 write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') ' >' write(iups,'(a)') '> # End of page' write(iups,'(a)') '# End of MIFFile' RETURN ** ENTRY mMENU(LEGEND,NCASE,LLONG) * MENU IGNORE RETURN ** ENTRY mTRANI(ITYPI,NBIMAH) * ANIMATION IGNOREE RETURN ** ENTRY mTRIMA(IMAGI) * IMAGE IGNOREE RETURN ** ENTRY mFVALI(IFENI,IRESU,NH) * CHANGEMENT DE VIEW PORT IF (IFENI.EQ.1) THEN XRAP=CLX*10/0.95 YRAP=clx*2/0.95 XDEP=(xiocad-10*clx)/xrap YDEP=0. ENDIF NH=31 RETURN ** ENTRY mZOOM(IZOOM,XMI,XMA,YMI,YMA) * IGNOREE RETURN ** ENTRY mINIt(IRESU,ISORT,IQUALI,INUMNO,INUMEL,XMI,XMA,YMI,YMA) * RETOUR AU DESSIN INITIAL IGNORE RETURN ** ENTRY mCHANG(IRESU,ISORT,ICHANG,JSEG) * AFFICHAGE DESAFFICHAGE NUM NOEUDS ELEMENTS QUAL IGNORE RETURN ** ENTRY mTRBOX(HAUTX,HAUTY) * INUTILISE RETURN ** ENTRY mTREFF * INUTILISE RETURN ** ENTRY mVAL(IRESU,ISORT,NISO) * INUTILISE RETURN ** ENTRY mMAJSE(IMAJ,IRESU,IQUALI,INUMNO,INUMEL) * INUTILISE RETURN ** ** ENTRY mIMPR * INUTILISE RETURN ** ENTRY mTRTIN * INUTILISE RETURN ** ENTRY mFLGI * INUTILISE RETURN ** ENTRY mTRMES(CARAC) * INUTILISE RETURN ** ENTRY mTRGET(PROMPT,REPLY) * INUTILISE RETURN ENTRY mTRMFI * INUTILISE RETURN END