Screamer Project  V3.3.1
Screamer Structure
 All Files Functions Variables
models.f
Go to the documentation of this file.
1  subroutine get_model
2 
3  include 'zdemparm.h'
4  include 'zdemmax.h'
5  include 'zdemwork.h'
6  include 'zdemout.h'
7  include 'zdemcomm.h'
8  include 'zdemvars.h'
9 c
10 c -----------------------------------------------------------------------------
11 c
12 c jam, 11/01/04, created get_model subroutine from zdem.f for more modularity
13 c
14 c -------------------------modifications--------------------------------
15 c
16 c 2012-04-05 rbs: included the new rwall model, r2wall based on stygar's
17 c latest paper.
18 c 2012-04-10 RBS: Caught the incorrect use of the jth node in the rr
19 c value of resistance used in the older RWALL model.
20 c 2014-03-11 RBS: Added a variable inductor in the variable resistor
21 c table model
22 c
23 c -----------------------------------------------------------------------------
24 c write(*,*) 'nvar = ', nvar
25  do 106 ivar = 1, nvar
26 c write(*,*) 'starting do loop...'
27  inode=indexv(1,ivar)
28  ielement=indexv(2,ivar)
29  ibranch=indexv(3,ivar)
30  imodel=ivar_type(ivar)
31  iblock=ivar_block(ivar)
32  iblock_num=ivar_block_num(ivar)
33 c write(*,*) 'get_model: imodel = ', imodel
34 c User supplied model, different calls depending on element type.
35 c
36 .eq..or. if ((imodel user_model)
37 .eq..or. + (imodel user1_model)
38 .eq..or. + (imodel user2_model)
39 .eq..or. + (imodel user3_model)
40 .eq. + (imodel user4_model)) then
41 c
42 .eq. if (ielement r1_var) then
43  currentin = zir(inode-1,ibranch)
44  currentout = zir(inode,ibranch)
45  currentbr = zib(inode,ibranch)
46  voltager1 = v(inode,ibranch)
47 .eq. if (imodel user_model) then
48  call user (ht,timehalf,currentin,currentout,currentbr,
49  & voltager1, gvar, dummyv1, dummyv2)
50 .eq. elseif (imodel user1_model) then
51  call user1 (ht,timehalf,currentin,currentout,currentbr,
52  & voltager1, gvar, dummyv1, dummyv2)
53 .eq. elseif (imodel user2_model) then
54  call user2 (ht,timehalf,currentin,currentout,currentbr,
55  & voltager1, gvar, dummyv1, dummyv2)
56 .eq. elseif (imodel user3_model) then
57  call user3 (ht,timehalf,currentin,currentout,currentbr,
58  & voltager1, gvar, dummyv1, dummyv2)
59 .eq. elseif (imodel user4_model) then
60  call user4 (ht,timehalf,currentin,currentout,currentbr,
61  & voltager1, gvar, dummyv1, dummyv2)
62  endif
63  g(inode,ibranch) = gvar
64 c
65 .eq. else if (ielement c1_var) then
66  currentin = zir(inode-1,ibranch)
67  currentout = zir(inode,ibranch)
68  currentbr = zib(inode,ibranch)
69  voltagec1 = v(inode,ibranch)
70 .eq. if (imodel user_model) then
71  call user (ht,timehalf,currentin,currentout,currentbr,
72  & voltagec1, cvar, dcdt, dcvdv)
73 .eq. elseif (imodel user1_model) then
74  call user1(ht,timehalf,currentin,currentout,currentbr,
75  & voltagec1, cvar, dcdt, dcvdv)
76 .eq. elseif (imodel user2_model) then
77  call user2 (ht,timehalf,currentin,currentout,currentbr,
78  & voltagec1, cvar, dcdt, dcvdv)
79 .eq. elseif (imodel user3_model) then
80  call user3 (ht,timehalf,currentin,currentout,currentbr,
81  & voltagec1, cvar, dcdt, dcvdv)
82 .eq. elseif (imodel user4_model) then
83  call user4 (ht,timehalf,currentin,currentout,currentbr,
84  & voltagec1, cvar, dcdt, dcvdv)
85  endif
86  c(inode,ibranch) = dcvdv
87  cdot(inode,ibranch) = dcdt
88  cechk(inode,ibranch) = cvar
89 c
90 .eq. else if (ielement r2_var) then
91  voltagein = v(inode,ibranch)
92  voltageout = v(inode+1,ibranch)
93  currentr2 = zir(inode,ibranch)
94 .eq. if (imodel user_model) then
95  call user (ht,timehalf,voltagein,voltageout,currentr2,
96  & dummyp4, rvar, dummyv2, dummyv3)
97 .eq. elseif (imodel user1_model) then
98  call user1 (ht,timehalf,voltagein,voltageout,currentr2,
99  & dummyp4, rvar, dummyv2, dummyv3)
100 .eq. elseif (imodel user2_model) then
101  call user2 (ht,timehalf,voltagein,voltageout,currentr2,
102  & dummyp4, rvar, dummyv2, dummyv3)
103 .eq. elseif (imodel user3_model) then
104  call user3 (ht,timehalf,voltagein,voltageout,currentr2,
105  & dummyp4, rvar, dummyv2, dummyv3)
106 .eq. elseif (imodel user4_model) then
107  call user4 (ht,timehalf,voltagein,voltageout,currentr2,
108  & dummyp4, rvar, dummyv2, dummyv3)
109  endif
110  rr(inode,ibranch) = rvar
111 c
112 .eq. else if (ielement l2_var) then
113  voltagein = v(inode,ibranch)
114  voltageout = v(inode+1,ibranch)
115  currentl2 = zir(inode,ibranch)
116 .eq. if (imodel user_model) then
117  call user (ht,timehalf,voltagein,voltageout,currentl2,
118  & dummyp4, lvar, dldt, dlidi)
119 .eq. elseif (imodel user1_model) then
120  call user1(ht,timehalf,voltagein,voltageout,currentl2,
121  & dummyp4, lvar, dldt, dlidi)
122 .eq. elseif (imodel user2_model) then
123  call user2 (ht,timehalf,voltagein,voltageout,currentl2,
124  & dummyp4, lvar, dldt, dlidi)
125 .eq. elseif (imodel user3_model) then
126  call user3 (ht,timehalf,voltagein,voltageout,currentl2,
127  & dummyp4, lvar, dldt, dlidi)
128 .eq. elseif (imodel user4_model) then
129  call user4 (ht,timehalf,voltagein,voltageout,currentl2,
130  & dummyp4, lvar, dldt, dlidi)
131  endif
132  zlr(inode,ibranch) = dlidi
133  zlrdot(inode,ibranch) = dldt
134  zlrechk(inode,ibranch) = lvar
135 c
136 .eq. else if (ielement r3_var) then
137  jnode = inode + 1
138  currentin = zir(inode,ibranch)
139  currentout = zir(jnode,ibranch)
140  currentbr = zib(jnode,ibranch)
141  voltager3 = v(jnode,ibranch)
142 .eq. if (imodel user_model) then
143  call user (ht,timehalf,currentin,currentout,currentbr,
144  & voltager3, gvar, dummyv2, dummyv3)
145 .eq. elseif (imodel user1_model) then
146  call user1 (ht,timehalf,currentin,currentout,currentbr,
147  & voltager3, gvar, dummyv2, dummyv3)
148 .eq. elseif (imodel user2_model) then
149  call user2 (ht,timehalf,currentin,currentout,currentbr,
150  & voltager3, gvar, dummyv2, dummyv3)
151 .eq. elseif (imodel user3_model) then
152  call user3 (ht,timehalf,currentin,currentout,currentbr,
153  & voltager3, gvar, dummyv2, dummyv3)
154 .eq. elseif (imodel user4_model) then
155  call user4 (ht,timehalf,currentin,currentout,currentbr,
156  & voltager3, gvar, dummyv2, dummyv3)
157  endif
158  g(jnode,ibranch) = gvar
159 c
160 .eq. else if (ielement c3_var) then
161  jnode = inode + 1
162  currentin = zir(inode,ibranch)
163  currentout = zir(jnode,ibranch)
164  currentbr = zib(jnode,ibranch)
165  voltagec3 = v(jnode,ibranch)
166 .eq. if (imodel user_model) then
167  call user (ht,timehalf,currentin,currentout,currentbr,
168  & voltagec3, cvar, dcdt, dcvdv)
169 .eq. elseif (imodel user1_model) then
170  call user1 (ht,timehalf,currentin,currentout,currentbr,
171  & voltagec3, cvar, dcdt, dcvdv)
172 .eq. elseif (imodel user2_model) then
173  call user2 (ht,timehalf,currentin,currentout,currentbr,
174  & voltagec3, cvar, dcdt, dcvdv)
175 .eq. elseif (imodel user3_model) then
176  call user3 (ht,timehalf,currentin,currentout,currentbr,
177  & voltagec3, cvar, dcdt, dcvdv)
178 .eq. elseif (imodel user4_model) then
179  call user4 (ht,timehalf,currentin,currentout,currentbr,
180  & voltagec3, cvar, dcdt, dcvdv)
181  endif
182  c(jnode,ibranch) = dcvdv
183  cdot(jnode,ibranch) = dcdt
184  cechk(jnode,ibranch) = cvar
185  end if
186 c
187 c The code which follows deals with the USER variables. Values for user
188 c variables are passed to this main program via the /uservar/ common
189 c block
190 c
191 c Save the values of the user variables for this time step
192 c into the semi-static uservars array
193 c
194  uservars(iblock_num,ibranch,1) = u1
195  uservars(iblock_num,ibranch,2) = u2
196  uservars(iblock_num,ibranch,3) = u3
197  uservars(iblock_num,ibranch,4) = u4
198  uservars(iblock_num,ibranch,5) = u5
199  uservars(iblock_num,ibranch,6) = u6
200  uservars(iblock_num,ibranch,7) = u7
201  uservars(iblock_num,ibranch,8) = u8
202  uservars(iblock_num,ibranch,9) = u9
203  uservars(iblock_num,ibranch,10) = u10
204 c
205 c------------------------------------------------------------------------
206 c Variable Resistor Table model -- Added 4/6/89, KLF
207 c Variable Resistor/Inductor Table Model Added 2014-03-11 RBS
208 c Valid for R1 (G1), R2, or R3 (G3), or L2.
209 c I am leaving the table value as rvar even though it is lvar
210 c in the variable inductance case.
211 c
212 .eq. else if (imodel tab_model) then
213 c
214 c Increment counter for table models, and get resistance from
215 c appropriate table
216 c
217  itab_counter = itab_counter+1
218  call get_tablem_value (timehalf, itab_counter, rvar, drdt)
219 c
220 .eq. if (ielement r1_var) then
221  g(inode,ibranch) = 1.0/(abs(rvar)+1.0e-20)
222 .eq. else if (ielement r2_var) then
223  rr(inode,ibranch) = rvar
224 .eq. else if (ielement r3_var) then
225  jnode = inode + 1
226  g(jnode,ibranch) = 1.0/(abs(rvar)+1.0e-20)
227 .eq. else if (ielement l2_var) then
228 c L for circuit solver
229 c
230  zlr(inode,ibranch) = rvar
231 c
232 c dL/dt for energy check (0.5*zlrdot*I*I=power dissipated)
233 c Note that we are subtracting this quantity since we will add
234 c 2 times this amount into the power dissipated in the variable resistor
235 c and what we really need is (+0.5*dldt*I*I) dissipated.
236 c
237  zlrdot(inode,ibranch) = -1.0*drdt
238 c
239 c L for energy check
240 c
241  zlrechk(inode,ibranch) = rvar
242 c
243 c R(=dL/dt) for circuit solver which will also be used to dissipate
244 c power at the rate of R*I*I=(dldt*I*I) in the energy check (and we
245 c cannot override that calculation).
246 c
247  rr(inode,ibranch) = drdt
248 
249  end if
250 c
251 c------------------------------------------------------------------------
252 c Gas switch model.
253 c Valid for R1 (G1), R2, or R3 (G3).
254 c
255 .eq. else if (imodel exp_model) then
256 c write(*,*) 'gas switch model'
257 
258  call sexp_model (timehalf, var_model(1,ivar), rvar)
259 c write(*,*) 'called sexp_model'
260 .eq. if (ielement r1_var) then
261  g(inode,ibranch) = 1.0 / (rvar+1.0e-20)
262 .eq. else if (ielement r2_var) then
263  rr(inode,ibranch) = rvar
264 .eq. else if (ielement r3_var) then
265  g(inode+1,ibranch) = 1.0 / (rvar+1.0e-20)
266  end if
267 c write(*,*)'exited gas switch model'
268 c
269 c------------------------------------------------------------------------
270 c Decay switch model.
271 c Valid for R1 (G1), R2, or R3 (G3).
272 c
273 .eq. else if (imodel decay_model) then
274 c write(*,*) 'decay switch model'
275 
276  call sdecay_model (timehalf, var_model(1,ivar), rvar)
277 .eq. if (ielement r1_var) then
278  g(inode,ibranch) = 1.0 / (rvar+1.0e-20)
279 .eq. else if (ielement r2_var) then
280  rr(inode,ibranch) = rvar
281 .eq. else if (ielement r3_var) then
282  g(inode+1,ibranch) = 1.0 / (rvar+1.0e-20)
283  end if
284 c
285 c------------------------------------------------------------------------
286 c Rise switch model.
287 c Valid for R1 (G1), R2, or R3 (G3).
288 c
289 .eq. else if (imodel rise_model) then
290 
291  call srise_model (timehalf, var_model(1,ivar), rvar)
292 .eq. if (ielement r1_var) then
293  g(inode,ibranch) = 1.0 / (rvar+1.0e-20)
294 .eq. else if (ielement r2_var) then
295  rr(inode,ibranch) = rvar
296 .eq. else if (ielement r3_var) then
297  g(inode+1,ibranch) = 1.0 / (rvar+1.0e-20)
298  end if
299 c
300 c **********************************************************************
301 c
302 c Tom's lossy switch model, sw_model
303 c valid for r2 in a piesection or a rlsection block.
304 c
305  else if (imodel .eq. sw_model) then
306  if (ielement .eq. r2_var) then
307  voltagein = v(inode,ibranch)
308  voltageout = v(inode+1,ibranch)
309  currentr2 = zir(inode,ibranch)
310  end if
311  call tsw_model(ht,timehalf,var_model(1,ivar),
312  & rvar,currentr2)
313  rr(inode,ibranch) = rvar
314 c
315 c
316 c **********************************************************************
317 c
318 c peos switch model 1 or 2.
319 c valid for r1(g1) or r3(g3).
320 c
321  else if ((imodel .eq. ps1_model) .or.
322  & (imodel .eq. ps2_model)) then
323  if (ielement .eq. r1_var) then
324  jnode = inode
325  else if (ielement .eq. r3_var) then
326  jnode = inode + 1
327  end if
328  pscurrent = zir(jnode-1,ibranch)
329  psvoltage = v(jnode,ibranch)
330  if (imodel .eq. ps1_model) then
331  call sps1_model(ht, timehalf, pscurrent, psvoltage,
332  & var_model(1,ivar), gvar)
333  else if (imodel .eq. ps2_model) then
334  call sps2_model(ht, pscurrent, psvoltage,
335  & var_model(1,ivar), gvar)
336  end if
337  g(jnode,ibranch) = gvar
338 c
339 c **********************************************************************
340 c
341 c z-flow pos switch model .
342 c valid for r1(g1).
343 c
344  else if (imodel .eq. pos_model) then
345  if (ielement .eq. r1_var) then
346  jnode = inode
347  end if
348 c
349  call zpos_model
350  & (timehalf,jnode,ibranch,var_model(1,ivar),gvar)
351 c
352  g(jnode,ibranch) = gvar
353 c
354 c
355 c **********************************************************************
356 c
357 c kws z-flow plasma loss current model .
358 c valid for r1(g1).
359 c
360  else if (imodel .eq. zflow_model) then
361  if (ielement .eq. r1_var) then
362  jnode = inode
363  end if
364 c
365  call zflowloss
366  & (timehalf, jnode, ibranch, var_model(1,ivar), gvar)
367 c
368  g(jnode,ibranch) = gvar
369 c
370 c
371 c **********************************************************************
372 c
373 c mfi insulator crowbar model .
374 c valid for r1(g1).
375 c
376  else if (imodel .eq. mfi_model) then
377  if (ielement .eq. r1_var) then
378  jnode = inode
379 c
380  currentin = zir(jnode-1,ibranch)
381  currentout= zir(jnode,ibranch)
382  voltager1 = v(jnode,ibranch)
383  end if
384 c
385  call zmfi_model(timehalf,currentin,currentout,
386  & voltager1,var_model(1,ivar),gvar)
387 c
388  g(jnode,ibranch) = gvar
389 c
390 c
391 c
392 c **********************************************************************
393 c
394 c rwall resistive wall model, march 7, 1994 kws
395 c valid for r2 only
396 c
397  else if (imodel .eq. rwall_model) then
398  call rwall(ht,timehalf,var_model(1,ivar),rvar)
399  rr(inode,ibranch) = rvar
400 c
401 c **********************************************************************
402 c
403 c r2wall new stygar wall model, march 8, 2012 rbs
404 c valid for r2 only
405 c
406  else if (imodel .eq. r2wall_model) then
407  current = zir(inode,ibranch)
408  call r2wall(timehalf,current,var_model(1,ivar),rvar)
409  rr(inode,ibranch) = rvar
410 c
411 c **********************************************************************
412 c
413 c zmip( aka ctops ) pos model, feb 26, 1993 hnw
414 c valid for r1(g1).
415 c
416 c else if (imodel .eq. zmip_model) then
417 c if (ielement .eq. r1_var) then
418 c jnode = inode
419 c
420 c currentin = zir(jnode-1,ibranch)
421 c currentout= zir(jnode,ibranch)
422 c voltager1 = v(jnode,ibranch)
423 c call zzmip_model(ht,timehalf,currentin,currentout,
424 c & voltager1,var_model(1,ivar),gvar)
425 c end if
426 c
427 c g(jnode,ibranch) = gvar
428 c
429 c **********************************************************************
430 c
431 c measure zflow block
432 c feb. 24, 1998
433 c kws
434 c
435 c the is a null block that only calculates cathode and plasma current,
436 c and the actual zflow using the cliff mendel pressure balance equation.
437 c the data is accessed by inserting output calls anywhere after the block.
438 c this block does not change the circuit.
439 c
440  else if (iblock .eq. measurezflow) then
441  mzflowblock = mzflowblock + 1
442 c inputs
443  anodecurrent = 0.5*(zir(inode,ibranch)+zirn(inode,ibranch))
444  blockvoltage = 0.5*(v(inode,ibranch)+vn(inode,ibranch))
445  zvac = zofmzflow(mzflowblock)
446 c calculate currents and zflow
447  call findzflow
448  & (timehalf,anodecurrent,blockvoltage,zvac,ccath,cplas,zmeas)
449 c store values
450  ccathode(mzflowblock) = ccath
451  cplasma(mzflowblock) = cplas
452  measdzflow(mzflowblock) = zmeas
453 c
454 c
455 c **********************************************************************
456 c
457 c imploding cylindrical foil model block.
458 c the series inductance and the series resistance are variable.
459 c note: r = dl/dt.
460 c
461  else if (iblock .eq. cylfoilblock) then
462  fcurrent = zir(inode,ibranch)
463  call cylfoil_model(timehalf, ht, rht, fcurrent,
464  & var_model(1,ivar), dldt, lvar)
465 c
466 c l for circuit solver
467 c
468  zlr(inode,ibranch) = lvar
469 c
470 c dl/dt for energy check(0.5*zlrdot*i*i=power dissipated)
471 c note that we are subtracting this quantity since we will add
472 c 2 times this amount into the power dissipated in the variable resistor
473 c and what we really need is(+0.5*dldt*i*i) dissipated.
474 c
475  zlrdot(inode,ibranch) = -1.0*dldt
476 c
477 c l for energy check
478 c
479  zlrechk(inode,ibranch) = lvar
480 c
481 c r(=dl/dt) for circuit solver which will also be used to dissipate
482 c power at the rate of r*i*i=(dldt*i*i) in the energy check(and we
483 c cannot override that calculation).
484 c
485  rr(inode,ibranch) = dldt
486 c
487 c **********************************************************************
488 c
489 c imploding n shell model block.
490 c the series inductance and the series resistance are variable.
491 c note: r = dl/<dt>.
492 c
493  else if (iblock .eq. nshellblock) then
494  fcurrent = zir(inode,ibranch)
495  voltager2 = v(inode,ibranch)
496  call nshell_model(timehalf, ht, rht, fcurrent,voltager2,
497  & var_model(1,ivar), dldt, lvar)
498 c
499 c l for circuit solver
500 c
501  zlr(inode,ibranch) = lvar
502 c
503 c dl/<dt> for energy check(0.5*zlrdot*i*i=power dissipated)
504 c note that we are subtracting this quantity since we will add
505 c 2 times this amount into the power dissipated in the variable resistor
506 c and what we really need is(+0.5*dldt*i*i) dissipated.
507 c
508  zlrdot(inode,ibranch) = -1.0*dldt
509 c
510 c l for energy check
511 c
512  zlrechk(inode,ibranch) = lvar
513 c
514 c r(=dl/<dt>) for circuit solver which will also be used to dissipate
515 c power at the rate of r*i*i=(dldt*i*i) in the energy check(and we
516 c cannot override that calculation).
517 c
518  rr(inode,ibranch) = dldt
519 c
520 c **********************************************************************
521 c
522 c imploding spherical foil model block.
523 c the series inductance and the series resistance are variable.
524 c note: r = dl/dt.
525 c
526  else if (iblock .eq. sphfoilblock) then
527  fcurrent = zir(inode,ibranch)
528  call sphfoil_model(timehalf, ht, rht, fcurrent,
529  & var_model(1,ivar), dldt, lvar)
530 c
531 c l for circuit solver
532 c
533  zlr(inode,ibranch) = lvar
534 c
535 c dl/dt for energy check(0.5*zlrdot*i*i=power dissipated)
536 c note that we are subtracting this quantity since we will add
537 c 2 times this amount into the power dissipated in the variable resistor
538 c and what we really need is(+0.5*dldt*i*i) dissipated.
539 c
540  zlrdot(inode,ibranch) = -1.0*dldt
541 c
542 c l for energy check
543 c
544  zlrechk(inode,ibranch) = lvar
545 c
546 c r(=dl/dt) for circuit solver which will also be used to dissipate
547 c power at the rate of r*i*i=(dldt*i*i) in the energy check(and we
548 c cannot override that calculation).
549 c
550  rr(inode,ibranch) = dldt
551 c
552 c **********************************************************************
553 c
554 c diode model.
555 c valid for r1(g1) or r3(g3).
556 c
557  else if (imodel .eq. diode_model) then
558  if (ielement .eq. r1_var) then
559  jnode = inode
560  else if (ielement .eq. r3_var) then
561  jnode = inode + 1
562  end if
563  dvoltage = v(jnode,ibranch)
564  call sdiode_model(timehalf, dvoltage, var_model(1,ivar),
565  & gvar)
566  g(jnode,ibranch) = gvar
567 c
568 c------------------------------------------------------------------------
569 c
570 c applied-b diode model.
571 c valid for r1(g1) or r3(g3).
572 c
573  else if (imodel .eq. abdiode_model) then
574  if (ielement .eq. r1_var) then
575  jnode = inode
576  else if (ielement .eq. r3_var) then
577  jnode = inode + 1
578  end if
579  dvoltage = v(jnode,ibranch)
580  call sabdiode_model
581  & (dvoltage, var_model(1,ivar), gvar)
582  g(jnode,ibranch) = gvar
583 c
584 c------------------------------------------------------------------------
585 c
586 c saturable core inductor magnetic switch.
587 c valid for l2 only.
588 c
589  else if (imodel .eq. magsw_model) then
590  swcurrent = zir(inode,ibranch)
591  call smagsw_model(rht, swcurrent, var_model(1,ivar),
592  & dldt, dlidi, lvar)
593  zlr(inode,ibranch) = dlidi
594  zlrdot(inode,ibranch) = dldt
595  zlrechk(inode,ibranch) = lvar
596 c
597 c------------------------------------------------------------------------
598 c
599 c imploding gas puff model block.
600 c the series inductance and the series resistance are variable.
601 c note: r = dl/dt.
602 c
603  else if (iblock .eq. gaspuffblock) then
604  fcurrent = zir(inode,ibranch)
605  call gaspuff_model(timehalf, ht, rht, fcurrent,
606  & var_model(1,ivar), dldt, lvar)
607 c
608 c l for circuit solver
609 c
610  zlr(inode,ibranch) = lvar
611 c
612 c dl/dt for energy check(0.5*zlrdot*i*i=power dissipated)
613 c note that we are subtracting this quantity since we will add
614 c 2 times this amount into the power dissipated in the variable resistor
615 c and what we really need is(+0.5*dldt*i*i) dissipated.
616 c
617  zlrdot(inode,ibranch) = -1.0*dldt
618 c
619 c l for energy check
620 c
621  zlrechk(inode,ibranch) = lvar
622 c
623 c r(=dl/dt) for circuit solver which will also be used to dissipate
624 c power at the rate of r*i*i=(dldt*i*i) in the energy check(and we
625 c cannot override that calculation).
626 c
627  rr(inode,ibranch) = dldt
628 c
629  end if
630 c write(*,*)'Exiting model do loop...'
631 c
632  106 continue
633 c write(*,*)'Finished 106 do loop....'
634 c
635 c------------------------------------------------------------------------
636 c write(*,*)'Return from models subroutine'
637  return
638  end
subroutine cylfoil_model
Definition: cylflmdl.f:1
subroutine findzflow(time, ianode, V, Z, icathode, iplasma, zflow)
Definition: findzflo.f:1
subroutine sphfoil_model
Definition: sphflmdl.f:1
subroutine sps1_model(timestep, timehalf, current, voltage, parms, gvar)
Definition: pos1mdl.f:1
subroutine sexp_model(time, var_parms, resistance)
Definition: expswmdl.f:1
subroutine gaspuff_model
Definition: gaspfmdl.f:1
subroutine rwall(dt, time, parms, rvar)
Definition: rwallmdl.f:1
subroutine zmfi_model(time, cin, cout, vin, parms, gvar)
Definition: mfiflmdl.f:1
subroutine sdiode_model
Definition: diodemdl.f:1
c *****************************************************************************c Various format statements for read_screamer_data output c To get these into made format to be characters c for each line corrected spelling errors in format added statement for Zflow Plasma Loss Model added format for CSV output type fixed more lines longer than characters added format for Measure Zflow Block and forward c reverse current directions in Zflow plasma loss c and Zflow POS models added format for SFC output type c removed from all code calls c c c c c a80 c i10 c No grids on plots c Do not write files containing the plotted points c Execute only one cycle c Do not echo the setup parameters and indicies c c &exitting c a13 c c c c c c c c102 c &described as a function of time c c c &described as a function of time c c c &function of time c c shell c &min A K c &trapped field c153 c c c Sin c c c remaining calls in rdscrelem c Tabular a10 Cond c c c &used with this model c Exponential model of a resistive c c c Rise model of a resistive c c Z FLOW POS model
Definition: zdemfmt.h:131
subroutine smagsw_model(rdt, inew, parms, dldt, dlidi, lvar)
Definition: magswmdl.f:1
subroutine sabdiode_model
Definition: abdiomdl.f:1
subroutine sps2_model(timestep, current, voltage, parms, gvar)
Definition: pos2mdl.f:1
subroutine nshell_model
Definition: nshelmdl.f:1
subroutine tsw_model(ht, time, parms, rvar, currentr2)
Definition: lsyswmdl.f:1
c *****************************************************************************c Various format statements for read_screamer_data output c To get these into made format to be characters c for each line corrected spelling errors in format added statement for Zflow Plasma Loss Model added format for CSV output type fixed more lines longer than characters added format for Measure Zflow Block and forward c reverse current directions in Zflow plasma loss c and Zflow POS models added format for SFC output type c removed from all code calls c c c c c a80 c i10 c No grids on plots c Do not write files containing the plotted points c Execute only one cycle c Do not echo the setup parameters and indicies c c &exitting c a13 c c c c c c c c102 c &described as a function of time c c c &described as a function of time c c c &function of time c c shell c &min A K c &trapped field c153 c c c Sin c c c remaining calls in rdscrelem c Tabular a10 Cond c c c &used with this model c Exponential model of a resistive c c c Rise model of a resistive c c Z FLOW POS c c c c SW1 c c c158 MFI Insulator CB c c c c161 Z FLOW Plasma Loss Current c c c Applied B Diode c &Ion Ion c c c c Initial c PRINT Output Request for block
Definition: zdemfmt.h:192
c *****************************************************************************c Various format statements for read_screamer_data output c To get these into made format to be characters c for each line corrected spelling errors in format added statement for Zflow Plasma Loss Model added format for CSV output type fixed more lines longer than characters added format for Measure Zflow Block and forward c reverse current directions in Zflow plasma loss c and Zflow POS models added format for SFC output type c removed from all code calls c c c c c a80 c i10 c No grids on plots c Do not write files containing the plotted points c Execute only one cycle c Do not echo the setup parameters and indicies c c &exitting c a13 c c c c c c c c102 c &described as a function of time c c c &described as a function of time c c c &function of time c c shell c &min A K c &trapped field c153 c c c Sin c c c remaining calls in rdscrelem c Tabular a10 Cond c c c &used with this model c Exponential model of a resistive c c c Rise model of a resistive c c Z FLOW POS c & zflow
Definition: zdemfmt.h:133
subroutine zdem(ifile, clen)
Definition: zdem.f:1
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
Definition: zdemfmt.h:7
subroutine zflowloss(time, node, ib, parms, gvar)
Definition: zflssmdl.f:1
subroutine get_model
Definition: models.f:1
c *****************************************************************************c Various format statements for read_screamer_data output c To get these into made format to be characters c for each line corrected spelling errors in format added statement for Zflow Plasma Loss Model added format for CSV output type fixed more lines longer than characters added format for Measure Zflow Block and forward c reverse current directions in Zflow plasma loss c and Zflow POS models added format for SFC output type c removed from all code calls c c c c c a80 c i10 c No grids on plots c Do not write files containing the plotted points c Execute only one cycle c Do not echo the setup parameters and indicies c c &exitting c a13 c c c c c c c c102 c &described as a function of time c c c &described as a function of time c c c &function of time c c shell c &min A K c &trapped field c153 c c c Sin c c c remaining calls in rdscrelem c Tabular a10 Cond c c c &used with this model c Exponential model of a resistive switch
Definition: zdemfmt.h:118
subroutine r2wall(time, curr, parms, rvar)
Definition: r2wallmdl.f:1