home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / p / p260 / 1.ddi / DATFILE.DOC < prev    next >
Encoding:
Text File  |  1989-08-08  |  11.9 KB  |  339 lines

  1. The following is a list of the variables which are read and written in data 
  2. files by the subroutine FINOUT.  The formats are given below in the listing
  3. for FINOUT. 
  4.  
  5. The options listed after integer variables give the options for values of 
  6. 0/1/2...etc., unless otherwise indicated by a range in parentheses. JDUM is a 
  7. dummy variable which occurs several places.       
  8.  
  9. JCELL      Bravais cell number: P/A/B/C/F/I/R
  10. KFOUT      Destination of calulation output: printer/file/none
  11. ICNT       Centric/non-centric
  12. IDISPL     Display crystal edges or atoms: both/edges/atoms
  13. INORTH     Initial setting of orthographic rotation: off/on
  14. ISL        Slice: off/on
  15. IPER       Perspective: off/on
  16. ICTR       Automatic centering: off/on
  17. IWSON      Finite widths for screen: off/on
  18. IWDON      Finite widths for dot-matrix lines: off/on
  19. ISCK       Key screen display to: dot-matrix/pen plotter
  20. ISEXT      Systematic absences: absent/present
  21. IBCK       CGA background color
  22. IPLTE      CGA palette number
  23. ISYST      Crystal system number (1-8): tric/mono/ortho/trig/tetr/hex/cub/cart
  24. INDD       Individual face distances: off/on
  25. INROT      Initial rotations: off/on
  26. IFREEZ     Save/recover current orientation: off/on
  27. IORF       Orthographic viewing: off/on (used only if IFREEZE non-zero)
  28. IFOPT      Boundary option (1-4): unit-cell/chosen faces/molecule/polymer
  29. IAXES      Crystal axes: off/on
  30. IRH        Rhombohedral axes: off/on
  31. ISTSC      Scale mode: universal/each view/fixed
  32. IBACK      Back edges: off/dashed/solid
  33. IFLAG1,IFLAG2,IFLAG3,IFLAG4     Temporary variables
  34. ICOLSB     Color for crystal edges, screen, back
  35. ICOLSF     Color for crystal edges, screen, front
  36. ICOLPB     Color for crystal edges, pen plot, back
  37. ICOLPF     Color for crystal edges, pen plot, front
  38. ICOLXS     Color for crystal axes, screen
  39. ICOLXP     Color for crystal axes, pen plot
  40. ICOLDB     Color for crystal edges, dot-matrix, back
  41. ICOLDF     Color for crystal edges, dot-matrix, front
  42. IFCR       Symmetry for faces: full/center/none
  43. NU         Total number of deleted atoms
  44. ICART      Cartesian symmetry matrices off/on
  45. IPRBR      Show Bravais/primitive cell
  46. NSSA       Number of individual symmetry operations
  47. ICOLXD     Color for crystal axes, dot-matrix
  48. OFTIT      (CHARACTER*50) Name of calculation output file
  49. (JI(J),J=1,NU)  Index numbers of deleted atoms
  50. NSS        Number of lines of symmetry operations
  51. NCON       Number of conditions for systematic absence
  52. NFORM      Number of forms
  53. NA         Number of atom input types
  54. NPOL       Number of polyhedron input types
  55. NBOCO      Number of bond input types
  56. IUV(3)     Translation deselect flags
  57. ((ITLIM(I,J),J=1,2),I=1,3)      Translation limits for boundary option 5
  58. (KPR(J),J=1,6)  Calculation print-out deselect flags
  59.  
  60. DP         Perspective distance
  61. BLINC      Blank border in pen plot (A)
  62. FRBO       Fractional width of highlight, bonds
  63. FRAT       Fractional width of highlight, atoms
  64. SCDFIX     Fixed scale, A/inch, dot-matrix
  65. SCPFIX     Fixed scale, A/inch, pen plot
  66. AXSC       Scale factor for crystal axes
  67. SDSPAC     D-spacing of slice
  68. FRD        Dash ratio
  69. DASHLEN    Lenght of dashes, inches
  70. XXFAC1,XXFAC2     dummies
  71. XLWIDC     Line width, crystal edges and axes
  72. XLWIDA     Line width, atoms
  73. XLWIDB     Line width, bonds
  74. XLWIDP     Line width, polyhedra
  75. RPHI(3)    Initial rotations on x,y,z
  76. CP(6)      Unit-cell parameter (axis lengths and angles)
  77. RAC(3,3)   Matrix used for removing rotations
  78. CXOFF      Offset on y axis
  79. CYOFF      Offset on z axis
  80. ROR(3,3)   Matrix used to recover initial rotations
  81. (SAR(I,J),J=1,76)   Symmetry operation data
  82. (INDS(J),J=1,3)    Slice indices
  83. (IPERV(J),J=1,3)    Slice orientation vector
  84. DISV1   Slice height
  85. DISV2   Slice width
  86. DISTF   Slice offset
  87. SLFAC   Slice thickness
  88. (KCLAS(I),I=1,NCON)  Systematic absence index class
  89. (ICOCON(I,J),J=1,4),I=1,NCON) Systematic absence conditions
  90. CPTGPI     (CHARACTER*5) Point group symbol, International
  91. CPTGPS     (CHARACTER*5) Point group symbol, Schoenflies
  92. ICEL       (CHARACTER*1) Lattice symbol
  93. CSPGP      (CHARACTER*10) Space group symbol
  94. CFTIT      (CHARACTER*50) Data file name
  95. *** Forms:  I=1,NFORM
  96. (IOHKL(I,J),J=1,3)      Form indices
  97. FOD(I)     Central distances for forms
  98. *** Atoms:  I=1,NA
  99. ATOM(I)    (CHARACTER*6) Atom labels
  100. ITYP(I)    Atom types
  101. (XYZ(I,J),J=1,3)  Fractional atomic coordinates
  102. SIZE(I)    Atomic radii
  103. KHIAT(I)   Atom display type
  104. (ICOLAT(I,J),J=1,7)     Atom colors:
  105. (XATHT(I,J),J=1,NFORM)    Boundary heights for individual forms (each atom)
  106. SLATHT(I)
  107. **** Polyhedra:  I=1,NPOL
  108. IPCN(I)    Polyhedron coordination numbers
  109. (IPTYP(I,J),J=1,8)      Atom types in polyhedra: central,ligands
  110. PIDIST(I)  Polyhedron maximum distance cental-ligands
  111. (IPLCOL(I,J),J=1,5)     Polyhedron colors
  112. **** Bonds:   I=1,NBOCO
  113. (KTYP(I,J),J=1,2)       Atom types in bonds
  114. (DIST(I,J),J=1,2)       Max/Min distances for bonds
  115. WIDTH(I)   Radius of stick bonds (0.0 for single-line)
  116. KHIBO(I)   Bond display type
  117. (ICOLBO(I,J),J=1,7)   Bond colors
  118.  
  119.  
  120. Following is the listing of the subroutine FINOUT, which reads and writes data
  121. files.
  122.  
  123.  
  124.       SUBROUTINE FINOUT(INO)
  125. $INCLUDE:'COMMON.FOR'
  126. C
  127. 9801  FORMAT(12A5)
  128. 9802  FORMAT(10I3)
  129. 9803  FORMAT(8F10.5)
  130. 9804  FORMAT(76A1)
  131. 9805  FORMAT(4I5,2X,F10.5)
  132. 9806  FORMAT(A50)
  133. 9807  FORMAT(I3,2X,A6,I3,2X,3F10.5,F7.3,2X,8I3)
  134. 9808  FORMAT(10I3,2F10.5,5I3)
  135. 9809  FORMAT(3I3,1X,3F10.5,2X,8I3)
  136. 9810  FORMAT(A5,1X,A5,1X,A1,1X,A10,1X,A16)
  137. 9811  FORMAT(/3X,'** ERROR - OUT OF SPACE ON DISK')
  138. 9812  FORMAT(/3X,'** DISK ERROR - FORTRAN CODE: ',I6)
  139. 9813  FORMAT(6E13.5)
  140. 9814  FORMAT(/3X,'** MORE THAN ',I3,' ATOMS IN NON-PLOT LIST - ',
  141.      & 'EXCESS IGNORED')
  142. C
  143.       IF(INO.EQ.0) GO TO 500
  144.       JDUM=0
  145. C
  146. C** MAKE LIST OF NON-PLOTTING ATOMS
  147.       NU=0
  148.       DO 80 I=1,NBIG
  149.       IF(IONAT(I).GE.0) GO TO 80
  150.       NU=NU+1
  151.       IF(NU.LE.NZREM) GO TO 78
  152.       WRITE(*,9814) NZREM
  153.       NU=NZREM
  154.       GO TO 90
  155. 78    JI(NU)=I
  156. 80    CONTINUE
  157. C
  158. 90    WRITE(IOF,9801,ERR=900,IOSTAT=IER) (TIT(1,J),J=1,12)
  159. C
  160.       WRITE(IOF,9802,ERR=900,IOSTAT=IER) JCEL,KFOUT,ICNT,IDISPL,INORTH, 
  161.      & ISL,IPER,ICTR,IWSON,IWDON
  162.       WRITE(IOF,9802,ERR=900,IOSTAT=IER) ISCK,ISEXT,IBCK,IPLTE,ISYST,
  163.      & INDD,INROT,IFREEZ,IORF,IFOPT
  164.       WRITE(IOF,9802,ERR=900,IOSTAT=IER) IAXES,IRH,ISTSC,JDUM,JDUM,
  165.      & IBACK,IFLAG1,IFLAG2,IFLAG3,IFLAG4
  166.       WRITE(IOF,9802,ERR=900,IOSTAT=IER) ICOLSB,ICOLSF,ICOLPB,ICOLPF,
  167.      & ICOLXS,ICOLXP,ICOLDB,ICOLDF
  168. C
  169.       WRITE(IOF,9802,ERR=900,IOSTAT=IER) IFCR,JDUM,NU,ICART,IPRBR,
  170.      & NSSA,ICOLXD
  171. C
  172.       IF(KFOUT.EQ.2) WRITE(IOF,9806) OFTIT
  173.       IF(NU.NE.0) WRITE(IOF,9802,ERR=900,IOSTAT=IER) (JI(J),J=1,NU)
  174. C
  175.       WRITE(IOF,9802,ERR=900,IOSTAT=IER) NSS,NCON,NFORM,NA,NPOL,NBOCO
  176. C
  177.       WRITE(IOF,9802,ERR=900,IOSTAT=IER) IUV,((ITLIM(I,J),J=1,2),I=1,3)
  178. C
  179.       WRITE(IOF,9802,ERR=900,IOSTAT=IER) (KPR(J),J=1,6)
  180. C
  181.       WRITE(IOF,9803,ERR=900,IOSTAT=IER) DP,BLINC,FRBO,FRAT,
  182.      & SCDFIX,SCPFIX,AXSC,SDSPAC
  183. C
  184.       WRITE(IOF,9803,ERR=900,IOSTAT=IER) FRD,DASHLEN,XXFAC1,XXFAC2,
  185.      & XLWIDC,XLWIDA,XLWIDB,XLWIDP
  186. C
  187.       WRITE(IOF,9803,ERR=900,IOSTAT=IER) RPHI
  188. C
  189.       WRITE(IOF,9803,ERR=900,IOSTAT=IER) CP
  190. C
  191.       IF(IFREEZ.EQ.0) GO TO 108
  192.       WRITE(IOF,9813,ERR=900) RAC,CXOFF,CYOFF
  193.       WRITE(IOF,9813,ERR=900) ROR
  194. C
  195. 108   DO 110 I=1,NSS
  196. 110   WRITE(IOF,9804,ERR=900,IOSTAT=IER) (SAR(I,J),J=1,76)
  197. C
  198.       IF(ISL.EQ.0) GO TO 115
  199.       WRITE(IOF,9802,ERR=900,IOSTAT=IER) (INDS(J),J=1,3),
  200.      & (IPERV(J),J=1,3)
  201.       WRITE(IOF,9803,ERR=900,IOSTAT=IER) DISV1,DISV2,DISTF,SLFAC
  202. 115   IF(NCON.EQ.0) GO TO 140
  203.       DO 120 I=1,NCON
  204. 120   WRITE(IOF,9802,ERR=900,IOSTAT=IER) KCLAS(I),(ICOCON(I,J),J=1,4)
  205. C
  206. 140   WRITE(IOF,9810,ERR=900,IOSTAT=IER) CPTGPI,CPTGPS,ICEL,CSPGP,CFTIT
  207. C
  208.       DO 150 I=1,NFORM
  209. 150   WRITE(IOF,9805,ERR=900,IOSTAT=IER) I,(IOHKL(I,J),J=1,3),FOD(I)
  210. C
  211.       DO 170 I=1,NA
  212. 170   WRITE(IOF,9807,ERR=900,IOSTAT=IER) I,ATOM(I),ITYP(I),
  213.      & (XYZ(I,J),J=1,3),SIZE(I),KHIAT(I),(ICOLAT(I,J),J=1,7)
  214. C
  215.       IF(INDD.EQ.0) GO TO 200
  216.       DO 180 I=1,NA
  217.       IF(ISL.EQ.0) SLATHT(I)=0.0
  218. 180   WRITE(IOF,9803,ERR=900,IOSTAT=IER) (XATHT(I,J),J=1,NFORM),
  219.      & SLATHT(I)
  220. C
  221. 200   IF(NPOL.EQ.0) GO TO 240
  222.       DO 210 I=1,NPOL
  223. 210   WRITE(IOF,9808,ERR=900,IOSTAT=IER) I,IPCN(I),(IPTYP(I,J),J=1,8),
  224.      & PIDIST(I),XDUM,(IPLCOL(I,J),J=1,5)
  225. C
  226. 240   IF(NBOCO.EQ.0) GO TO 999
  227.       DO 250 I=1,NBOCO
  228. 250   WRITE(IOF,9809,ERR=900,IOSTAT=IER) I,(KTYP(I,J),J=1,2),
  229.      & (DIST(I,J),J=1,2),WIDTH(I),KHIBO(I),(ICOLBO(I,J),J=1,7)
  230.       GO TO 999
  231. C
  232. C** READ FILE
  233. C
  234. 500   READ(INF,9801,ERR=900,IOSTAT=IER) (TIT(1,J),J=1,12)
  235. C
  236.       READ(INF,9802,ERR=900,IOSTAT=IER) JCEL,KFOUT,ICNT,IDISPL,INORTH,
  237.      & ISL,IPER,ICTR,IWSON,IWDON
  238.       READ(INF,9802,ERR=900,IOSTAT=IER) ISCK,ISEXT,IBCK,IPLTE,ISYST,
  239.      & INDD,INROT,IFREEZ,IORF,IFOPT
  240.       READ(INF,9802,ERR=900,IOSTAT=IER) IAXES,IRH,ISTSC,JDUM,JDUM,
  241.      & IBACK,IFLAG1,IFLAG2,IFLAG3,IFLAG4
  242.       READ(INF,9802,ERR=900,IOSTAT=IER) ICOLSB,ICOLSF,ICOLPB,ICOLPF,
  243.      & ICOLXS,ICOLXP,ICOLDB,ICOLDF
  244. C
  245.       READ(INF,9802,ERR=900,IOSTAT=IER) IFCR,JDUM,NU,ICART,IPRBR,
  246.      & NSSA,ICOLXD
  247. C
  248.       IF(KFOUT.EQ.2) READ(INF,9806) OFTIT
  249.       IF(NU.NE.0) READ(INF,9802,ERR=900,IOSTAT=IER) (JI(I),I=1,NU)
  250. C
  251.       READ(INF,9802,ERR=900,IOSTAT=IER) NSS,NCON,NFORM,NA,NPOL,NBOCO
  252. C
  253.       READ(INF,9802,ERR=900,IOSTAT=IER) IUV,((ITLIM(I,J),J=1,2),I=1,3)
  254. C
  255.       READ(INF,9802,ERR=900,IOSTAT=IER) (KPR(J),J=1,6)
  256. C
  257.       READ(INF,9803,ERR=900,IOSTAT=IER) DP,BLINC,FRBO,FRAT,
  258.      & SCDFIX,SCPFIX,AXSC,SDSPAC
  259. C
  260.       READ(INF,9803,ERR=900,IOSTAT=IER) FRD,DASHLEN,XXFAC1,XXFAC2,
  261.      & XLWIDC,XLWIDA,XLWIDB,XLWIDP
  262. C
  263.       READ(INF,9803,ERR=900,IOSTAT=IER) RPHI
  264. C
  265.       READ(INF,9803,ERR=900,IOSTAT=IER) CP
  266. C
  267.       IF(IFREEZ.EQ.0) GO TO 508
  268.       READ(INF,9813,ERR=900) RAC,CXOFF,CYOFF
  269.       READ(INF,9813,ERR=900) ROR
  270. C
  271. 508   DO 510 I=1,NSS
  272. 510   READ(INF,9804,ERR=900,IOSTAT=IER) (SAR(I,J),J=1,76)
  273. C
  274.       IF(ISL.EQ.0) GO TO 515
  275.       READ(INF,9802,ERR=900,IOSTAT=IER) (INDS(J),J=1,3),(IPERV(J),J=1,3)
  276.       READ(INF,9803,ERR=900,IOSTAT=IER) DISV1,DISV2,DISTF,SLFAC
  277. 515   IF(NCON.EQ.0) GO TO 540
  278.       DO 520 I=1,NCON
  279. 520   READ(INF,9802,ERR=900,IOSTAT=IER) KCLAS(I),(ICOCON(I,J),J=1,4)
  280. C
  281. 540   READ(INF,9810,ERR=900,IOSTAT=IER) CPTGPI,CPTGPS,ICEL,CSPGP,CFTIT
  282. C
  283.       DO 550 I=1,NFORM
  284. 550   READ(INF,9805,ERR=900,IOSTAT=IER) III,(IOHKL(I,J),J=1,3),FOD(I)
  285. C
  286.       DO 570 I=1,NA
  287. 570   READ(INF,9807,ERR=900,IOSTAT=IER) III,ATOM(I),ITYP(I),
  288.      & (XYZ(I,J),J=1,3),SIZE(I),KHIAT(I),(ICOLAT(I,J),J=1,7)
  289. C
  290.       IF(INDD.EQ.0) GO TO 600
  291.       DO 580 I=1,NA
  292. 580   READ(INF,9803,ERR=900,IOSTAT=IER) (XATHT(I,J),J=1,NFORM),
  293.      & SLATHT(I)
  294. C
  295. 600   IF(NPOL.EQ.0) GO TO 640
  296.       DO 610 I=1,NPOL
  297. 610   READ(INF,9808,ERR=900,IOSTAT=IER) III,IPCN(I),(IPTYP(I,J),J=1,8),
  298.      & PIDIST(I),XDUM,(IPLCOL(I,J),J=1,5)
  299. C                
  300. 640   IF(NBOCO.EQ.0) GO TO 660
  301.       DO 650 I=1,NBOCO
  302. 650   READ(INF,9809,ERR=900,IOSTAT=IER) III,(KTYP(I,J),J=1,2),
  303.      & (DIST(I,J),J=1,2),WIDTH(I),KHIBO(I),(ICOLBO(I,J),J=1,7)
  304. C
  305. 660   IWC=0
  306.       IWA=0
  307.       IWB=0
  308.       IWP=0
  309.       IF(XLWIDC.NE.0.0) IWC=1
  310.       IF(XLWIDA.NE.0.0) IWA=1
  311.       IF(XLWIDB.NE.0.0) IWB=1
  312.       IF(XLWIDP.NE.0.0) IWP=1
  313.       ZWCS=0.499*FLOAT(IFIX(XLWIDC*44.0+0.999))
  314.       ZWCD=0.499*FLOAT(IFIX(XLWIDC*DPIX+0.999))
  315.       ZWAS=0.499*FLOAT(IFIX(XLWIDA*44.0+0.999))
  316.       ZWAD=0.499*FLOAT(IFIX(XLWIDA*DPIX+0.999))
  317.       ZWBS=0.499*FLOAT(IFIX(XLWIDB*44.0+0.999))
  318.       ZWBD=0.499*FLOAT(IFIX(XLWIDB*DPIX+0.999))
  319.       ZWPS=0.499*FLOAT(IFIX(XLWIDP*44.0+0.999))
  320.       ZWPD=0.499*FLOAT(IFIX(XLWIDP*DPIX+0.999))
  321.       IF(DASHLEN.EQ.0.0) DASHLEN=0.2
  322.       IF(FRD.EQ.0.0) FRD=0.45
  323.       XDPP=DPIP*DASHLEN
  324.       XDDM=DPIX*DASHLEN
  325.       XDSC=64.0*DASHLEN
  326.       IF(IFREEZ.NE.0) GO TO 999
  327.       CXOFF=0.0
  328.       CYOFF=0.0
  329.       GO TO 999
  330. C
  331. 900   IF(IER.NE.6422) WRITE(*,9812) IER
  332.       IF(IER.EQ.6422) WRITE(*,9811)
  333.       CALL PEEP(30,30)
  334.       INO=-1
  335.       CALL RPAUSE
  336. 999   RETURN
  337.       END
  338.  
  339.