subroutine aptpent (n, n1, n2, n3, n4, n5, vx, vy, vz, & ax, ay, az, bx, by, bz, cx, cy, cz) ccbeg. cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c c SUBROUTINE APTPENT c c call aptpent (n, n1, n2, n3, n4, n5, vx, vy, vz, c & ax, ay, az, bx, by, bz, cx, cy, cz) c c Version: aptpent Updated 1989 December 27 15:40. c aptpent Originated 1989 November 2 14:10. c c Author: Arthur L. Edwards, LLNL, L-298, Telephone (925) 422-4123. c c c Purpose: To make 5 triangles from a pentagonal face of a regular c dodecahedron inscribed in a unit sphere. c c Input: n, n1, n2, n3, n4, n5, vx, vy, vz. c c Output: ax, ay, az, bx, by, bz, cx, cy, cz. c c Glossary: c c ax,ay,az Output The x, y, z coordinates of first triangle vertex. c An array. c c bx,by,bz Output The x, y, z coordinates of second triangle vertex. c An array. c c cx,cy,cz Output The x, y, z coordinates of third triangle vertex. c An array. c c n In/Out Current index in table of triangles. c c n1-n5 Input Indices of pentagon vertices in (vx, vy, vz) table. c c vx,vy,vz Input The x, y, z coordinates of a dodecahedron vertex on a c unit sphere. An array. c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ccend. c.... Dimensioned arguments. c---- Coordinate x of triangle vertex. dimension ax (1) c---- Coordinate y of triangle vertex. dimension ay (1) c---- Coordinate z of triangle vertex. dimension az (1) c---- Coordinate x of triangle vertex. dimension bx (1) c---- Coordinate y of triangle vertex. dimension by (1) c---- Coordinate z of triangle vertex. dimension bz (1) c---- Coordinate x of triangle vertex. dimension cx (1) c---- Coordinate y of triangle vertex. dimension cy (1) c---- Coordinate z of triangle vertex. dimension cz (1) c---- Coordinate x of dodecahedron vertex. dimension vx (1) c---- Coordinate y of dodecahedron vertex. dimension vy (1) c---- Coordinate z of dodecahedron vertex. dimension vz (1) c.... Local variables. c---- Radius at center of pentagon. common /laptpent/ rcen c---- Coordinate x of pentagon center. common /laptpent/ xcen c---- Coordinate y of pentagon center. common /laptpent/ ycen c---- Coordinate z of pentagon center. common /laptpent/ zcen cbugc***DEBUG begins. cbug common /laptpent/ i cbug 9901 format (/ 'aptpent finding 5 triangles on a reqular pentagon.') cbug 9902 format (' n,n1,n2,n3,n4,n5=',6i5) cbug write (3, 9901) cbug write (3, 9902) n, n1, n2, n3, n4, n5 cbugc***DEBUG ends. c.... Find center of pentagon, projected to surface of sphere. xcen = 0.2 * (vx(n1) + vx(n2) + vx(n3) + vx(n4) + vx(n5)) ycen = 0.2 * (vy(n1) + vy(n2) + vy(n3) + vy(n4) + vy(n5)) zcen = 0.2 * (vz(n1) + vz(n2) + vz(n3) + vz(n4) + vz(n5)) rcen = sqrt (xcen**2 + ycen**2 + zcen**2) xcen = xcen / rcen ycen = ycen / rcen zcen = zcen / rcen c.... Find vertices of 5 triangles, on surface of sphere. c---- Triangle 1. n = n + 1 ax(n) = xcen ay(n) = ycen az(n) = zcen bx(n) = vx(n1) by(n) = vy(n1) bz(n) = vz(n1) cx(n) = vx(n2) cy(n) = vy(n2) cz(n) = vz(n2) c---- Triangle 2. n = n + 1 ax(n) = xcen ay(n) = ycen az(n) = zcen bx(n) = vx(n2) by(n) = vy(n2) bz(n) = vz(n2) cx(n) = vx(n3) cy(n) = vy(n3) cz(n) = vz(n3) c---- Triangle 3. n = n + 1 ax(n) = xcen ay(n) = ycen az(n) = zcen bx(n) = vx(n3) by(n) = vy(n3) bz(n) = vz(n3) cx(n) = vx(n4) cy(n) = vy(n4) cz(n) = vz(n4) c---- Triangle 4. n = n + 1 ax(n) = xcen ay(n) = ycen az(n) = zcen bx(n) = vx(n4) by(n) = vy(n4) bz(n) = vz(n4) cx(n) = vx(n5) cy(n) = vy(n5) cz(n) = vz(n5) c---- Triangle 5. n = n + 1 ax(n) = xcen ay(n) = ycen az(n) = zcen bx(n) = vx(n5) by(n) = vy(n5) bz(n) = vz(n5) cx(n) = vx(n1) cy(n) = vy(n1) cz(n) = vz(n1) cbugc***DEBUG begins. cbug 9903 format (/ 'aptpent results.') cbug 9904 format (' ax,ay,az=',1p3e22.14 / cbug & ' bx,by,bz=',1p3e22.14 / cbug & ' cx,cy,cz=',1p3e22.14) cbug write (3, 9903) cbug write (3, 9904) (i, ax(i), ay(i), az(i), bx(i), by(i), bz(i), cbug & cx(i), cy(i), cz(i), i = n - 4, n) cbugc***DEBUG ends. return c.... End of subroutine aptpent. (+1 line.) end UCRL-WEB-209832