13
UNIT ALGORITHM A THREE-DIMENSIONAL PERSPECTIVE PLOTTING ROIJTINE (APPLICATION TO MOLECULES) JEAN A. Muss0 U.E.R. Sciences et Techniques, Universitk de Toulon et du Var, P 83130 La Garde, France (Received 11 June 1980) Abstract-A very small and very fast routine for drawing molecules (analyzed as a thrcedimensionaI model) is described The routine makes use of either a line-printer or a plotter. MTRODUCTION as well as the quantity: In connection with the use of a general computer pro- gram which converts molecular bond lengths, bond angles and dihedral angles to atomic coordinates (ATCOOR program for example; Nordlander, 1973) or calculates the geometry of a molecule by minimizing the energy (MIND0 3 program; DEWAR, 1975 or GSPCILO program; Goursot, 1975) I have written the smallesr and the fastest rotike that creates a perspective plot of a molecule (analyzed as a three-dimensional model) either on a line-printer or a plotter. DMAX = max (XMAX - XMIN, YMAX - YMIN, ZMAX - ZMIN) so:Xl = (X - (XMAX + XMIN)/2)IDMAX YI = (Y - ( YMAX + YMIN)/Z)/DMAX Zl = (Z - (ZMAX + ZMIN)/2)/DMAX. The modified coordinates X2, Y2, 22 are computed after a rotation around the z-axis of an angle ROT PRINCIPLES The program makes use of five main routines (one step per routine). (i) PERSP performs all geometric calculations. Given the X, Y, Z coordinates of atoms, expressed in terms of a set of rectangular coordinates x, y, z (see Fig. 1). All coordinates are scaled and shifted so that the minimum and the maximum values are equal to -0.5 and +0.5 respectively. (All points are contained in a cube, the length of the side is equal to 1 .Oand the center is situated at the origin of the coordinate system.) These new coor- dinates are called Xl, Yl, Zl. The maximum values XMAX, YMAX, ZMAX and the minimum values XMIN, YMIN, ZMIN of the coordinates are computed X2 = Y 1. sin(ROT) + X1 n cos(ROT) Y2 = Y 1’ cos(ROT) - XI * sin(ROT) z2= Zl. The final coordinate X3. Y3, 23 are calculated after an inclination of the z-axis (rotation around the x-axis) of an angle INC towards the observer X3=X2 Y3 = Y2 * cos(INC) - 22 * sin(INC) Z3 = Y2. sin(INC) + 22. cos(INC). observers

Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

Embed Size (px)

Citation preview

Page 1: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

UNIT ALGORITHM

A THREE-DIMENSIONAL PERSPECTIVE PLOTTING ROIJTINE (APPLICATION TO MOLECULES)

JEAN A. Muss0 U.E.R. Sciences et Techniques, Universitk de Toulon et du Var, P 83130 La Garde, France

(Received 11 June 1980)

Abstract-A very small and very fast routine for drawing molecules (analyzed as a thrcedimensionaI model) is described The routine makes use of either a line-printer or a plotter.

MTRODUCTION as well as the quantity: In connection with the use of a general computer pro- gram which converts molecular bond lengths, bond angles and dihedral angles to atomic coordinates (ATCOOR program for example; Nordlander, 1973) or calculates the geometry of a molecule by minimizing the energy (MIND0 3 program; DEWAR, 1975 or GSPCILO program; Goursot, 1975) I have written the smallesr and the fastest rotike that creates a perspective plot of a molecule (analyzed as a three-dimensional model) either on a line-printer or a plotter.

DMAX = max (XMAX - XMIN, YMAX - YMIN, ZMAX - ZMIN)

so:Xl = (X - (XMAX + XMIN)/2)IDMAX

YI = (Y - ( YMAX + YMIN)/Z)/DMAX

Zl = (Z - (ZMAX + ZMIN)/2)/DMAX.

The modified coordinates X2, Y2, 22 are computed after a rotation around the z-axis of an angle ROT

PRINCIPLES

The program makes use of five main routines (one step per routine).

(i) PERSP performs all geometric calculations. Given the X, Y, Z coordinates of atoms, expressed in terms of a set of rectangular coordinates x, y, z (see Fig. 1). All coordinates are scaled and shifted so that the minimum and the maximum values are equal to -0.5 and +0.5 respectively. (All points are contained in a cube, the length of the side is equal to 1 .O and the center is situated at the origin of the coordinate system.) These new coor- dinates are called Xl, Yl, Zl. The maximum values XMAX, YMAX, ZMAX and the minimum values XMIN, YMIN, ZMIN of the coordinates are computed

X2 = Y 1. sin(ROT) + X1 n cos(ROT)

Y2 = Y 1’ cos(ROT) - XI * sin(ROT)

