32 subroutine gsvolu(name, shape, nmed, par, npar, ivol)
34 subroutine ksvolu(name, shape, nmed, par, npar, ivol)
39 character name*4, shape*4, fmt*150
40 integer nmed, npar, ivol, k
48 if (dogeom)
call gsvolu(name, shape, nmed, par, npar, ivol)
50 if (npar.ne.0)
call checkshape(name, shape, par, npar)
52 if (lunlist.ne.0)
then 57 write(fmt,
'(A,I2,A)')
'(a4,1x,a6,1x,a4,1x,a4,2i5,',
max(npar,1),
59 write(lunlist,fmt) context, rname, name, shape, nmed, npar,
62 if (luncode.ne.0)
then 63 write(luncode,
'(''{'')')
65 write(luncode,1000) name, shape, nmed, npar
66 1000
format(
'G4gsvolu(name="',
a,
'",shape="',
a,
'",nmed=',i5,
67 +
',par,npar=',i4,
');')
68 write(luncode,
'(''}'')')
74 subroutine gspos(name, num, moth, x, y, z, irot, only)
76 subroutine kspos(name, num, moth, x, y, z, irot, only)
81 character name*4, moth*4, only*4
90 if (dogeom)
call gspos(name, num, moth, x, y, z, irot, only)
92 if (lunlist.ne.0)
then 94 +
'(a4,1x,a6,1x,a4,i5,1x,a4,3(1x,e16.8),i5,1x,a4)')
95 + context, rname, name, num, moth, x, y, z, irot, only
97 if (luncode.ne.0)
then 98 write(luncode,
'(''{'')')
102 write(luncode,1000) name,num,moth,irot,only
103 1000
format(
'G4gspos(name="',
a,
'",num=',i5,
',moth="',
a,
104 +
'",x,y,z,irot=',i5,
',only="',
a,
'");')
105 write(luncode,
'(''}'')')
111 subroutine gsposp(name, num, moth, x, y, z, irot, only, par, npar)
113 subroutine ksposp(name, num, moth, x, y, z, irot, only, par, npar)
118 character name*4, moth*4, only*4
119 integer num, irot, npar, k
120 real x, y, z, par(npar)
121 character rname*6, fmt*150
122 #include "G3toG4.inc" 123 data rname /
'GSPOSP'/
127 if (dogeom)
call gsposp(name, num, moth, x, y, z, irot, only,
130 if (lunlist.ne.0)
then 132 if (abs(par(k)).gt.1.e10)
then 133 print *,
'Warning: huge junk value in PAR for GSPOS' 134 print *,
' zeroed out. Volume ',name
144 write(fmt,
'(A,A,I2,A)')
145 >
'(a4,1x,a6,1x,a4,i5,1x,a4,3(1x,e16.8),',
146 +
'i5,1x,a4,i5,',
max(npar,1),
'(1x,e16.8))' 148 + context, rname, name, num, moth, x, y, z, irot, only,
152 if (luncode.ne.0)
then 153 write(luncode,
'(''{'')')
158 write(luncode,1000) name,num,moth,irot,only,npar
159 1000
format(
'G4gsposp(name="',
a,
'",num=',i5,
',moth="',
a,
160 +
'",x,y,z,irot=',i5,
',only="',
a,
'",par,npar=',i4,
');')
161 write(luncode,
'(''}'')')
167 subroutine gsatt(name, attr, ival)
169 subroutine ksatt(name, attr, ival)
174 character name*4, attr*4
177 #include "G3toG4.inc" 178 data rname /
'GSATT '/
182 if (dogeom)
call gsatt(name, attr, ival)
184 if (lunlist.ne.0)
then 186 +
'(a4,1x,a6,1x,a4,1x,a4,i12)')
187 + context, rname, name, attr, ival
189 if (luncode.ne.0)
then 190 write(luncode,
'(''{'')')
191 write(luncode,1000) name,attr,ival
192 1000
format(
'G4gsatt(name="',
a,
'",attr="',
a,
'",ival=',i10,
');')
193 write(luncode,
'(''}'')')
199 subroutine gsrotm(irot, theta1, phi1, theta2, phi2,
202 subroutine ksrotm(irot, theta1, phi1, theta2, phi2,
209 real theta1, phi1, theta2, phi2, theta3, phi3
211 #include "G3toG4.inc" 212 data rname /
'GSROTM'/
216 if (dogeom)
call gsrotm(irot, theta1, phi1, theta2, phi2,
219 if (lunlist.ne.0)
then 221 +
'(a4,1x,a6,i5,6f11.5)')
222 + context, rname, irot, theta1, phi1, theta2, phi2,
225 if (luncode.ne.0)
then 226 write(luncode,
'(''{'')')
227 call rtocp(
'theta1',theta1)
228 call rtocp(
'phi1',phi1)
229 call rtocp(
'theta2',theta2)
230 call rtocp(
'phi2',phi2)
231 call rtocp(
'theta3',theta3)
232 call rtocp(
'phi3',phi3)
233 write(luncode,1000) irot
234 1000
format(
'G4gsrotm(irot=',i5,
235 +
',theta1,phi1,theta2,phi2,theta3,phi3);')
236 write(luncode,
'(''}'')')
242 subroutine gsdvn(name, moth, ndiv, iaxis)
244 subroutine ksdvn(name, moth, ndiv, iaxis)
249 character name*4, moth*4
252 #include "G3toG4.inc" 253 data rname /
'GSDVN '/
257 if (dogeom)
call gsdvn(name, moth, ndiv, iaxis)
259 if (lunlist.ne.0)
then 261 +
'(a4,1x,a6,1x,a4,1x,a4,i5,i3)')
262 + context, rname, name, moth, ndiv, iaxis
264 if (luncode.ne.0)
then 265 write(luncode,
'(''{'')')
266 write(luncode,1000) name, moth, ndiv, iaxis
267 1000
format(
'G4gsdvn(name="',
a,
'",moth="',
a,
'",ndiv=',i3,
269 write(luncode,
'(''}'')')
275 subroutine gsdvt(name, moth, step, iaxis, numed, ndvmx)
277 subroutine ksdvt(name, moth, step, iaxis, numed, ndvmx)
282 character name*4, moth*4
284 integer iaxis, numed, ndvmx
286 #include "G3toG4.inc" 287 data rname /
'GSDVT '/
291 if (dogeom)
call gsdvt(name, moth, step, iaxis, numed, ndvmx)
293 if (lunlist.ne.0)
then 295 +
'(a4,1x,a6,1x,a4,1x,a4,(1x,e16.8),3i5)')
296 + context, rname, name, moth, step, iaxis, numed, ndvmx
298 if (luncode.ne.0)
then 299 write(luncode,
'(''{'')')
300 call rtocp(
'step',step)
301 write(luncode,1000) name,moth,iaxis,numed,ndvmx
302 1000
format(
'G4gsdvt(name="',
a,
'",moth="',
a,
'",step,iaxis=',
303 + i1,
',numed=',i4,
',ndvmx=',i4,
');')
304 write(luncode,
'(''}'')')
310 subroutine gsdvx(name, moth, ndiv, iaxis, step, c0, numed, ndvmx)
312 subroutine ksdvx(name, moth, ndiv, iaxis, step, c0, numed, ndvmx)
317 character name*4, moth*4
318 integer ndiv, iaxis, numed, ndvmx
321 #include "G3toG4.inc" 322 data rname /
'GSDVX '/
326 if (dogeom)
call gsdvx(name, moth, ndiv, iaxis, step, c0, numed,
329 if (lunlist.ne.0)
then 331 +
'(a4,1x,a6,1x,a4,1x,a4,i5,i3,2(1x,e16.8),2i5)')
332 + context, rname, name, moth, ndiv, iaxis,step, c0,
335 if (luncode.ne.0)
then 336 write(luncode,
'(''{'')')
337 call rtocp(
'step',step)
339 write(luncode,1000) name,moth,ndiv,iaxis,numed,ndvmx
340 1000
format(
'G4gsdvx(name="',
a,
'",moth="',
a,
'",ndiv=',i3,
',iaxis=',
341 + i1,
',step,c0,numed=',i4,
',ndvmx=',i4,
');')
342 write(luncode,
'(''}'')')
348 subroutine gsdvn2(name, moth, ndiv, iaxis, c0, numed)
350 subroutine ksdvn2(name, moth, ndiv, iaxis, c0, numed)
355 character name*4, moth*4
356 integer ndiv, iaxis, numed
359 #include "G3toG4.inc" 360 data rname /
'GSDVN2'/
364 if (dogeom)
call gsdvn2(name, moth, ndiv, iaxis, c0, numed)
366 if (lunlist.ne.0)
then 368 +
'(a4,1x,a6,1x,a4,1x,a4,i5,i3,(1x,e16.8),i5)')
369 + context, rname, name, moth, ndiv, iaxis, c0, numed
371 if (luncode.ne.0)
then 372 write(luncode,
'(''{'')')
374 write(luncode, 1000) name,moth,ndiv,iaxis,numed
375 1000
format(
'G4gsdvn2(name="',
a,
'",moth="',
a,
'",ndiv=',i3,
',iaxis=',
376 + i1,
',c0,numed=',i4,
');')
377 write(luncode,
'(''}'')')
383 subroutine gsdvt2(name, moth, step, iaxis, c0, numed, ndvmx)
385 subroutine ksdvt2(name, moth, step, iaxis, c0, numed, ndvmx)
390 character name*4, moth*4
391 integer iaxis, numed, ndvmx
394 #include "G3toG4.inc" 395 data rname /
'GSDVT2'/
399 if (dogeom)
call gsdvt2(name, moth, step, iaxis, c0, numed, ndvmx)
401 if (lunlist.ne.0)
then 403 +
'(a4,1x,a6,1x,a4,1x,a4,(1x,e16.8),i3,(1x,e16.8),2i5)')
404 + context, rname, name, moth, step, iaxis, c0, numed, ndvmx
406 if (luncode.ne.0)
then 407 write(luncode,
'(''{'')')
408 call rtocp(
'step',step)
410 write(luncode,1000) name,moth,iaxis,numed,ndvmx
411 1000
format(
'G4gsdvt2(name="',
a,
'",moth="',
a,
'",step,iaxis=',
412 + i1,
',c0,numed=',i4,
',ndvmx=',i4,
');')
413 write(luncode,
'(''}'')')
419 subroutine gsmate(imate, name, a, z, dens, radl, absl, ubf, nwbf)
421 subroutine ksmate(imate, name, a, z, dens, radl, absl, ubf, nwbf)
427 integer imate, nwbf, k
428 real a, z, dens, radl, absl, ubf(nwbf)
429 character rname*6, fmt*150
430 #include "G3toG4.inc" 431 data rname /
'GSMATE'/
435 if (dogeom)
call gsmate
436 + (imate, name, a, z, dens, radl, absl, ubf, nwbf)
438 if (lunlist.ne.0)
then 439 write(fmt,
'(A,I3,A)')
440 >
'(a4,1x,a6,i5,1x,''"'',a,''"'',4(1x,e16.8),i3,',
441 >
max(nwbf,1),
'(1x,e16.8))' 443 + context, rname, imate, name, a, z, dens, radl,
444 + nwbf, (ubf(k), k=1,nwbf)
446 if (luncode.ne.0)
then 447 write(luncode,
'(''{'')')
450 call rtocp(
'dens',dens)
451 call rtocp(
'radl',radl)
453 write(luncode,1000) imate, name, nwbf
454 1000
format(
'G4gsmate(imate=',i4,
',name="',a,
455 +
'",a,z,dens,radl,npar=',i4,
',par);')
456 write(luncode,
'(''}'')')
462 subroutine gsmixt(imate, name, a, z, dens, nlmat, wmat)
464 subroutine ksmixt(imate, name, a, z, dens, nlmat, wmat)
470 integer imate, nlmat, k, nlmata
471 real a(*), z(*), dens, wmat(*)
472 character rname*6, fmt*150
473 #include "G3toG4.inc" 474 data rname /
'GSMIXT'/
478 if (dogeom)
call gsmixt
479 + (imate, name, a, z, dens, nlmat, wmat)
481 if (lunlist.ne.0)
then 483 write(fmt,
'(A,I3,A,I3,A,I3,A)')
484 +
'(a4,1x,a6,i5,1x,''"'',a,''"'',1x,e16.8,1x,i3,',
486 >
'(1x,e16.8),',
max(nlmata,1),
'(1x,e16.8),',
487 >
max(nlmata,1),
'(1x,e16.8))' 489 + context, rname, imate, name, dens,
491 + (a(k), k=1,abs(nlmat)),
492 + (z(k), k=1,abs(nlmat)),
493 + (wmat(k), k=1,abs(nlmat))
495 if (luncode.ne.0)
then 496 write(luncode,
'(''{'')')
497 call rtocp(
'dens',dens)
498 call artocp(
'aa',a,abs(nlmat))
499 call artocp(
'zz',z,abs(nlmat))
500 call artocp(
'wmat',wmat,abs(nlmat))
501 write(luncode,1000) imate,name,nlmat
502 1000
format(
'G4gsmixt(imate=',i5,
',name="',a,
503 +
'",aa,zz,dens,nlmat=',i3,
',wmat);')
504 write(luncode,
'(''}'')')
511 + itmed, name, nmat, isvol, ifield, fieldm,
512 + tmaxfd, stemax, deemax, epsil, stmin, ubuf, nwbuf)
515 + itmed, name, nmat, isvol, ifield, fieldm,
516 + tmaxfd, stemax, deemax, epsil, stmin, ubuf, nwbuf)
522 integer itmed, nmat, isvol, ifield, nwbuf, k
523 real fieldm, tmaxfd, stemax, deemax, epsil, stmin, ubuf(nwbuf)
524 character rname*6, fmt*150
525 #include "G3toG4.inc" 526 data rname /
'GSTMED'/
530 if (dogeom)
call gstmed(
531 + itmed, name, nmat, isvol, ifield, fieldm,
532 + tmaxfd, stemax, deemax, epsil, stmin, ubuf, nwbuf)
534 if (lunlist.ne.0)
then 540 write(fmt,
'(A,I3,A)')
541 >
'(a4,1x,a6,i5,1x,''"'',a,''"'',3i3,6(1x,e16.8),i3,',
542 >
max(nwbuf,1),
'(1x,e16.8))' 544 + context, rname, itmed, name, nmat, isvol, ifield, fieldm,
545 + tmaxfd, stemax, deemax, epsil, stmin,
546 + nwbuf, (ubuf(k),k=1,nwbuf)
548 if (luncode.ne.0)
then 549 write(luncode,
'(''{'')')
550 call rtocp(
'fieldm',fieldm)
551 call rtocp(
'tmaxfd',tmaxfd)
552 call rtocp(
'stemax',stemax)
553 call rtocp(
'deemax',deemax)
554 call rtocp(
'epsil',epsil)
555 call rtocp(
'stmin',stmin)
557 write(luncode,1000) itmed,name,nmat,isvol,ifield,nwbuf
558 1000
format(
'G4gstmed(itmed=',i4,
',name="',
a,
'",nmat=',i4,
559 +
',isvol=',i2,
',ifield=',i2,
',',/
560 +
' fieldm,tmaxfd,stemax,deemax,epsil,stmin,par,npar=',
562 write(luncode,
'(''}'')')
568 subroutine gstpar(itmed, chpar, parval)
570 subroutine kstpar(itmed, chpar, parval)
579 #include "G3toG4.inc" 580 data rname /
'GSTPAR'/
584 if (dogeom)
call gstpar (itmed, chpar, parval)
586 if (lunlist.ne.0)
then 588 +
'(a4,1x,a6,i5,1x,a4,(1x,e16.8))')
589 + context, rname, itmed, chpar, parval
591 if (luncode.ne.0)
then 592 write(luncode,
'(''{'')')
593 write(luncode,1000) itmed, chpar, parval
594 1000
format(
'G4gstpar(itmed=',i4,
',chpar="',
a,
'",parval=',
596 write(luncode,
'(''}'')')
603 + ipart, chpar, itrtyp, amass, charge, tlife, ub, nwb)
606 + ipart, chpar, itrtyp, amass, charge, tlife, ub, nwb)
612 integer ipart, itrtyp, nwb, k
613 real amass, charge, tlife, ub(nwb)
614 character rname*6, fmt*150
615 #include "G3toG4.inc" 616 data rname /
'GSPART'/
620 if (dogeom)
call gspart(
621 + ipart, chpar, itrtyp, amass, charge, tlife, ub, nwb)
623 if (lunlist.ne.0)
then 628 write(fmt,
'(A,I3,A)')
629 >
'(a4,1x,a6,i5,1x,''"'',a,''"'',i3,3(1x,e16.8),i3,',
632 + context, rname, ipart, chpar, itrtyp, amass, charge,
634 + nwb, (ub(k), k=1,nwb)
636 if (luncode.ne.0)
then 637 write(luncode,
'(''{'')')
638 call rtocp(
'amass',amass)
639 call rtocp(
'charge',charge)
640 call rtocp(
'tlife',tlife)
642 write(luncode,1000) ipart,chpar,itrtyp,nwb
643 1000
format(
'G4gspart(ipart=',i8,
',chpar="',
a,
'",itrtyp=',i8,
644 +
',amass,charge,'/
' tlife,par,npar=',i4,
');')
645 write(luncode,
'(''}'')')
651 subroutine gsdk(ipart, bratio, mode)
653 subroutine ksdk(ipart, bratio, mode)
658 integer ipart, mode(6)
661 #include "G3toG4.inc" 666 if (dogeom)
call gsdk(ipart, bratio, mode)
668 if (lunlist.ne.0)
then 672 +
'(a4,1x,a6,i5,i3,6(1x,e16.8),6i8)')
673 + context, rname, ipart, 6, bratio, mode
675 if (luncode.ne.0)
then 676 write(luncode,
'(''{'')')
677 call artocp(
'bratio',bratio,6)
678 call aitocp(
'mode',mode,6)
679 write(luncode,1000) ipart
680 1000
format(
'G4gsdk(ipart=',i8,
',bratio,mode);')
681 write(luncode,
'(''}'')')
687 subroutine gsdet(chset, chdet, nv, chnam, nbits, idtyp, nwhi,
690 subroutine ksdet(chset, chdet, nv, chnam, nbits, idtyp, nwhi,
696 integer nv, nbits(nv), idtyp, nwhi, nwdi, iset, idet, k
697 character rname*6, chset*4, chdet*4, chnam(nv)*4, fmt*150
698 #include "G3toG4.inc" 699 data rname /
'GSDET '/
703 if (dogeom)
call gsdet(chset, chdet, nv, chnam, nbits, idtyp,
704 + nwhi, nwdi, iset, idet)
706 if (lunlist.ne.0)
then 711 write(fmt,
'(A,I3,A,I3,A)')
'(a4,1x,a6,1x,a4,1x,a4,i5,',
712 >
max(nv,1),
'(1x,a4),',
max(nv,1),
'i10,i10,2i5)' 714 + context, rname, chset, chdet, nv, (chnam(k), k=1,nv),
715 + (nbits(k), k=1,nv), idtyp, nwhi, nwdi
717 if (luncode.ne.0)
then 718 write(luncode,
'(''{'')')
719 call astocp(
'chnam',chnam,nv)
720 call aitocp(
'nbits',nbits,nv)
721 write(luncode,1000) chset, chdet, nv, idtyp, nwhi, nwdi
722 1000
format(
'G4gsdet(chset="',
a,
'",chdet="',
a,
'",nv=',i3,
723 +
',chnam,nbits,idtyp=',i8,
','/
724 +
' nwhi=',i8,
',nwdi=',i8,
');')
725 write(luncode,
'(''}'')')
731 subroutine gsdetv(chset, chdet, idtyp, nwhi, nwdi, iset, idet)
733 subroutine ksdetv(chset, chdet, idtyp, nwhi, nwdi, iset, idet)
738 integer idtyp, nwhi, nwdi, iset, idet
739 character rname*6, chset*4, chdet*4
740 #include "G3toG4.inc" 741 data rname /
'GSDETV'/
745 if (dogeom)
call gsdetv(chset, chdet, idtyp,
746 + nwhi, nwdi, iset, idet)
748 if (lunlist.ne.0)
then 750 +
'(a4,1x,a6,1x,a4,1x,a4,i10,2i5)')
751 + context, rname, chset, chdet, idtyp, nwhi, nwdi
753 if (luncode.ne.0)
then 754 write(luncode,
'(''{'')')
755 write(luncode,1000) chset, chdet, idtyp, nwhi, nwdi
756 1000
format(
'G4gsdetv(chset="',
a,
'",chdet="',
a,
'",idtyp=',i8,
757 +
',nwhi=',i8,
',nwdi=',i8,
');')
758 write(luncode,
'(''}'')')
764 subroutine gsdeta(chset, chdet, chali, nwhi, nwdi, iali)
766 subroutine ksdeta(chset, chdet, chali, nwhi, nwdi, iali)
771 integer nwhi, nwdi, iali
772 character rname*6, chset*4, chdet*4, chali*4
773 #include "G3toG4.inc" 774 data rname /
'GSDETA'/
778 if (dogeom)
call gsdeta(chset, chdet, chali, nwhi, nwdi, iali)
780 if (lunlist.ne.0)
then 782 +
'(a4,1x,a6,1x,a4,1x,a4,1x,a4,2i5)')
783 + context, rname, chset, chdet, chali, nwhi, nwdi
785 if (luncode.ne.0)
then 786 write(luncode,
'(''{'')')
787 write(luncode,1000) chset, chdet, chali, nwhi, nwdi
788 1000
format(
'G4gsdeta(chset="',
a,
'",chdet="',
a,
'",chali="',
a,
789 +
'",nwhi=',i8,
',nwdi=',i8,
');')
790 write(luncode,
'(''}'')')
796 subroutine gsdeth(chset, chdet, nh, chnam, nbits, orig, fact)
798 subroutine ksdeth(chset, chdet, nh, chnam, nbits, orig, fact)
803 integer nh, nbits(nh), k
804 real orig(nh), fact(nh)
805 character rname*6, chset*4, chdet*4, chnam(nh)*4, fmt*150
806 #include "G3toG4.inc" 807 data rname /
'GSDETH'/
811 if (dogeom)
call gsdeth(chset, chdet, nh, chnam, nbits,
814 if (lunlist.ne.0)
then 820 write(fmt,
'(A,I3,A,I3,A,I3,A,I3,A)')
821 >
'(a4,1x,a6,1x,a4,1x,a4,i5,',
max(nh,1),
'(1x,a4),',
822 >
max(nh,1),
'i5,',
max(nh,1),
'(1x,e16.8),',
max(nh,1),
825 + context, rname, chset, chdet, nh, (chnam(k), k=1,nh),
826 + (nbits(k), k=1,nh), (orig(k), k=1,nh), (fact(k), k=1,nh)
828 if (luncode.ne.0)
then 829 write(luncode,
'(''{'')')
830 call astocp(
'chnam',chnam,nh)
831 call aitocp(
'nbits',nbits,nh)
832 call artocp(
'orig',orig,nh)
833 call artocp(
'fact',fact,nh)
834 write(luncode,1000) chset,chdet,nh
835 1000
format(
'G4gsdeth(chset="',
a,
'",chdet="',
a,
'",nh=',i4,
836 +
',chnam,nbits,orig,fact);')
837 write(luncode,
'(''}'')')
843 subroutine gsdetd(chset, chdet, nd, chnam, nbits)
845 subroutine ksdetd(chset, chdet, nd, chnam, nbits)
850 integer nd, nbits(nd), k
851 character rname*6, chset*4, chdet*4, chnam(nd)*4, fmt*150
852 #include "G3toG4.inc" 853 data rname /
'GSDETD'/
857 if (dogeom)
call gsdetd(chset, chdet, nd, chnam, nbits)
859 if (lunlist.ne.0)
then 864 write(fmt,
'(A,I3,A,I3,A)')
865 +
'(a4,1x,a6,1x,a4,1x,a4,i5,',
max(nd,1),
'(1x,a4),',
868 + context, rname, chset, chdet, nd, (chnam(k), k=1,nd),
871 if (luncode.ne.0)
then 872 write(luncode,
'(''{'')')
873 call astocp(
'chnam',chnam,nd)
874 call aitocp(
'nbits',nbits,nd)
875 write(luncode,1000) chset, chdet, nd
876 1000
format(
'G4gsdetd(chset="',
a,
'",chdet="',
a,
'",nd=',i4,
878 write(luncode,
'(''}'')')
884 subroutine gsdetu(chset, chdet, nupar, upar)
886 subroutine ksdetu(chset, chdet, nupar, upar)
893 character rname*6, chset*4, chdet*4, fmt*150
894 #include "G3toG4.inc" 895 data rname /
'GSDETU'/
899 if (dogeom)
call gsdetu(chset, chdet, nupar, upar)
901 if (lunlist.ne.0)
then 905 write(fmt,
'(A,I3,A)')
906 +
'(a4,1x,a6,1x,a4,1x,a4,i5,',
max(nupar,1),
'(1x,e16.8))' 908 + context, rname, chset, chdet, nupar, (upar(k), k=1,nupar)
910 if (luncode.ne.0)
then 911 write(luncode,
'(''{'')')
913 write(luncode,1000) chset, chdet, nupar
914 1000
format(
'G4gsdetu(chset="',
a,
'",chdet="',
a,
'",npar=',
916 write(luncode,
'(''}'')')
930 #include "G3toG4.inc" 931 data rname /
'GGCLOS'/
935 if (dogeom)
call ggclos
937 if (lunlist.ne.0)
then 938 write(lunlist,
'(a4,1x,a6)') context, rname
941 if (luncode.ne.0)
then 942 write(luncode,
'(''//GeoMgr->CloseGeometry();'')')
943 write(luncode,
'(''}'')')
955 character name*4, shape*4
956 real ph, par(*), tt, raddeg
959 raddeg = 180./3.1415926
961 if (shape(1:3).eq.
'BOX'.and.npar.ne.3)
then 962 print *,
'!! error, BOX with ',npar,
' parameters, vol ',name
964 if (shape.eq.
'TRD1'.and.npar.ne.4)
then 965 print *,
'!! error, TRD1 with ',npar,
' parameters, vol ',name
967 if (shape.eq.
'TRD2'.and.npar.ne.5)
then 968 print *,
'!! error, TRD2 with ',npar,
' parameters, vol ',name
970 if (shape.eq.
'TRAP'.and.npar.ne.35.and.npar.ne.11)
then 972 print *,
'!! error, TRAP with ',npar,
' parameters, vol ',name
974 if (shape.eq.
'TUBE'.and.npar.ne.3)
then 975 print *,
'!! error, TUBE with ',npar,
' parameters, vol ',name
977 if (shape.eq.
'TUBS'.and.npar.ne.5)
then 978 print *,
'!! error, TUBS with ',npar,
' parameters, vol ',name
980 if (shape.eq.
'CONE'.and.npar.ne.5)
then 981 print *,
'!! error, CONE with ',npar,
' parameters, vol ',name
983 if (shape.eq.
'CONS'.and.npar.ne.7)
then 984 print *,
'!! error, CONS with ',npar,
' parameters, vol ',name
986 if (shape.eq.
'SPHE'.and.npar.ne.6)
then 987 print *,
'!! error, SPHE with ',npar,
' parameters, vol ',name
989 if (shape.eq.
'PARA'.and.npar.ne.6)
then 990 print *,
'!! error, PARA with ',npar,
' parameters, vol ',name
992 if (shape.eq.
'PARA')
then 997 if (par(5).ne.0.) ph = atan2(par(6),par(5))*raddeg
998 tt = sqrt(par(5)**2+par(6)**2)
999 par(4) = atan(par(4))*raddeg
1000 if (par(4).gt.90.0) par(4) = par(4)-180.0
1001 par(5) = atan(tt)*raddeg
1002 if (ph.lt.0.0) ph = ph + 360.0
1005 if (shape.eq.
'TRAP')
then 1011 if (par(2).ne.0.) ph = atan2(par(3),par(2))*raddeg
1012 tt = sqrt(par(2)**2+par(3)**2)
1013 par(2) = atan(tt)*raddeg
1014 if (ph.lt.0.0) ph = ph+360.0
1016 par(7) = atan(par(7))*raddeg
1017 if (par(7).gt.90.0) par(7) = par(7)-180.0
1018 par(11)= atan(par(11))*raddeg
1019 if (par(11).gt.90.0) par(11) = par(11)-180.0
subroutine kspart(ipart, chpar, itrtyp, amass, charge, tlife, ub, nwb)
subroutine ksdvx(name, moth, ndiv, iaxis, step, c0, numed, ndvmx)
subroutine ksdvn(name, moth, ndiv, iaxis)
subroutine ksposp(name, num, moth, x, y, z, irot, only, par, npar)
subroutine ksmixt(imate, name, a, z, dens, nlmat, wmat)
subroutine ksmate(imate, name, a, z, dens, radl, absl, ubf, nwbf)
subroutine astocp(string, ac, n)
subroutine ksdetu(chset, chdet, nupar, upar)
subroutine artocp(string, ax, n)
subroutine rtocp(string, x)
subroutine ksdetv(chset, chdet, idtyp, nwhi, nwdi, iset, idet)
subroutine aitocp(string, ai, n)
subroutine ksvolu(name, shape, nmed, par, npar, ivol)
subroutine ksdeta(chset, chdet, chali, nwhi, nwdi, iali)
subroutine ksdvt(name, moth, step, iaxis, numed, ndvmx)
subroutine checkshape(name, shape, par, npar)
subroutine ksrotm(irot, theta1, phi1, theta2, phi2, theta3, phi3)
subroutine ksatt(name, attr, ival)
subroutine kspos(name, num, moth, x, y, z, irot, only)
void print(G4double elem)
subroutine ksdet(chset, chdet, nv, chnam, nbits, idtyp, nwhi, nwdi, iset, idet)
subroutine ksdetd(chset, chdet, nd, chnam, nbits)
subroutine ksdvn2(name, moth, ndiv, iaxis, c0, numed)
subroutine kstmed(itmed, name, nmat, isvol, ifield, fieldm, tmaxfd, stemax, deemax, epsil, stmin, ubuf, nwbuf)
subroutine ksdk(ipart, bratio, mode)
subroutine kstpar(itmed, chpar, parval)
subroutine g3ldpar(par, npar)
subroutine ksdeth(chset, chdet, nh, chnam, nbits, orig, fact)
subroutine ksdvt2(name, moth, step, iaxis, c0, numed, ndvmx)