home *** CD-ROM | disk | FTP | other *** search
- The following is a list of the variables which are read and written in data
- files by the subroutine FINOUT. The formats are given below in the listing
- for FINOUT.
-
- The options listed after integer variables give the options for values of
- 0/1/2...etc., unless otherwise indicated by a range in parentheses. JDUM is a
- dummy variable which occurs several places.
-
- JCELL Bravais cell number: P/A/B/C/F/I/R
- KFOUT Destination of calulation output: printer/file/none
- ICNT Centric/non-centric
- IDISPL Display crystal edges or atoms: both/edges/atoms
- INORTH Initial setting of orthographic rotation: off/on
- ISL Slice: off/on
- IPER Perspective: off/on
- ICTR Automatic centering: off/on
- IWSON Finite widths for screen: off/on
- IWDON Finite widths for dot-matrix lines: off/on
- ISCK Key screen display to: dot-matrix/pen plotter
- ISEXT Systematic absences: absent/present
- IBCK CGA background color
- IPLTE CGA palette number
- ISYST Crystal system number (1-8): tric/mono/ortho/trig/tetr/hex/cub/cart
- INDD Individual face distances: off/on
- INROT Initial rotations: off/on
- IFREEZ Save/recover current orientation: off/on
- IORF Orthographic viewing: off/on (used only if IFREEZE non-zero)
- IFOPT Boundary option (1-4): unit-cell/chosen faces/molecule/polymer
- IAXES Crystal axes: off/on
- IRH Rhombohedral axes: off/on
- ISTSC Scale mode: universal/each view/fixed
- IBACK Back edges: off/dashed/solid
- IFLAG1,IFLAG2,IFLAG3,IFLAG4 Temporary variables
- ICOLSB Color for crystal edges, screen, back
- ICOLSF Color for crystal edges, screen, front
- ICOLPB Color for crystal edges, pen plot, back
- ICOLPF Color for crystal edges, pen plot, front
- ICOLXS Color for crystal axes, screen
- ICOLXP Color for crystal axes, pen plot
- ICOLDB Color for crystal edges, dot-matrix, back
- ICOLDF Color for crystal edges, dot-matrix, front
- IFCR Symmetry for faces: full/center/none
- NU Total number of deleted atoms
- ICART Cartesian symmetry matrices off/on
- IPRBR Show Bravais/primitive cell
- NSSA Number of individual symmetry operations
- ICOLXD Color for crystal axes, dot-matrix
- OFTIT (CHARACTER*50) Name of calculation output file
- (JI(J),J=1,NU) Index numbers of deleted atoms
- NSS Number of lines of symmetry operations
- NCON Number of conditions for systematic absence
- NFORM Number of forms
- NA Number of atom input types
- NPOL Number of polyhedron input types
- NBOCO Number of bond input types
- IUV(3) Translation deselect flags
- ((ITLIM(I,J),J=1,2),I=1,3) Translation limits for boundary option 5
- (KPR(J),J=1,6) Calculation print-out deselect flags
-
- DP Perspective distance
- BLINC Blank border in pen plot (A)
- FRBO Fractional width of highlight, bonds
- FRAT Fractional width of highlight, atoms
- SCDFIX Fixed scale, A/inch, dot-matrix
- SCPFIX Fixed scale, A/inch, pen plot
- AXSC Scale factor for crystal axes
- SDSPAC D-spacing of slice
- FRD Dash ratio
- DASHLEN Lenght of dashes, inches
- XXFAC1,XXFAC2 dummies
- XLWIDC Line width, crystal edges and axes
- XLWIDA Line width, atoms
- XLWIDB Line width, bonds
- XLWIDP Line width, polyhedra
- RPHI(3) Initial rotations on x,y,z
- CP(6) Unit-cell parameter (axis lengths and angles)
- RAC(3,3) Matrix used for removing rotations
- CXOFF Offset on y axis
- CYOFF Offset on z axis
- ROR(3,3) Matrix used to recover initial rotations
- (SAR(I,J),J=1,76) Symmetry operation data
- (INDS(J),J=1,3) Slice indices
- (IPERV(J),J=1,3) Slice orientation vector
- DISV1 Slice height
- DISV2 Slice width
- DISTF Slice offset
- SLFAC Slice thickness
- (KCLAS(I),I=1,NCON) Systematic absence index class
- (ICOCON(I,J),J=1,4),I=1,NCON) Systematic absence conditions
- CPTGPI (CHARACTER*5) Point group symbol, International
- CPTGPS (CHARACTER*5) Point group symbol, Schoenflies
- ICEL (CHARACTER*1) Lattice symbol
- CSPGP (CHARACTER*10) Space group symbol
- CFTIT (CHARACTER*50) Data file name
- *** Forms: I=1,NFORM
- (IOHKL(I,J),J=1,3) Form indices
- FOD(I) Central distances for forms
- *** Atoms: I=1,NA
- ATOM(I) (CHARACTER*6) Atom labels
- ITYP(I) Atom types
- (XYZ(I,J),J=1,3) Fractional atomic coordinates
- SIZE(I) Atomic radii
- KHIAT(I) Atom display type
- (ICOLAT(I,J),J=1,7) Atom colors:
- (XATHT(I,J),J=1,NFORM) Boundary heights for individual forms (each atom)
- SLATHT(I)
- **** Polyhedra: I=1,NPOL
- IPCN(I) Polyhedron coordination numbers
- (IPTYP(I,J),J=1,8) Atom types in polyhedra: central,ligands
- PIDIST(I) Polyhedron maximum distance cental-ligands
- (IPLCOL(I,J),J=1,5) Polyhedron colors
- **** Bonds: I=1,NBOCO
- (KTYP(I,J),J=1,2) Atom types in bonds
- (DIST(I,J),J=1,2) Max/Min distances for bonds
- WIDTH(I) Radius of stick bonds (0.0 for single-line)
- KHIBO(I) Bond display type
- (ICOLBO(I,J),J=1,7) Bond colors
-
-
- Following is the listing of the subroutine FINOUT, which reads and writes data
- files.
-
-
- SUBROUTINE FINOUT(INO)
- $INCLUDE:'COMMON.FOR'
- C
- 9801 FORMAT(12A5)
- 9802 FORMAT(10I3)
- 9803 FORMAT(8F10.5)
- 9804 FORMAT(76A1)
- 9805 FORMAT(4I5,2X,F10.5)
- 9806 FORMAT(A50)
- 9807 FORMAT(I3,2X,A6,I3,2X,3F10.5,F7.3,2X,8I3)
- 9808 FORMAT(10I3,2F10.5,5I3)
- 9809 FORMAT(3I3,1X,3F10.5,2X,8I3)
- 9810 FORMAT(A5,1X,A5,1X,A1,1X,A10,1X,A16)
- 9811 FORMAT(/3X,'** ERROR - OUT OF SPACE ON DISK')
- 9812 FORMAT(/3X,'** DISK ERROR - FORTRAN CODE: ',I6)
- 9813 FORMAT(6E13.5)
- 9814 FORMAT(/3X,'** MORE THAN ',I3,' ATOMS IN NON-PLOT LIST - ',
- & 'EXCESS IGNORED')
- C
- IF(INO.EQ.0) GO TO 500
- JDUM=0
- C
- C** MAKE LIST OF NON-PLOTTING ATOMS
- NU=0
- DO 80 I=1,NBIG
- IF(IONAT(I).GE.0) GO TO 80
- NU=NU+1
- IF(NU.LE.NZREM) GO TO 78
- WRITE(*,9814) NZREM
- NU=NZREM
- GO TO 90
- 78 JI(NU)=I
- 80 CONTINUE
- C
- 90 WRITE(IOF,9801,ERR=900,IOSTAT=IER) (TIT(1,J),J=1,12)
- C
- WRITE(IOF,9802,ERR=900,IOSTAT=IER) JCEL,KFOUT,ICNT,IDISPL,INORTH,
- & ISL,IPER,ICTR,IWSON,IWDON
- WRITE(IOF,9802,ERR=900,IOSTAT=IER) ISCK,ISEXT,IBCK,IPLTE,ISYST,
- & INDD,INROT,IFREEZ,IORF,IFOPT
- WRITE(IOF,9802,ERR=900,IOSTAT=IER) IAXES,IRH,ISTSC,JDUM,JDUM,
- & IBACK,IFLAG1,IFLAG2,IFLAG3,IFLAG4
- WRITE(IOF,9802,ERR=900,IOSTAT=IER) ICOLSB,ICOLSF,ICOLPB,ICOLPF,
- & ICOLXS,ICOLXP,ICOLDB,ICOLDF
- C
- WRITE(IOF,9802,ERR=900,IOSTAT=IER) IFCR,JDUM,NU,ICART,IPRBR,
- & NSSA,ICOLXD
- C
- IF(KFOUT.EQ.2) WRITE(IOF,9806) OFTIT
- IF(NU.NE.0) WRITE(IOF,9802,ERR=900,IOSTAT=IER) (JI(J),J=1,NU)
- C
- WRITE(IOF,9802,ERR=900,IOSTAT=IER) NSS,NCON,NFORM,NA,NPOL,NBOCO
- C
- WRITE(IOF,9802,ERR=900,IOSTAT=IER) IUV,((ITLIM(I,J),J=1,2),I=1,3)
- C
- WRITE(IOF,9802,ERR=900,IOSTAT=IER) (KPR(J),J=1,6)
- C
- WRITE(IOF,9803,ERR=900,IOSTAT=IER) DP,BLINC,FRBO,FRAT,
- & SCDFIX,SCPFIX,AXSC,SDSPAC
- C
- WRITE(IOF,9803,ERR=900,IOSTAT=IER) FRD,DASHLEN,XXFAC1,XXFAC2,
- & XLWIDC,XLWIDA,XLWIDB,XLWIDP
- C
- WRITE(IOF,9803,ERR=900,IOSTAT=IER) RPHI
- C
- WRITE(IOF,9803,ERR=900,IOSTAT=IER) CP
- C
- IF(IFREEZ.EQ.0) GO TO 108
- WRITE(IOF,9813,ERR=900) RAC,CXOFF,CYOFF
- WRITE(IOF,9813,ERR=900) ROR
- C
- 108 DO 110 I=1,NSS
- 110 WRITE(IOF,9804,ERR=900,IOSTAT=IER) (SAR(I,J),J=1,76)
- C
- IF(ISL.EQ.0) GO TO 115
- WRITE(IOF,9802,ERR=900,IOSTAT=IER) (INDS(J),J=1,3),
- & (IPERV(J),J=1,3)
- WRITE(IOF,9803,ERR=900,IOSTAT=IER) DISV1,DISV2,DISTF,SLFAC
- 115 IF(NCON.EQ.0) GO TO 140
- DO 120 I=1,NCON
- 120 WRITE(IOF,9802,ERR=900,IOSTAT=IER) KCLAS(I),(ICOCON(I,J),J=1,4)
- C
- 140 WRITE(IOF,9810,ERR=900,IOSTAT=IER) CPTGPI,CPTGPS,ICEL,CSPGP,CFTIT
- C
- DO 150 I=1,NFORM
- 150 WRITE(IOF,9805,ERR=900,IOSTAT=IER) I,(IOHKL(I,J),J=1,3),FOD(I)
- C
- DO 170 I=1,NA
- 170 WRITE(IOF,9807,ERR=900,IOSTAT=IER) I,ATOM(I),ITYP(I),
- & (XYZ(I,J),J=1,3),SIZE(I),KHIAT(I),(ICOLAT(I,J),J=1,7)
- C
- IF(INDD.EQ.0) GO TO 200
- DO 180 I=1,NA
- IF(ISL.EQ.0) SLATHT(I)=0.0
- 180 WRITE(IOF,9803,ERR=900,IOSTAT=IER) (XATHT(I,J),J=1,NFORM),
- & SLATHT(I)
- C
- 200 IF(NPOL.EQ.0) GO TO 240
- DO 210 I=1,NPOL
- 210 WRITE(IOF,9808,ERR=900,IOSTAT=IER) I,IPCN(I),(IPTYP(I,J),J=1,8),
- & PIDIST(I),XDUM,(IPLCOL(I,J),J=1,5)
- C
- 240 IF(NBOCO.EQ.0) GO TO 999
- DO 250 I=1,NBOCO
- 250 WRITE(IOF,9809,ERR=900,IOSTAT=IER) I,(KTYP(I,J),J=1,2),
- & (DIST(I,J),J=1,2),WIDTH(I),KHIBO(I),(ICOLBO(I,J),J=1,7)
- GO TO 999
- C
- C** READ FILE
- C
- 500 READ(INF,9801,ERR=900,IOSTAT=IER) (TIT(1,J),J=1,12)
- C
- READ(INF,9802,ERR=900,IOSTAT=IER) JCEL,KFOUT,ICNT,IDISPL,INORTH,
- & ISL,IPER,ICTR,IWSON,IWDON
- READ(INF,9802,ERR=900,IOSTAT=IER) ISCK,ISEXT,IBCK,IPLTE,ISYST,
- & INDD,INROT,IFREEZ,IORF,IFOPT
- READ(INF,9802,ERR=900,IOSTAT=IER) IAXES,IRH,ISTSC,JDUM,JDUM,
- & IBACK,IFLAG1,IFLAG2,IFLAG3,IFLAG4
- READ(INF,9802,ERR=900,IOSTAT=IER) ICOLSB,ICOLSF,ICOLPB,ICOLPF,
- & ICOLXS,ICOLXP,ICOLDB,ICOLDF
- C
- READ(INF,9802,ERR=900,IOSTAT=IER) IFCR,JDUM,NU,ICART,IPRBR,
- & NSSA,ICOLXD
- C
- IF(KFOUT.EQ.2) READ(INF,9806) OFTIT
- IF(NU.NE.0) READ(INF,9802,ERR=900,IOSTAT=IER) (JI(I),I=1,NU)
- C
- READ(INF,9802,ERR=900,IOSTAT=IER) NSS,NCON,NFORM,NA,NPOL,NBOCO
- C
- READ(INF,9802,ERR=900,IOSTAT=IER) IUV,((ITLIM(I,J),J=1,2),I=1,3)
- C
- READ(INF,9802,ERR=900,IOSTAT=IER) (KPR(J),J=1,6)
- C
- READ(INF,9803,ERR=900,IOSTAT=IER) DP,BLINC,FRBO,FRAT,
- & SCDFIX,SCPFIX,AXSC,SDSPAC
- C
- READ(INF,9803,ERR=900,IOSTAT=IER) FRD,DASHLEN,XXFAC1,XXFAC2,
- & XLWIDC,XLWIDA,XLWIDB,XLWIDP
- C
- READ(INF,9803,ERR=900,IOSTAT=IER) RPHI
- C
- READ(INF,9803,ERR=900,IOSTAT=IER) CP
- C
- IF(IFREEZ.EQ.0) GO TO 508
- READ(INF,9813,ERR=900) RAC,CXOFF,CYOFF
- READ(INF,9813,ERR=900) ROR
- C
- 508 DO 510 I=1,NSS
- 510 READ(INF,9804,ERR=900,IOSTAT=IER) (SAR(I,J),J=1,76)
- C
- IF(ISL.EQ.0) GO TO 515
- READ(INF,9802,ERR=900,IOSTAT=IER) (INDS(J),J=1,3),(IPERV(J),J=1,3)
- READ(INF,9803,ERR=900,IOSTAT=IER) DISV1,DISV2,DISTF,SLFAC
- 515 IF(NCON.EQ.0) GO TO 540
- DO 520 I=1,NCON
- 520 READ(INF,9802,ERR=900,IOSTAT=IER) KCLAS(I),(ICOCON(I,J),J=1,4)
- C
- 540 READ(INF,9810,ERR=900,IOSTAT=IER) CPTGPI,CPTGPS,ICEL,CSPGP,CFTIT
- C
- DO 550 I=1,NFORM
- 550 READ(INF,9805,ERR=900,IOSTAT=IER) III,(IOHKL(I,J),J=1,3),FOD(I)
- C
- DO 570 I=1,NA
- 570 READ(INF,9807,ERR=900,IOSTAT=IER) III,ATOM(I),ITYP(I),
- & (XYZ(I,J),J=1,3),SIZE(I),KHIAT(I),(ICOLAT(I,J),J=1,7)
- C
- IF(INDD.EQ.0) GO TO 600
- DO 580 I=1,NA
- 580 READ(INF,9803,ERR=900,IOSTAT=IER) (XATHT(I,J),J=1,NFORM),
- & SLATHT(I)
- C
- 600 IF(NPOL.EQ.0) GO TO 640
- DO 610 I=1,NPOL
- 610 READ(INF,9808,ERR=900,IOSTAT=IER) III,IPCN(I),(IPTYP(I,J),J=1,8),
- & PIDIST(I),XDUM,(IPLCOL(I,J),J=1,5)
- C
- 640 IF(NBOCO.EQ.0) GO TO 660
- DO 650 I=1,NBOCO
- 650 READ(INF,9809,ERR=900,IOSTAT=IER) III,(KTYP(I,J),J=1,2),
- & (DIST(I,J),J=1,2),WIDTH(I),KHIBO(I),(ICOLBO(I,J),J=1,7)
- C
- 660 IWC=0
- IWA=0
- IWB=0
- IWP=0
- IF(XLWIDC.NE.0.0) IWC=1
- IF(XLWIDA.NE.0.0) IWA=1
- IF(XLWIDB.NE.0.0) IWB=1
- IF(XLWIDP.NE.0.0) IWP=1
- ZWCS=0.499*FLOAT(IFIX(XLWIDC*44.0+0.999))
- ZWCD=0.499*FLOAT(IFIX(XLWIDC*DPIX+0.999))
- ZWAS=0.499*FLOAT(IFIX(XLWIDA*44.0+0.999))
- ZWAD=0.499*FLOAT(IFIX(XLWIDA*DPIX+0.999))
- ZWBS=0.499*FLOAT(IFIX(XLWIDB*44.0+0.999))
- ZWBD=0.499*FLOAT(IFIX(XLWIDB*DPIX+0.999))
- ZWPS=0.499*FLOAT(IFIX(XLWIDP*44.0+0.999))
- ZWPD=0.499*FLOAT(IFIX(XLWIDP*DPIX+0.999))
- IF(DASHLEN.EQ.0.0) DASHLEN=0.2
- IF(FRD.EQ.0.0) FRD=0.45
- XDPP=DPIP*DASHLEN
- XDDM=DPIX*DASHLEN
- XDSC=64.0*DASHLEN
- IF(IFREEZ.NE.0) GO TO 999
- CXOFF=0.0
- CYOFF=0.0
- GO TO 999
- C
- 900 IF(IER.NE.6422) WRITE(*,9812) IER
- IF(IER.EQ.6422) WRITE(*,9811)
- CALL PEEP(30,30)
- INO=-1
- CALL RPAUSE
- 999 RETURN
- END
-
-