38
39
40
41
42#include "implicit_f.inc"
43
44
45
46#include "task_c.inc"
47
48
49
50 INTEGER NSN,NMN,ITASK,NTY, ICURV, NRTM_T,NLN,
51 . NSV(*),MSR(*)
52 INTEGER NSNE,NMNE,NSVE(*),MSRE(*), IRECT(4,*)
54 . xmin, ymin, zmin, xmax,
ymax, zmax, c_max,
55 . xmine, ymine, zmine, xmaxe, ymaxe, zmaxe,
56 . xa(3,*),xsav(3,*),xsave(3,*),
57 . curv_max(*)
58
59
60
61 INTEGER NSNF,NMNF,NSNL,NMNL,I, J, II
62 INTEGER NSNEF,NMNEF,NSNEL,NMNEL
64 . xxx, yyy, zzz
65
66
67
68
69 nsnf=1+itask*nsn/nthread
70 nsnl=(itask+1)*nsn/nthread
71 nmnf=1+itask*nmn/nthread
72 nmnl=(itask+1)*nmn/nthread
73
74 nsnef=1+itask*nsne/nthread
75 nsnel=(itask+1)*nsne/nthread
76 nmnef=1+itask*nmne/nthread
77 nmnel=(itask+1)*nmne/nthread
78
79 xmin=ep30
80 xmax=-ep30
81 ymin=ep30
83 zmin=ep30
84 zmax=-ep30
85
86 xmine=ep30
87 xmaxe=-ep30
88 ymine=ep30
89 ymaxe=-ep30
90 zmine=ep30
91 zmaxe=-ep30
92
93
94 DO i=nsnf,nsnl
95 j=abs(nsv(i))
96 xsav(1,i)=xa(1,j)
97 xsav(2,i)=xa(2,j)
98 xsav(3,i)=xa(3,j)
99 END DO
100 DO i=nmnf,nmnl
101 ii = i+nsn
102 j=msr(i)
103
104 IF(j>0) THEN
105 xmin=
min(xmin,xa(1,j))
106 ymin=
min(ymin,xa(2,j))
107 zmin=
min(zmin,xa(3,j))
108 xmax=
max(xmax,xa(1,j))
110 zmax=
max(zmax,xa(3,j))
111 xsav(1,ii)=xa(1,j)
112 xsav(2,ii)=xa(2,j)
113 xsav(3,ii)=xa(3,j)
114 END IF
115 END DO
116
117 c_max = zero
118 IF(icurv/=0)THEN
119 DO i=1,nrtm_t
120 xxx=
max(xa(1,irect(1,i)),xa(1,irect(2,i)),
121 . xa(1,irect(3,i)),xa(1,irect(4,i)))
122 . -
min(xa(1,irect(1,i)),xa(1,irect(2,i)),
123 . xa(1,irect(3,i)),xa(1,irect(4,i)))
124 yyy=
max(xa(2,irect(1,i)),xa(2,irect(2,i)),
125 . xa(2,irect(3,i)),xa(2,irect(4,i)))
126 . -
min(xa(2,irect(1,i)),xa(2,irect(2,i)),
127 . xa(2,irect(3,i)),xa(2,irect(4,i)))
128 zzz=
max(xa(3,irect(1,i)),xa(3,irect(2,i)),
129 . xa(3,irect(3,i)),xa(3,irect(4,i)))
130 . -
min(xa(3,irect(1,i)),xa(3,irect(2,i)),
131 . xa(3,irect(3,i)),xa(3,irect(4,i)))
132 curv_max(i) = half *
max(xxx,yyy,zzz)
133 c_max =
max(c_max,curv_max(i))
134 ENDDO
135 ELSE
136 DO i=1,nrtm_t
137 curv_max(i)=zero
138 ENDDO
139 ENDIF
140
141 DO i=nsnef,nsnel
142 j=abs(nsve(i))
143 xsave(1,i)=xa(1,j)
144 xsave(2,i)=xa(2,j)
145 xsave(3,i)=xa(3,j)
146 END DO
147
148 DO i=nmnef,nmnel
149 ii = i+nsne
150 j=msre(i)
151
152 IF(j>0) THEN
153 xmine=
min(xmine,xa(1,j))
154 ymine=
min(ymine,xa(2,j))
155 zmine=
min(zmine,xa(3,j))
156 xmaxe=
max(xmaxe,xa(1,j))
157 ymaxe=
max(ymaxe,xa(2,j))
158 zmaxe=
max(zmaxe,xa(3,j))
159 xsave(1,ii)=xa(1,j)
160 xsave(2,ii)=xa(2,j)
161 xsave(3,ii)=xa(3,j)
162 END IF
163 END DO
164
165
166 RETURN
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)