35 character(len=80)::buffer
41 if (tmax .le. 100.0e-6)
then
43 if (tmax .gt. 10.0e-6)
then
48 if ((mod(iptime,jdiv).eq.0) .and.
49 & (iptold .ne. iptime))
then
51 write (buffer, 212) iptime
52 call writebuffer(buffer)
54 212
format (
' Time = ',i5,
' ns')
55 else if ((tmax.gt.100.0e-6).and.(tmax.le.100.0e-3))
then
57 if (tmax .gt. 10.0e-3)
then
62 if ((mod(iptime,jdiv).eq.0) .and.
63 & (iptold .ne. iptime))
then
64 write (buffer, 220) iptime
66 call writebuffer(buffer)
68 220
format (
' Time = ',i5,
' microsec')
71 if (tmax .gt. 10.0)
then
76 if ((mod(iptime,jdiv).eq.0) .and.
77 & (iptold .ne. iptime))
then
78 write (buffer, 221) iptime
80 call writebuffer(buffer)
82 221
format (
' Time = ',i5,
' msec')
98 node_num = indexb(1,icb)
99 iexit_type = indexb(2,icb)
100 icx = (node_num-2)*k + 1 + nbe(icb)
101 icy = (node_num-1)*k + 1 + nbe(icb)
105 if (iexit_type .eq. topbranch)
then
106 zib(node_num-1,1) = -zir(1,icbp)
107 zib(node_num,1) = -zib(node_num-1,1)
110 vsour(icb) = v(node_num-1,1) - v(node_num,1)
114 zib(node_num,1) = -zir(1,icbp)
116 vsour(icb) = v(node_num,1)
132 do imitl = 1, nmitline
133 if (indexmitl(5,imitl) .eq. mitline)
then
135 else if (indexmitl(5,imitl) .eq. pmitline)
then
158 nele = nrow * k * ntot
170 nzz = nrow * k * nadd_array(ib)
187 a(ny+3) = rht*
c(i,ib) + 0.5*g(i,ib)
191 a(ny+7) = (rht*
c(i,ib) - 0.5*g(i,ib)) * v(i,ib)
192 & - 0.5 * (zir(i,ib)-zir(i-1,ib)) + 0.5*zib(i,ib)
201 a(ny+4) = rht*zlr(i,ib) + 0.5*rr(i,ib)
205 a(ny+7) = (rht*zlr(i,ib) - 0.5*rr(i,ib)) * zir(i,ib)
206 & + 0.5*(v(i,ib)-v(i+1,ib))
231 if (iblock1 .eq. voltsource)
then
241 else if (iblock1 .eq. currsource)
then
247 any3 = 0.5*g(1,1) + rht*
c(1,1)
248 if (abs(any3) .lt. 1.0e-6)
then
254 a(ny+7) = (-0.5*g(1,1) + rht*
c(1,1))*v(1,1) - 0.5*zir(1,1)
276 if ((ib .eq. 1) .and. (iin(1,1,1) .eq. currsource))
then
285 any4 = rht*zlr(1,ib) + 0.5*rr(1,ib)
286 if (abs(any4) .lt. 1.0e-6)
then
292 a(ny+7) = (rht*zlr(1,ib) - 0.5*rr(1,ib)) * zir(1,ib)
293 & + 0.5*(v(1,ib)-v(2,ib))
300 ny = (nr2-2)*nrow + nzz
305 if_vendsource = ivbranch_end(ib)
306 if_cendsource = icbranch_end(ib)
310 if (if_vendsource .gt. 0)
then
319 any3 = rht*
c(nrx,ib) + 0.5*g(nrx,ib)
320 if (abs(any3) .lt. 1.0e-6)
then
326 a(ny+7) = (rht*
c(nrx,ib) - 0.5*g(nrx,ib)) * v(nrx,ib)
327 & - 0.5*(zir(nrx,ib)-zir(nrx-1,ib))
333 ny = (nr2-1)*nrow + nzz
337 if (if_cendsource .gt. 0)
then
338 itypcs = itypcend(if_cendsource)
339 if (itypcs .eq. cendsource)
then
343 else if (itypcs .eq. csclsource)
then
384 if (i51 .gt. nbv(l)) l1=l1+1
396 l13 = (i51-1)*nrow*k+i52*nrow
404 if ((nb .gt. 1) .and. (i51 .le. nbv(nbm)))
then
416 if (a(ic) .ne. 0.0)
then
421 a(i55) = a(i55)-a(if)*aic
426 if ((nb .gt. 1) .and. (i51 .le. nbv(nbm)))
then
430 bb(ip) = bb(ip)-bb(iq)*aic
437 if (i51.eq.n) go to 66
444 if (a(ig) .ne. 0.0)
then
450 a(i58) = a(i58)-a(ij)*aig
452 a(ih) = a(ih)-a(iib)*aig
456 if ((nb .gt. 1) .and. (i51 .le. nbv(nbm)))
then
460 bb(ip) = bb(ip)-bb(iq)*aig
469 if ((nb .gt. 1) .and. (i51 .le. nbv(nbm)))
then
473 l11 = nbv(l3)*nrow*k+k+k
475 if (cc(iq) .ne. 0.0)
then
478 if (ip.gt.nbe(l3+1)) ip=nbe(l3+1)
482 cc(l4) = cc(l4)-cmx*a(iax)
488 if (l1 .le. l3m)
then
492 cc(iq) = cc(iq)-cmx*bb(ip)
500 a(iq) = a(iq)-cmx*bb(ip)
505 if (l3p .le. nbm)
then
509 bb(iq) = bb(iq)-cmx*bb(ip)
516 iq = nbv(l3)*nrow*k+nrow
517 a(iq) = a(iq)-cmx*a(ip)
541 sum = sum-a(j2)*x(ji)
563 sum = sum-a(j5)*x(je)
567 if (l1 .le. nbv(nbm))
then
570 if(l1.gt.nbv(ib)) l2=l2+1
573 if (l2 .le. nbm)
then
577 sum = sum-bb(iq)*x(ip)
589 nzz = nadd_array(ib) * k
593 j = (i-1)*2 + 1 + nzz
613 if (icycle .ge. ncycle)
then
615 call
cycle_print(i2, tim-0.5*ht, esour, eind, ecap, econ,
616 & eres, elossind, elosscap, error)
627 zirold(i,ib)=zir(i,ib)
628 zir(i,ib) = zirn(i,ib)
c *****************************************************************************c Common blocks for SCREAMER output and tabling c & numout
subroutine set_sclcurr(time, volt, index, current)
subroutine set_voltage(time, index, voltage)
subroutine build_out(tim, timehalf, timestep, rtimstep)
subroutine cycle_print(icycle, time, esour, eind, ecap, econ, eres, elossind, elosscap, error)
subroutine reset_pmitl(index)
c *****************************************************************************c Various format statements for read_screamer_data output c To get these into made format to be characters c for each line c
subroutine set_current(time, index, current)
subroutine reset_mitl(index)