51 USE checksum_starter_option_mod
55#include "implicit_f.inc"
64 INTEGER IFI,NVARTOT,IFLAG
73 CHARACTER(LEN=NCHARLINE) :: KEY
74 CHARACTER(LEN=NCHARTITLE) :: TITR
78 INTEGER NVARN,NVARS,NVARC,NVART,NVARP,NVARR,NVARUR
79 INTEGER NVARNS,NVARSPH
80 INTEGER NVARIN,NVARRW,NVARRB,NVARAC,NVARSE,NVARJO,NVARFX
81INTEGER NVARAB,NVARMV4,NVARMV,NVARPA
83 INTEGER NVARRIV,NVARRIVG,NSELRT
84 INTEGER NVARNG,NVARSG,NVARCG,NVARTG,NVARPG,NVARRG,NVARURG
85 INTEGER NVARNSG,NVARSPG,NVARSENS,NVARCHECKSUM
86 INTEGER NVARING,NVARRWG, NVARRBG,NVARACG,NVARSEG,NVARJOG
87 INTEGER NVARABG,NVARMG4
88INTEGER NVARF1G,NVARFRG,NVARGAUG,NVARCLUS,NVARCLUSG,NVARFLOW
89 INTEGER NVARSURF,NVARSLIP,NVARSLIPG,NVARRET,NVARRETG
90 INTEGER HM_NTHGRP,NTHACCEL,NTHINTER,NTHRWALL,NTHSECTIO,NTHCLUS,IDSMAX
91 INTEGER NTHBEAM,NTHTRUS,NTHBRIC,NTHNODE,NTHSHEL,NTHSH3N,NTHSPRING,NTHRBODY
92 INTEGER NTHMONVOL,HM_NTHPART,HM_NTHSUBS,HM_NTHSPHCEL, HM_NTHQUAD, HM_NTHSPHFLOW
93 INTEGER , HM_NTHFXBODY, HM_NTHFRAME, HM_NTHCYLJO, HM_NTHNSTRAND,
94 INTEGER HM_NTHTRIA,HM_NTHSLIPRING,HM_NTHRETRACTOR,HM_NTHSENS,HM_NTHCHECKSUM
97 parameter(nvarriv = 10,nvarrivg = 1)
98 parameter(nvarn = 628,nvars =239554 ,nvarc = 378
99 parameter(nvarp = 337,nvarr = 66,nvarur = 12)
100 parameter(nvarns = 4,nvarsph = 41)
101 parameter(nvarin = 29,nvarrw = 6,nvarrb =15,nvarfx =4)
102 parameter(nvarfxm = 3)
103 parameter(nvarac = 3,nvarse =39,nvarjo = 6,nvargau = 8)
104 parameter(nvarab = 7,nvarmv4= 9,nvarmv = 150)
105 parameter(nvarpa = 32)
106 parameter(nvarf1 = 18,nvarfr = 24,nvarclus=11)
107 parameter(nvarng = 7,nvarsg = 39766,nvarcg =574 ,nvartg = 1)
108 parameter(nvarpg = 1,nvarrg = 1,nvarurg = 1)
109 parameter(nvarnsg = 1,nvarspg = 2)
110 parameter(nvaring = 6,nvarrwg = 3,nvarrbg = 6,nvarfxg = 1)
111 parameter(nvarfxmg =1)
112 parameter(nvaracg = 2,nvarseg = 7,nvarjog = 3)
113 parameter(nvarabg = 1,nvarmg4 = 1,nvarmvg = 62)
114 parameter(nvarpag = 1)
115 PARAMETER (nvarf1g = 3,nvarfrg = 4,nvargaug = 1,nvarclusg = 2)
116 parameter(nvarflow = 1)
117 parameter(nvarsurf = 6)
118 parameter(nvarslip = 6,nvarslipg = 6,nvarret = 3,nvarretg = 3)
119 parameter(nvarsens = 1)
120 parameter(nvarchecksum = 1)
124 INTEGER PRETHGRNE,PRETHGRKI,PRETHGRPA,PRETHGRNS,PRETHGRVAR
128 is_available = .false.
134 ELSEIF (iflag == 1)
THEN
136 ELSEIF (iflag == 2)
THEN
138 ELSEIF (iflag == 3)
THEN
140 ELSEIF (iflag == 4)
THEN
142 ELSEIF (iflag == 5)
THEN
144 ELSEIF (iflag == 6)
THEN
146 ELSEIF (iflag == 7)
THEN
148 ELSEIF (iflag == 8)
THEN
150 ELSEIF (iflag == 9)
THEN
158 IF (nthaccel > 0)
THEN
160 hm_nthgrp = hm_nthgrp + nthaccel
163 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
164 nvartot = nvartot + 180
165 ifi = ifi + nvarac + 3*idsmax + 40*idsmax
172 IF (nthinter > 0)
THEN
174 hm_nthgrp = hm_nthgrp + nthinter
177 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
178 nvartot = nvartot + 180
179 ifi = ifi + nvarin + 3*idsmax + 40*idsmax
186 IF (nthrwall > 0)
THEN
188 hm_nthgrp = hm_nthgrp + nthrwall
191 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
192 nvartot = nvartot + 180
193 ifi = ifi + nvarrw + 3*idsmax + 40*idsmax
200 IF (nthsectio > 0)
THEN
202 hm_nthgrp = hm_nthgrp
205 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
206 nvartot = nvartot + 180
207 ifi = ifi + nvarse + 3*idsmax + 40*idsmax
214 IF (nthclus > 0)
THEN
216 hm_nthgrp = hm_nthgrp + nthclus
219 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
221 ifi = ifi + nvarclus + 3*idsmax + 40*idsmax
228 IF (nthbeam > 0)
THEN
230 hm_nthgrp = hm_nthgrp + nthbeam
233 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
234 nvartot = nvartot + 180
235 ifi = ifi + nvarp + lvarithb*idsmax + 40*idsmax
242 IF (nthtrus > 0)
THEN
244 hm_nthgrp = hm_nthgrp + nthtrus
247 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
248 nvartot = nvartot + 180
249 ifi = ifi + nvart + lvarithb*idsmax + 40*idsmax
256 IF (nthspring > 0)
THEN
258 hm_nthgrp = hm_nthgrp + nthspring
261 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel
262 nvartot = nvartot + 180
263 ifi = ifi + nvarr + lvarithb*idsmax + 40*idsmax
270 IF (nthbric > 0)
THEN
272 hm_nthgrp = hm_nthgrp + nthbric
275 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel
276 nvartot = nvartot + 180
277 ifi = ifi + nvars + lvarithb*idsmax + 40*idsmax
284 IF (nthnode > 0)
THEN
286 hm_nthgrp = hm_nthgrp + nthnode
289 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
291 ifi = ifi + nvarn + lvarithb*idsmax + 40*idsmax
298 IF (nthshel > 0)
THEN
300 hm_nthgrp = hm_nthgrp + nthshel
303 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
304 nvartot = nvartot + 180
305 ifi = ifi + nvarc + lvarithb*idsmax + 40*idsmax
312 IF (nthsh3n > 0)
THEN
314 hm_nthgrp = hm_nthgrp + nthsh3n
317 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
318 nvartot = nvartot + 180
319 ifi = ifi + nvarc + lvarithb*idsmax + 40*idsmax
326 IF (nthrbody > 0)
THEN
328 hm_nthgrp = hm_nthgrp + nthrbody
331 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
332 nvartot = nvartot + 180
333 ifi = ifi + nvarrb + 3*idsmax + 40*idsmax
340 IF (nthmonvol > 0)
THEN
342 hm_nthgrp = hm_nthgrp + nthmonvol
347 ifi = ifi + (nvarmv + 3*idsmax
354 IF (hm_nthpart > 0)
THEN
356 hm_nthgrp = hm_nthgrp + hm_nthpart
358 nvartot = nvartot + 180
366 IF (hm_nthsubs > 0)
THEN
368 hm_nthgrp = hm_nthgrp + hm_nthsubs
370 nvartot = nvartot + 180
378 IF (hm_nthfxbody > 0)
THEN
380 hm_nthgrp = hm_nthgrp + hm_nthfxbody
381 DO i = 1, hm_nthfxbody
383 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
384 nvartot = nvartot + 180
385 ifi = ifi + nvarfx + 3*idsmax + 40*idsmax
392 IF (hm_nthsphcel > 0)
THEN
394 hm_nthgrp = hm_nthgrp + hm_nthsphcel
395 DO i = 1, hm_nthsphcel
397 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
398 nvartot = nvartot + 180
399 ifi = ifi + nvarsph + lvarithb*idsmax + 40*idsmax
406 IF (hm_nthcyljo > 0)
THEN
408 hm_nthgrp = hm_nthgrp + hm_nthcyljo
409 DO i = 1, hm_nthcyljo
411 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
412 nvartot = nvartot + 180
413 ifi = ifi + nvarjo + 3*idsmax + 40*idsmax
420 IF (hm_nthframe > 0)
THEN
422 hm_nthgrp = hm_nthgrp + hm_nthframe
423 DO i = 1, hm_nthframe
425 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
426 nvartot = nvartot + 180
427 ifi = ifi + nvarfr + 3*idsmax + 40*idsmax
434 IF (hm_nthgauge > 0)
THEN
436 hm_nthgrp = hm_nthgrp + hm_nthgauge
437 DO i = 1, hm_nthgauge
439 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
440 nvartot = nvartot + 180
441 ifi = ifi + nvargau + 3*idsmax + 40*idsmax
448 IF (hm_nthsphflow > 0)
THEN
450 hm_nthgrp = hm_nthgrp + hm_nthsphflow
451 DO i = 1, hm_nthsphflow
453 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
454 nvartot = nvartot + 180
455 ifi = ifi + nvarflow + 3*idsmax + 40*idsmax
462 IF (hm_nthquad > 0)
THEN
464 hm_nthgrp = hm_nthgrp + hm_nthquad
467 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
468 nvartot = nvartot + 180
469 ifi = ifi + nvars + lvarithb*idsmax + 40*idsmax
476 IF (hm_nthnstrand > 0)
THEN
478 hm_nthgrp = hm_nthgrp + hm_nthnstrand
479 DO i = 1, hm_nthnstrand
481 CALL hm_get_intv(
'Num_Cards',idsmax,is_available,lsubmodel)
482 nvartot = nvartot + 180
483 ifi = ifi + nvarns + lvarithb*idsmax + 40*idsmax
490 IF (hm_nthsurf >
THEN
492 hm_nthgrp = hm_nthgrp + hm_nthsurf
495 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
496 nvartot = nvartot + 180
504 IF (hm_nthtria> 0)
THEN
506 hm_nthgrp = hm_nthgrp + hm_nthtria
509 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
510 nvartot = nvartot + 180
511 ifi = ifi + nvars + lvarithb*idsmax + 40*idsmax
518 IF (hm_nthslipring > 0)
THEN
520 hm_nthgrp = hm_nthgrp + hm_nthslipring
521 DO i = 1, hm_nthslipring
523 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
524 nvartot = nvartot + 180
525 ifi = ifi + nvarslip + lvarithb*idsmax + 40*idsmax
532 IF (hm_nthretractor > 0)
THEN
534 hm_nthgrp = hm_nthgrp + hm_nthretractor
535 DO i = 1, hm_nthretractor
537 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
538 nvartot = nvartot + 180
539 ifi = ifi + nvarret + lvarithb*idsmax + 40*idsmax
546 IF (hm_nthsens > 0)
THEN
548 hm_nthgrp = hm_nthgrp + hm_nthsens
551 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
552 nvartot = nvartot + 180
553 ifi = ifi + nvarsens + 43*idsmax
560 hm_nthchecksum = output%CHECKSUM%checksum_count
561 IF (hm_nthchecksum > 0)
THEN
562 hm_nthgrp = hm_nthgrp + 1
563 nvartot = nvartot + 180
564 ifi = ifi + nvarchecksum + 40 * hm_nthchecksum