z2= Zl.

The final coordinate X3. Y3, 23 are calculated after an inclination of the z-axis (rotation around the x-axis) of an angle INC towards the observer

X3=X2

Y3 = Y2 * cos(INC) - 22 * sin(INC)

Z3 = Y2. sin(INC) + 22. cos(INC).

observers

Page 2: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

150 J. A. Muss0

Then, perspective calculations are done. The obser- ver’s eye is situated at point F with coordinates Fx, FY, FZ referred to the same rectangular coordinate system (best suggested values are FX= -0.25. FY= -3.00. &Z = +OT?o,; the line of sight is normal to the plane of projection PP. Let a distance D be given (D is equal to the half of the length of the main diagonal of the cube D = d3/2). The perspective image P’ of P in PP pro- jection with respect to F is computed (the coordinates of P’ are XX and T’Y)

Xx=(X3-FX)-(D-FY)i(Y3-FY)

(ii) ATOM suits the direction of plotting according to the size of the drawing and the size of the sheet of paper in order to compute the best scale. The routine shifts the plot in the middle of the sheet of paper; the line-printer

version of the routine prints each center of the atoms with an asterisk.

(iii) The line-printer version of the LIARS routine prints the chemical bonds with one of the three following symbols: “I” for vertical lines; “-” for horizontal lines; “+” for oblique lines. The plotter version of the above routine plots the chemical bonds with a straight line. A chemical bond is described by the numbers of bonded atoms. Simple linear interpolations between positions of atoms (in the x- and y-directions) as well as the maxi- mum number of points are both used.

(iv) NUMSYM prints (plots) the number and/or the chemical symbols of atoms. Ten (in the line-printer ver- sion) or sixteen (in the plotter version) possibilities (with two levels of priority) for printing (plotting) are analyzed according to the number of characters to be printed (plotted) and the free space near each atom.

(v) The line-printer version of the IMPR routine transfers (line after line) the drawing from the core memory to the line-printer.

SURAflllTIME DESSIY LINE-PRINTER VERSION. ______-._--_1 -_-_____

CcLLINC SEQUENCE: CALL DESSIN

IRP:LT DATA: YTA LABELED COMMON STATEMENTS /~:oME/x~Y~~=CO~RDINATFS OF ATOYS* ISYMBL=CMEHICAL SYMBOLS OF ATOMS STORED WITH THE PAI SPECIFICATIONS NATOM=NuMBEA OF ATOMS /LIESON/IATltIAT2nNUMeERS OF ATOMS WHICH ARE BONDED- NLIAISeNUHBER OF CdEMICAL BONDS /uN?TE/L~CTU.IMPRI=LOG~C~L INPUT/OUTPUT UNIT NuHRERS. /TQPV/XX+YY t JXI JY +JL=TEMPORhRY WORKING STORAGE- NPOIN=MUMBER OF PGIATS OF THE WAWIhlGr LItNEtWORKING STORAGE FOR PRINTING /DECIN/ROT=ANCLE OF ROTATION. iNC=ANGl.E OF INCLINATXOKr CFSr,GESY=SIZE OF THE DQAwING~ PAPXIPAPY=SIZE OF THE SHEET OF PAPER* OPTLIOPTN.O?TS=LOGICAL VALUES GFTL=T FOR PRINTING BONDS. OPTN=T FOR PRINTING NUMBERS OF ATOM- OPTS=T FOR PRINTING CUEMICAL SYMBOLS

QEQuTRED ROUTINES: PERSP, ATOM, LIAIS.7 NUMSYH, fuPR* NINMAX. PERFIT. RANGE A.ND THE STAYDAAD FUNCTIONS STN, COS.

RFAL INC LGrJfCAL CPTL.GPTNTOPTS CCMMON/ATOME/X (35) rY (35) +2 (35) ,ISYHBL 170) rNhTOH/L IESOH/IAT1(75) 9

lIAT2(7S).NLIAIS/U~ITE/LECTUIIMPRI/TRdV/%X(3S)tYY(3S)*JX~750~, ~JY~?~G~~JL~~~~~~~~POXN,LI~~E~I~~~/DECIN/RO~~INC~D~SX~DESY~?APX~ ~FAPY~D?TL,OPTN,~PTS

