5 * Revision 1.1.1.1 1995/10/24 10:19:44 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.31 by S.Giani
12 SUBROUTINE CGHREN(NT,NOLD,NNEW,NFACE,XYZ,IP,IFACE,NXYZ)
13 ************************************************************************
16 * Author: E. Chernyaev Date: 04.08.88 *
19 * Function: Transform coordinates to screen system and *
24 * Input: NT - number of transformation *
25 * NOLD - number of old nodes *
26 * NNEW - number of new nodes *
27 * NFACE - number of new faces *
28 * XYZ(3,*) - node coordinates *
29 * IP(2,*) - work array for renumbering *
32 * Output: NXYZ - total number of nodes after renumeration *
36 ************************************************************************
37 #include "geant321/cgdelt.inc"
38 #include "geant321/cgctra.inc"
41 INTEGER IP(2,*),IFACE(*)
44 ** T R A N S F O R M T O S C R E E N COORDINATES
45 ** D I S C R E T I S A T I O N
49 SXYZ(K) = TSCRN(1,K,NT)*XYZ(1,I) + TSCRN(2,K,NT)*XYZ(2,I) +
50 + TSCRN(3,K,NT)*XYZ(3,I) + TSCRN(4,K,NT)
51 * IF (SXYZ(K) .GE. 0.) KK = (SXYZ(K) + DESCR) * DELSCR
52 * IF (SXYZ(K) .LT. 0.) KK = (SXYZ(K) - DESCR) * DELSCR
53 * SXYZ(K) = KK * EESCR
61 ** S H E L L S O R T O F C O O R D N A T E S
64 * 290 ISTEP = ISTEP*3 + 1
65 * IF (ISTEP*2 .LT. NNEW) GOTO 290
67 * DO 500 M=1,NNEW-ISTEP
68 * IF(XYZ(1,M)-XYZ(1,M+ISTEP)) 500,310,350
69 * 310 IF(XYZ(2,M)-XYZ(2,M+ISTEP)) 500,320,350
70 * 320 IF(XYZ(3,M)-XYZ(3,M+ISTEP)) 500,500,350
72 * 350 SXYZ(1) = XYZ(1,M+ISTEP)
73 * SXYZ(2) = XYZ(2,M+ISTEP)
74 * SXYZ(3) = XYZ(3,M+ISTEP)
75 * IPCUR = IP(1,M+ISTEP)
77 * 400 XYZ(1,I+ISTEP) = XYZ(1,I)
78 * XYZ(2,I+ISTEP) = XYZ(2,I)
79 * XYZ(3,I+ISTEP) = XYZ(3,I)
80 * IP (1,I+ISTEP) = IP(1,I)
82 * IF (I .LE. 0) GOTO 450
83 * IF (XYZ(1,I)-SXYZ(1)) 450,410,400
84 * 410 IF (XYZ(2,I)-SXYZ(2)) 450,420,400
85 * 420 IF (XYZ(3,I)-SXYZ(3)) 450,450,400
86 * 450 XYZ(1,I+ISTEP) = SXYZ(1)
87 * XYZ(2,I+ISTEP) = SXYZ(2)
88 * XYZ(3,I+ISTEP) = SXYZ(3)
89 * IP (1,I+ISTEP) = IPCUR
92 * IF (ISTEP .NE. 1) GOTO 300
94 ** N O D E R E N U M E R A T I O N
98 IP(2,NIP11)= NN + NOLD
100 * IF (XYZ(1,I) .NE. XYZ(1,I-1)) GOTO 610
101 * IF (XYZ(2,I) .NE. XYZ(2,I-1)) GOTO 610
102 * IF (XYZ(3,I) .EQ. XYZ(3,I-1)) GOTO 620
111 ** S E T N E W N O D E N U M B E R S I N F A C E S
118 IFACE(JF+NE) = IP(2,NIF)
120 JF = JF + 1 + NEDGE*2