i;lTA UNXT/2.~%0/~t~COL/IO/.NLIN/OB/~RAD~~l.745329F-O2~ 6’eD CONVERTS DECREES TO RADIANS. UkIT=ONE INCn (1 !NCH=2.54 CHJ. NcOL,NLIN=N~!GER OF COLUMS/LINES PER INCH. RISCOL=UNIT/~~COL DiSLIN=UNITiNLIN NFOIN=NATO~M CALL PERSP~X,Y,Z+XX+YY,NATG~.ROT*RAD~~N,C*RAD~ CnLL A7CY~XXrYYrNATOH,JX,JY.JLrOE5XtDESY~CISCOL.DISLI)ur.‘~:~X~PA~Y~ IF (CPTC) CALL LiAIS(JX.JY.J!_.NPDIN .IATl,IATP.NLIAIS) IF(CPTN) CALL NUYSYM~JX~JY~JL~NPOIN~NATOM~ISYHt3L~l) IFCCPTS) CALL NUMSYY(JX.~Y~JLINPOIN+NA~OU,ISYM~L,~) CALL IHPRIIYPRI~~A?X~DISCOL.PAPY~DISLIN.J~~JY~JL.~POIN~LIQNE~ RETIJPN FkD

51!;7JTjuTINE DESSIN PLPTTER VEZSICW. ____I_- __-__--..e

CALaL TNG SEQUEKCE : CALL OESSIN

Fig. 2.

Page 3: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

Unit algorithm IS1

C C C C c

E C

: c

E c C C C C C

C C

C C

l/S IKPUT DATA: VIA LARELFO COMMON STATEMENTS /ATOHE/X~Y~Z=COORDINATES OF ATOHSr ISYHBL=CHEMICAL SYMBOLS OF PTOHS STORED WITH TME 2Al SPECIFICATION,, NATOM=NUHBER OF ATOHS /LIESON/IATl,fAf2=NUM8ERS OF ATOMS WHICH ARE BONDED* NLIAIS=NUHF!ER OF CHEMICAL BONDS /TPAV/XX~YY,JX~JY~JL=TEMPORhRY WORKING STORAGEr NPOIN=NUHRER OF POINTS OF THE OPAUING /OECIN/ROT=ANGLE OF ROTATION, INC=ANGLE OF INCLINATIONI DESX,DESY=SIi’E OF THE DRAWING9 PAPXIPAPY=SIZE OF THE SHEET OF PAPER* OPTL,~PTN,~PTS=L~GICAL VALUES OPTLIT FOR PRINTING RONOS. OPTN=T FOR PRINTING NUMGERS OF ATOM* OPTS=T FOR PRINTING CHEMICAL SYMBOLS (ALWAYS: OPT&T)

REQUIRED ROUTINES: PERSP. ATOM. LIAIS. NUMSYNI OROITv HINMAX, PERHTI RANGE AN0 THE STANOARD FUNCTIONS SIN. COS. PLOTTER ROUTINES: PCARA PLOTS AN ALPHANUMERIC CHARACTER AND TRAA MOVES THE PEN UP/DOWN.

REAL INC LOGICAL OPTL~OPTNIOPTS CG~~ON/ATO~E/X~35~~Y~3S~~Z~3S~~ISYMRL~70~~NATO~~LIESON/IATl~7Sl,

11AT2~75~rNLIAIS/UNITE/LECTIJrIMPRI/TRAV/XX~35~rYY!35lrJX~95O~. ZJY~950~,NPOIN/O~CIN/ROT.~NC.CESX~OESY~PAPX~PAPY,~=~L.OPTN~OPTS

DATA RAU/+O.~~~~~~E-~~/,UNIT/~.~~O/~NCOL/~.O#,NLIN/~O~ RIO CONVERTS OEGREES TO RADIANS. UNIT=ONE INCH (1 INCH=2.54 CM). NCOL,WLIN=NUMBER OF COLLINS/LINES PER INCH (MUST RE EQUAL TO 20) OISCOL=UNIT/NCOL nISLIN=UNIT/td_IN NPOIN-NATOM CALL PERSP~X~yvZ~XXiYY~NATOM~pOT*RAD.INC*F?AD~ CALL AT0M~XX~YY~NATOWtDESX~D~SY~PAPX~PAPY~OISCO~~DISLIN~J%~JY~ CALL LIAIS~IAT~~IAT~~NI_IAIS~XX~YY~JX~JY~~FOIN~NATOM~ IF(OPTN) CALL NUMSYN~JX.JY,NPOIN~NATOM~ISYMBL~l~~ISCOL~DISLIN~

lXX.YY) IFtOPTS) CALL NU~SYH~JX.JY~NPOIN~NATOM~ISYMELT~~~ISCOL.D~SLIN~

lLX*YY! RETURN FRO

SUBROUTINE PERSP(X~Y,ZIX~.~~INATO~IROTtfNC) PERFoRMs GEobxTRxc CAL~IILATIONS. ROTH FOR LINE-PRINTER AND PLOTTER VERSIONS. PEAL INC OIHENSION X(l~~YIl~.Z(1~.XX11~.YY~l) EQUIVALENCE (21122).(X2rXJ) DATA 0/*0.8660254/*FX~Fy~F2f-0.25~-3.00~+~.?0~ D=DISTANCE BETWEEN THE PLANE OF PROJECTION AND THE ORIGIN OF THE COORDINATES

Fig. 2 (Cod).

Page 4: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

152 J. A. Muso

Fx,FY.FZ=COORDINATES OF THE OBSERVER’S EYE CCWUTE LIMIT VALUES. CALL H~~~AX(NATOH~XIXH~N.XMAX~DX~SX) CALL ~INMAX(NATON~YIYMIN,YMAX~OY.SY) ;;:; b+~NMAXtNATOH~Z~ZMIN~2MAX.D2.S2)

IF&.GT.DMAX) OMAX=DY ;FlOZ.GT.DMAX) OHAX=DZ 5RCT=5:rs~t?OT) CRCT=COS (ROT) SINC=SIN(INC) CPNC=COS(INC) FC:, EACH ATOM: co 101 I=l.NATOH SHIFT AND SCALE. X1=(X(T)-O.SO*SXI/DMAX YI-fYIIi-O.SO’SYI/DHAX 21=~7~I~-0.50*SZ~/DHAX ROTATION. X2=Yl~SROT*Xl*CROT Y.?=yI*CRGT-Xl*SROT IkCLINATION. YZl=yZ’CINC-22*SINC 23=YZ’SINC*22*CINC PEb:;PECT:VE PROJECTIOru. FCHEL=(D-FY)/tY3-FY) XxtIl=[X3-FX)*ECHEL

101 YYtII=tZ3-FZ)*ECHEL PFTIJRN FNI,

SURROUTINE ATOHIXXIYY~NATOM~JX~JY~JL~DESX,DESY~DISTX~DISTY~PAPX~ IPAPYI

c -0PAii THE CENTER OF EACH ATOM. (LINE-PRINTER VERSION) DIMFNSION XX~llryy(~~~Jx~1)~JY~~l~JL~l) DATA IETOIL/'*'/

C WIFTS TliE ORAWING. IF(~PAPX.GT.PA?Y.AND.DESX.LT.DESY~.OR.

11PAPx.LT.PAPY.AND.DESX.GT.DESV)) CALL PERwT(DESX,DESY~I) CALL ~INHAX~NATOH.XXtXXMIN~XXMAX~DDX~DDESX) CALL MINHAX(NATOHrYY~YYMINIYYWdX1DDYIDDESY) ODESX=DESX-4.D’DISTX DOESY=DESY-2.0’0ISTY IF~fOOESX.GE.DDESY.AND.DDX.GE.DDY~.OR.

l~ODESX.LE.DDESY.AND.DDX~~E.DOr)) GO TO 202 CALL PERHTIXX~YY~NATOH) CAL; PERHTfDOX~DDY,L~ CALL PERblTlXXW1N~YYH1N.1)

C COMPUTE TEE BEST SCALE. 202 ECh=DOX/DDESX

Fii 2 (Coted).

Page 5: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

Unit algorithm 153

C

C

C

213

C

C

C 202

C

c

C

203

ECHY=DDY/DDESY IF(fCXY.6T.ECk-i) ECH=ECHY COMPUTE THE SHIFT IN EACH DIRECTION. NPOfNX=DDX/ECH/DISTX*l.50 PASX=DDX/(NPOINX-1) JDKLX=lPAPX/DISTX-DDX/PASX)*O.50*0.50 NPOINY=DDY/ECH/DISTY+l.50 PASY=DDY/(NPOINY-1) JOKLY=(PAPY/OISTY-DDY/PASY)*O.50+0.50 FOR EACH ATOM: DO 213 I=lvNATOM DRAW THE CENTER OF ATOMS. JXlI)=LXXII)-XXMIN)/PASXtl.SO+JDKLX JYfI)=(YY(T)-YYHXNl/PASY*li5O*JDKLY JC(Z)=IETDIL RETURN END

2/5

SUBROUTINE ATOH(XX.YYINATOM.DESX,DESY.PAPXIPAPY,DISTX~DISTY~JX~JY~ DRAYS TtiE CENTER OF EACH ATOM. (PLOTTER VERSIDN) DIMENSIGN XX(11*YY(l)rJX(11*JY(l) SHIFTS ThE DRAWING. - .._. .- - - IFt(PAPX.GT.RApv.a~D.DESX.LT.DESY~.OR.

l(PAPX.Lt.PAPY.AND.DESX.GT.DESYb1 CALL PERMT(DESX,‘ESYIL~ CALL NINHAX(NATOM~XX~XXNIN,XXt4AX~DDX,DDESX~ CALL ~IN~AX(NATDM*YYIYYMIN.YYMAXIDDYIDDY,DDESY) GDESX=DESX-G.O*DISTX DDESY=DESY-4.D*DISTY IF~~DDESX.GE.DDESY.AND.DDX.GE.DOY~.OR.

l(00ESX.LE.DDESY.AND.DDX.LE.DDY)I GO TO 202 CALL PERHT(XXrYY,NATOH) CALL PERHT(DDXIODY~~I CULL PEHMT(XXMINIYYMIN~~) COMPUTE THE BEST SCALE. ECH=DDX/DDESX ECHY=DDY/DDESY IF(ECHY.GT.ECti) ECH=EC%lY

. COMPUTE THE SHIFT IN EACH DIRECTION. DECLLX=~PAPX-~DDX/ECHt8.O*DISTX~~*O.5O+4.O”DISTX DECALY=~PAPY-~DDY/ECHt4.O~DISTY~~*O.SOt2.O*DTSTY FOR EACH ATOM: DO 203 I=lrNATOH PLOT THE CENTER OF ATONS. Xlf(I)=(XX(I)-XXNIN)/ECH+OECALX JX~I~=XX~II/DISTXtl.50 YY(I)=(YY(I)-YYWIN)/ECHtDECALY JY(I)tYY(I~/DISTY+I.50 RETURN END

Fig 2 (Conrd).

Page 6: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

J. A. MUSSCI

SURSOUTiNE LIAIStJX~JY~JL~NPOIN~IAll~IAT2rNLIAIS~ PPIhTS ChEHICAL BONDS. (LINE-PRINTER VERSION) LFGTCAL FAIT i~rumS:ON JXI1~~JY~l~~JL~l~~IATlfl~tIATZ~l~ DPTP IOBLIIVER~IHON/*+~,.!(((-,/ IORL,IVER*XHO~=C~ARACTERS USED FOR PRINTING. FCR EACH CHEMICAL BOND: DO 30R I=lsNLIAIS X1=14TlLIl JXIl=JXtIlI JYll=JYtIl) IZ=IAT2lI) JXIZ=JXtItI J'~I.?=JYIIPI Ct-tMGUTE THE Nltb'flER OF POLNTS TO BE USED. NPCINX’JKI l-JX12 IF(wo~NX.LT.O) NPOINXr-NPOINX NPOINY=JYI~-JYI2 IF~~~P~IkY.LT.0) NPOINYt-NPOINY LPDIN=NPOINX*l IFihP~INY.GT~NPOINX) LPOIN=NPOINY*l IF(LPCItd.LT.31 GO TO 30A COMPUTE THE 1.4CREHENT IN EACH DIR2CTION. PCIt.=LPOIN-1 ECtlX=tJXI2-JXIlIIRDlN EcH~=~JYI~-JYI~~/POIN nETFRHINE THE CHARACTER TO BE USED. ICARAC-IOBL IF (CPOIkX .iQ.O, ICARAC=IVER IF (h’P0IkY.EO.C) ICARAC=IHON OEPb THE BONO. LPOIN=Ll=OIH-1 DO 365 K=2rLPOIN l~r;XJ1*ECnX~tK-ll'O.so I~=JYII+ECHY+~K-~~+O.~O

335 CULL HANGEtIlrI2~ICARAC.JX~JY~JL~NPOIN~l~FAIT~ 3313 CONTINUE

RFTURN !aG

SUEPOUTINE LIAIS~IAT1~IPT2~NLIAIS~XX.YYrJrtJYINPOIN~ c 1 PLOTS CHEMICAL BONDS. (PLOTTER vERSfON~

LCGICIL FAIT DICFNSION IAT~~~~~IAT~I~I.XX~~~~YY~~~~JX(~~~JV~

c FGf EACH CHEMICAL BOND: DO .3oF) l=l~tdLIAlS Il=IATl(Il It=IAT2tIl

C PLOT A STR4IGH’C LINE FROM POINT 11 TO POINT 12. GILL DROIT~XX~I1~*YY~Il~rXX~I2~~Y~l~2~1

Fig. 2 (Contd).

Page 7: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

Unit algorithm

JXIL=JX(II) JYIl=JY(Tl) JXIE=JX t 12)

3/5

C

C

C

365 308

C C

JYI2rJYtI2) COMPUTE THE NUMBER OF POINTS TO BE USED. NPOINX=JXII-JXIE IF(NPOINX.LT.01 NROINX=-NPOINX NPOINY=JYIl-JYI2 IF(NPOIt<Y.LT.Ol NPOINYE-NPOINY LPOIN=NPOINX+l IF~NPOINY.GT.NPOINX~ LPOIN=NPOINY+l IF(LPOIN.LT.3) GO TO 308 POIK=LPOIN-1 COMPUTE THE INCREMENT IN EACH DIRECTION. ECHX=(JXI?-JXIl)/POIN ECHY=tJY12-JY11~/'0'.N ORAU THE BOND. LPOIN=LPOIN-1 00 305 K-2eLPOIN Il=JXIl*ECHX+tK-1)*0.50 12=JYIl*ECHY+(K-ll*O.SO CALL RANGE(I1~.I2~JX~JY,NPOIN~l~FAIT) CONTINUE RETURN END

SUBROUTINE NUHSYM~JX~JY,JL~NPOIN~NATOM~ISYMBL~IOPT~ PRINTS CHEMICAL SYMBOLS AND/OR NUMBERS OF ATOMS. (LINE-PRINTER VFRSION) LOGICAL FAIT DIMENSION JXfl~.JY~l~rJL~l~rISY~RL~l~~IAX~lO~~IAY~lO~~LX~2~~LY~2~~

lIAX/-1*0*0*-l *-lr+2r*l~*lr*2r*2/*IAY/a**l*-l*~l*-l*o*-l*~l*-l**l/. 2ItERL/'O'v' '/r1P/1~1~1.2.2rlrlrIr2rZ/tNPRIJR/2/

C

s C

:

C 431

C

ICHIFP=ALPI~ANUHERIC VALUES OF NUMBERS. IPX,IAY=COORDINATES OF FREE SPACES NEAR AN ATOM. IP=LEVELS OF PRIORITY OF FREE SPACES. NPOS=NUHBER OF POSSXBILITIES FOR PRINTING NPRIOR=NWBER OF LEVELS OF PRIORITY FOR ANALYZING FREE SPACES. FOR EACli ATOM: DO 420 I+l~NATOM GO TO (431r432)rIOPT CONVERT NUMBER TO THE 2Al SPECIFICATION. LL~=ICH~FR~I-I/IO~~O*~~ LLZ=ICHIFR~I/lO*1l GO TO 419 TRANSFER THE CHEMICAL SYMBOL.

Fii. 2 (Contd).

Page 8: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

156 J. A. Musso

432 LLl=fSYHRL(E*I) LLZ=IsYHBL (2*1-l)

C COMPUTE THE NUMBER OF CHIRACTERS TO BE PRINTED. 419 NC*PbC=2

IF~LL~.EO.Z~EBL(IOPTI~ NCARAC=I C CHECK TtIE FREE SPACES NEAR EACH ATOM. c (10 POSSIBILITIESI 2 LEVELS OF PRIORITY~

00 421 L’lrNPRIOR DO 421 J=ltNPOs IF(:P(J).NE.L) GO TO 42) ~;;=;;;Il+IAY (J)

$;I;+,AX,Jb t -

IF(hCARAC.EP.l.ANO.J.GT.Sb LXlrLX2 CALL RANGE~LXrLY~Ll.~JX~JY~JL,NPOIN~NCARAC.FAIl~ IFfFAIT) GO TO 420

421 CONTINUE 420 CONTINUE

RETURN END

C

c

SURROUTINE NUWSYW~JX~JY~NPOIN~NAlOM~ISYMGL~IOPT~~ISTX~DISTY~XX~YY~ PLOTS CWEHXCAL SYMBOLS AND/OR NUMBERS OF ATOMS. fPLOTTER VERSION) LCGrCAL FAIT IKTEGFR HAUAGS @IHENSION JX~1~~JY~l~rISY~BL~l~rI*X(16~,IPY~l6~~LX~6~~~~~l6~~

1LY~CI~XXll~rYY~l~mIZEBL~2~~IC~IFR~lO~~LL~2~ EQUIVALENCE (LL(2lrLL2)r(LL(l)rLLl) DATA ICHIFR/‘O’v ‘1’,‘2’.~3’.~4~,~5~,~6~~*7*,~6*~*9’/~IZERL~~O*~

I# ~/,1A~~-2.-2~0~-1.0.-].-~1-2,-2.~3~~3~*2,~1.~2.*1,*3~*3/~NPR10R~2~, zIAY/or-1 ~+1~*1,-2~-2~+1,-2~0,-1~+1~+1~-2~-2~-2~~1/~NP0S/16~~ 3IP/1~lrlr?tl~lrS*2*l~l~l*l~l*l~2*2/

ICHIFR=ALPHANUHFRIC VA;:JES OF NUWRERS. IAX.IAY=COOROINATEs OF FREE SPACES NEAR AN ATOM. IP=LEVELS OF PRIORITY OF FREE SPACES. NPOS~NUWGER OF POSSIBILITIES FOR PRINTING tvPR~OR=NUHRER OF LEVELS OF PRIORITY FOR ANALYSING FREE SPACES. DATA WAUR8S/O/~NcPl~/.C0SIrSINd/l.O~O.O/ nAubAS=FLAG CONTROLLING ThE PEN (RAISE PEN BEFORE MOVEMENT) COSP. SINA=COSIA) AND SIN(A)* AsANGLE (RELATIVE TO THE X-AXIS1 AT uHICH A CHARACTER IS TO GE DRAWN (A-0 DEGREE;) NCP=NUHBLR OF CHARACTERS TO BE DRAWN. DIHxsl.8O*DISTX DIMY=l.BO*DISTY DIYX, DlMY=WtDTH AND IIEIOHT OF TM CHARACTER TO RE DRAWN. FOR EACH ATOH: 00 420 I=l*NATOH GO TO (431~432) *IOPT CONVERT NUbleER TO THE 2~1 SPECIFICAtldN.

Fig. 2 (Contd).

Page 9: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

Unit algorithm

431 LL~=IC~IFR(I-1/10*10*11 4/5

157

LL~=XCHIFR~I/IO*~~ GO TO 419

C TRAMSFER THE CHEMICAL SYMBOL. 432 LLl=ISyMGL~2+1)

LL2s1SYHBL~2*1-1) C COMPUTE THE NUMBER OF CHARACTERS TO BE PRINTED.

419 NCARAC=2 IF(IZEGL(IOPT~.EQ.LL2~ NCbR&C=l

C CHECK THE FREE SPACES NEAR EACH ATOM, (16 POSSIRIL1lIES~ 2 LEVELS OF PRIORITY1 (FOUR PLACES FOR ONE CHARACTERI.

DO 421 L=lwNPRIOR DO 421 J=leNPOS IF(IP~J1.NE.L) GO To 421 DO 442 N=l*2 DO 442 K=l*2 LLKr2*tN-l) +K LX(LLKb=JXLI)*IAXLJ1*K-1

442 LY(LLK)=JYIIl*IAYLJ).N-1 DO 441 Krlm4 LX(K+4)=LX(K)-2

441 LY (K*41=LY (K) IF(NCARAC.EQ.2.OR.J.LE,8) GO TO 404 DO 440 K=lr4

440 LX(Kb=lXIK+41 404 CALL RANGE(LXILY~JXIJY~NPOINT~*NCARAC~FAIT)

IF(FAlT1 GO TO 439 421 CONTINUE

GO TO 423 439 DO 436 K=l,NCARLC

X=XX(l)+DISTX*(LXf4~K-3)-JX(I)I Y=Yv~~~*OISTY*~LY~~*K-~~-JY~I~~ XvY=STARTING COORDINATES OF THE CHARACTER TO GE DRAWN. PCAAA DRAWS AN ALPHANUMFRIC CHARACTER.

438 CALL PCAGA~X.YvHAUABS,LL~Kl,NCP+D1MX,DIMY,COSA~SINA~ 420 CONTINUE

RETURN END

SURROUTINE IMPR~IbPRI~PAPX~OISTX~PAPY~DISTY,JX~JY~JL~NPOIN~LIGN~~ TRANSFERS THE DRAuIMG FROM CORE-MEMORY TO THE LINE-PRINTER? LINE-PRINTER VERSION. DIMENSION JX(llrJY(l1rJLIll.LIGNE~1~~FNT~31~FMTl~2~ DATA I&AN/I ‘/rFHTl/*(lH1*,*1 ‘/rFWl/~(lX~~~‘132A’.‘l~ ‘/ NPOINX~PAPX/DISTX+l.SO NPOINY=@APY/DISTY+l.SO URITE~IMPRItFMTl, 00 SO3 K=lqNPOINY NLWPOINY-K+l

Fii. 2 (Contd).

Page 10: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

I. A. Muss0

502

504 503

c C C

,- c

t

C

2oc1

C C C

5011

00 502 J=l+NPOINX L:GNE(J)=IBLAN DO 504 J=l,NPOIN IF(JY[J).EQ.NL) LItNE(JXfJ))=JL(J) w~ITF(IMpRI*FMT) (LJGNE~J)tJ=l~NPOINX~ RETURN END

SURROUTINE HINHAX~NIQ~Q~INIQMAXI~~~SO) FINOS MAXIMUM AND HINIHUH VALUES OF Q-VECTOR. C(3wuTES CORRELATED VALUES. POTH FOR LINE-PRINTER AND PLOTTER VERSIONS. DIMENSION Q(1) OHAXrO~l) O*IF;=OMAX DC If101 1=21N QI=Q(I) IF fQI.GT.QhAX) OHAX=QI IFI~I.LT.QMIN) OHIN-QI CQ=flHAX-QWXN S3=ChAX+QHIN PETURN END

S!IRROUTINE PERMT IPvQmN) pt-RvLJTS EACH ELEMENT OF P-VECTOR WITH EACH ELEMENT 0’ O-VECTOR. 3cTh FOR LINE-PRINTER AND PLOTTER VERSIONS. D:MENSION Ptl)~Q(lb DO 1001 I=lvN SAUVE=P(I) PfIl=Q~Il 0 r I ) =SAUVE RETURN E?IC

SUPROUTINE RANGE(LXILY+LL~JXIJY*~LWNP+NC~FAIT~ STO~~FS OUANTIFXED COORDINATES OF EACH POINT OF THE ORA\J’,G. f LOGICAL DECISION IS MADE FOR STORING OR NOT STORING. LINE-PRINTER VERSION. LOGICAL FAIT nIMENSION LX~ll+LY(I)rLL(II~JXfl~~JY~I~~JLfI) FAIT=.FALSE. 00 3311 K=lvNC Or! 3011 J=ltNP IF (LX iK1 .EQ.JX(J) l AND.LY (Kl .EQ.JYIJl) GO TO 3010 CCrJT INUE FC 3.012 K=lrNC NP=KP* 1 IF(NP.GT.750) RETURN

Fig. 2 (Conrd).

Page 11: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

Unit algorithm

5/5

159

JXtRPl=LX(KI JY?NPI=LY(Kl

3012 JLtNPl=LL(Kl FAIT=.TRUE.

3010 RETURN END

SURROUTINE RANGE~LXILY*JX~JYINP~NC~FAIT~ C STORES GUANTIFIED COORDINATES OF EACH POINT OF THE DRAWING. c A LOGICAL DECISION IS MADE FOR STORING OR NOT STORING. c PLOTTER VERSION

LOGICI\L FAIT I)IMENSION LXflI*LYtl)rJX(l)rJY(1) FAIT=.FALSE. DO 3011 K=lrNC DO 3011 J=lrNP IF(LXtKl.EO.JX(JI.AND.LYtKl.EG.JYo) GO TO 3010

3011 CONTINUE 00 3012 K=lvNC NPtKPe 1 IF(NP.GT.9501 RETURN JX(NPl=LXIK)

3012 JY (NPI’LY tK1 FAIT=.IRUE.

3010 RETURN END

SURRGUIINE DROITIXA.YA~WB.YEll C DRPkS A STRAIGHT LINE PROM POINT AtXArYAl TO POINT G(XB-YB). C PLOTTER VERSION.

IhiTEGER HAUARSIEASABS DATb HAUABSrBASABS/O~l/

: HAUAGS’RPISE PEN BEFORE MOVEMENT GASABS=LOWER PEN BEFORE MOVEMENT

C (COCRDINATES FROM THE ORIGIN OF THE COORDINATES SYSTEC) C TRAP ROVES THE PEN FROH ITS PRESENT POSITION TO A NEW POSITION.

CALL TRAA~XAIYA~HAUABS~ CALL TRAA(XAeYAwBASABS) CALL TRAAtXBwYB*BASABSl CR:~:R~RAAtX9~YG~HAUABSl

END

Pig. 2 (Conrd).

Page 12: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

J. A. Musso

IF”, + . + . + . . l . .

l .

+ l . l +

l *

(b)

Fig. 3.

Page 13: Unit alogarithm: A three-dimensional perspective plotting routine (application to molecules)

ALGourTllMs

The above-mentioned routines are called by the driv- ing routines DESSIN. All input data are transfered via five labeled COMMON statements (the meaning of which is given as comment statements). The listings of the two versions of the routine are given in Fig. 2.

RlzsuLTs Such plots are shown below (Figs. 3a and 36). They

draw the molecule: 1,3-dichloro, 5-bromo, 7-methyl adamantane (ring hydrogen atoms omitted). The follow- ing input data were used: (atomic coordinates are com- puted by the ATCOOR program with standard values for bond lengths, bond angles and dihedral angles); angle of rotation: +85.00; angle of inclination: -10.00; size of the sheet of paper 33.00x26.00 cm; size of the drawing

Unit algorithm 161

15.00 X 20.OOcm; specification of the line-printer: 10 columnslin., 8 lines/in.

The execution of this program with a CII IRIS 50 computer required only the standard functions SIN and COS, 30 kilobytes of core memory (short integers) (+lO kylobytes for the plotter software) and 11.2 set of CPU time (+12 set for movine the BENSON olotter) (the same ‘program required 3.2 set with an ‘IBM %@65 computer).

REFEllENCES

Dewar, M. J. S. et al. (1975), QCPE 11, 279. Goursot, A. and Sygusch, J. (1975), QCPE 11, 272. Musso, J. A., (1978) QCPE 11,349. Nordlander, J. E. (1973), J. Chem. Educ. 50(11), 743.

CAC Vd. 4 No. 3!-4-E