Screamer Project  V3.3.1
Screamer Structure
 All Files Functions Variables
rdscrouts.f
Go to the documentation of this file.
1 c----------------------------------------------------------------------
2 c @(#)rdscrouts.f version 1.0 created 06/15/2005 by Mathias Bavay
3 c----------------------------------------------------------------------
4 c---------------------------------------------------------------------
5 c
6 c This subroutine reads the outputs requests from the input deck.
7 c
8 c Modifications:
9 c 2008-11-05:RBS Warnings cleaned up by placing error status and
10 c returns in the if statments
11 c---------------------------------------------------------------------
12 
13  subroutine readscreameroutputs(status)
14 
15 c Include the common blocks which are to be filled by the
16 c this subroutine.
17 c
18 
19  include 'zdemmax.h'
20  include 'zdemcomm.h'
21  include 'zdemout.h'
22 c
23 c Include the files with the keywords and the integer flags as parameters.
24 c
25  include 'zdemparm.h'
26  include 'zdempprm.h'
27  include 'zdemenv.h'
28  include 'zdemfmt.h'
29  include 'rdscrdat.h'
30 c
31 c Define passed variables
32 c
33  integer status
34 c
35  status = 0
36 
37  if ((keyword .eq. k_pltpts) .or.
38  & (keyword .eq. k_prtpts) .or.
39  & (keyword .eq. k_filpts) .or.
40  & (keyword .eq. k_tabpts) .or.
41  & (keyword .eq. k_ufopts) .or.
42  & (keyword .eq. k_idrpts) .or.
43  & (keyword .eq. k_pffpts) .or.
44  & (keyword .eq. k_csvpts) .or.
45  & (keyword .eq. k_sfcpts)) then
46 c This is an output request.
47 c Save this keyword and set the keyword for the type of output variable.
48 c
49  keywordsave = keyword
50  keyword = field(2)(1:keyword_len)
51 c
52 c Set the output variable type based on the keyword.
53 c
54  if (keyword .eq. k_vr1) then
55  labelout = 'Voltage across R1'
56  labelplt = 'VR1_volts'
57  labelidr = 'VR1'
58  indextyp = ip_vr1
59  else if (keyword .eq. k_vr2) then
60  labelout = 'Voltage across R2'
61  labelplt = 'VR2_volts'
62  labelidr = 'VR2'
63  indextyp = ip_vr2
64  else if (keyword .eq. k_vr3) then
65  labelout = 'Voltage across R3'
66  labelplt = 'VR3_volts'
67  labelidr = 'VR3'
68  indextyp = ip_vr3
69  else if (keyword .eq. k_ir1) then
70  labelout = 'Current in R1'
71  labelplt = 'IR1_amps'
72  labelidr = 'IR1'
73  indextyp = ip_ir1
74  else if (keyword .eq. k_ir2) then
75  labelout = 'Current in R2'
76  labelplt = 'IR2_amps'
77  labelidr = 'IR2'
78  indextyp = ip_ir2
79  else if (keyword .eq. k_ir3) then
80  labelout = 'Current in R3'
81  labelplt = 'IR3_amps'
82  labelidr = 'IR3'
83  indextyp = ip_ir3
84  else if (keyword .eq. k_pr1) then
85  labelout = 'Power Dissipated in R1'
86  labelplt = 'PR1_watts'
87  labelidr = 'PR1'
88  indextyp = ip_pr1
89  else if (keyword .eq. k_pr2) then
90  labelout = 'Power Dissipated in R2'
91  labelplt = 'PR2_watts'
92  labelidr = 'PR2'
93  indextyp = ip_pr2
94  else if (keyword .eq. k_pr3) then
95  labelout = 'Power Dissipated in R3'
96  labelplt = 'PR3_watts'
97  labelidr = 'PR3'
98  indextyp = ip_pr3
99  else if (keyword .eq. k_er1) then
100  labelout = 'Energy Dissipated in R1'
101  labelplt = 'ER1_joules'
102  labelidr = 'ER1'
103  indextyp = ip_er1
104  else if (keyword .eq. k_er2) then
105  labelout = 'Energy Dissipated in R2'
106  labelplt = 'ER2_joules'
107  labelidr = 'ER2'
108  indextyp = ip_er2
109  else if (keyword .eq. k_er3) then
110  labelout = 'Energy Dissipated in R3'
111  labelplt = 'ER3_joules'
112  labelidr = 'ER3'
113  indextyp = ip_er3
114  else if (keyword .eq. k_r1) then
115  labelout = 'Value of R1'
116  labelplt = 'R1_ohms'
117  labelidr = 'R1'
118  indextyp = ip_r1
119  else if (keyword .eq. k_r2) then
120  labelout = 'Value of R2'
121  labelplt = 'R2_ohms'
122  labelidr = 'R2'
123  indextyp = ip_r2
124  else if (keyword .eq. k_r3) then
125  labelout = 'Value of R3'
126  labelplt = 'R3_ohms'
127  labelidr = 'R3'
128  indextyp = ip_r3
129  else if (keyword .eq. k_qr1) then
130  labelout = 'Charge through R1'
131  labelplt = 'QR1_coul'
132  labelidr = 'QR1'
133  indextyp = ip_qr1
134  else if (keyword .eq. k_qr2) then
135  labelout = 'Charge through R2'
136  labelplt = 'QR2_coul'
137  labelidr = 'QR2'
138  indextyp = ip_qr2
139  else if (keyword .eq. k_qr3) then
140  labelout = 'Charge through R3'
141  labelplt = 'QR3_coul'
142  labelidr = 'QR3'
143  indextyp = ip_qr3
144  else if (keyword .eq. k_vc1) then
145  labelout = 'Voltage across C1'
146  labelplt = 'VC1_volts'
147  labelidr = 'VC1'
148  indextyp = ip_vc1
149  else if (keyword .eq. k_vc3) then
150  labelout = 'Voltage across C3'
151  labelplt = 'VC3_volts'
152  labelidr = 'VC3'
153  indextyp = ip_vc3
154  else if (keyword .eq. k_ic1) then
155  labelout = 'Current in C1'
156  labelplt = 'IC1_amps'
157  labelidr = 'IC1'
158  indextyp = ip_ic1
159  else if (keyword .eq. k_ic3) then
160  labelout = 'Current in C3'
161  labelplt = 'IC3_amps'
162  labelidr = 'IC3'
163  indextyp = ip_ic3
164  else if (keyword .eq. k_pc1) then
165  labelout = 'Power Stored in C1'
166  labelplt = 'PC1_watts'
167  labelidr = 'PC1'
168  indextyp = ip_pc1
169  else if (keyword .eq. k_pc3) then
170  labelout = 'Power Stored in C3'
171  labelplt = 'PC3_watts'
172  labelidr = 'PC3'
173  indextyp = ip_pc3
174  else if (keyword .eq. k_ec1) then
175  labelout = 'Energy Stored in C1'
176  labelplt = 'EC1_joules'
177  labelidr = 'EC1'
178  indextyp = ip_ec1
179  else if (keyword .eq. k_ec3) then
180  labelout = 'Energy Stored in C3'
181  labelplt = 'EC3_joules'
182  labelidr = 'EC3'
183  indextyp = ip_ec3
184  else if (keyword .eq. k_c1) then
185  labelout = 'Value of C1'
186  labelplt = 'C1_farads'
187  labelidr = 'C1'
188  indextyp = ip_c1
189  else if (keyword .eq. k_c3) then
190  labelout = 'Value of C3'
191  labelplt = 'C3_farads'
192  labelidr = 'C3'
193  indextyp = ip_c3
194  else if (keyword .eq. k_qc1) then
195  labelout = 'Charge on C1'
196  labelplt = 'QC1_coul'
197  labelidr = 'QC1'
198  indextyp = ip_qc1
199  else if (keyword .eq. k_qc3) then
200  labelout = 'Charge on C3'
201  labelplt = 'QC3_coul'
202  labelidr = 'QC3'
203  indextyp = ip_qc3
204  else if (keyword .eq. k_c1e) then
205  labelout = 'Value of C1eff'
206  labelplt = 'C1eff_farad'
207  labelidr = 'C1EF'
208  indextyp = ip_c1e
209  else if (keyword .eq. k_c3e) then
210  labelout = 'Value of C3eff'
211  labelplt = 'C3eff_farad'
212  labelidr = 'C3EF'
213  indextyp = ip_c3e
214  else if (keyword .eq. k_pcdot) then
215  labelout = 'Value of 1/2*V*V*dC/dt'
216  labelplt = 'PCdot_watts'
217  labelidr = 'PCD'
218  indextyp = ip_pcdot
219  else if (keyword .eq. k_ecdot) then
220  labelout = 'Sum of 1/2*V*V*dC/dt'
221  labelplt = 'ECdot_joule'
222  labelidr = 'ECD'
223  indextyp = ip_ecdot
224  else if (keyword .eq. k_pccon) then
225  labelout = 'Term: d(1/2*C*V*V)/dt'
226  labelplt = 'PCcon_watts'
227  labelidr = 'PCC'
228  indextyp = ip_pccon
229  else if (keyword .eq. k_eccon) then
230  labelout = 'Value of 1/2*C*V*V'
231  labelplt = 'ECcon_joule'
232  labelidr = 'ECC'
233  indextyp = ip_eccon
234  else if (keyword .eq. k_vl2) then
235  labelout = 'Voltage across L2'
236  labelplt = 'VL2_volts'
237  labelidr = 'VL2'
238  indextyp = ip_vl2
239  else if (keyword .eq. k_il2) then
240  labelout = 'Current in L2'
241  labelplt = 'IL2_amps'
242  labelidr = 'IL2'
243  indextyp = ip_il2
244  else if (keyword .eq. k_pl2) then
245  labelout = 'Power Stored in L2'
246  labelplt = 'PL2_watts'
247  labelidr = 'PL2'
248  indextyp = ip_pl2
249  else if (keyword .eq. k_el2) then
250  labelout = 'Energy Stored in L2'
251  labelplt = 'EL2_joules'
252  labelidr = 'EL2'
253  indextyp = ip_el2
254  else if (keyword .eq. k_l2) then
255  labelout = 'Value of L2'
256  labelplt = 'L2_henrys'
257  labelidr = 'L2'
258  indextyp = ip_l2
259  else if (keyword .eq. k_fl2) then
260  labelout = 'Flux in L2'
261  labelplt = 'FL2_webers'
262  labelidr = 'FL2'
263  indextyp = ip_fl2
264  else if (keyword .eq. k_ql2) then
265  labelout = 'Charge through L2'
266  labelplt = 'QL2_coul'
267  labelidr = 'QL2'
268  indextyp = ip_ql2
269  else if (keyword .eq. k_l2e) then
270  labelout = 'Value of L2eff'
271  labelplt = 'L2eff_henry'
272  labelidr = 'L2EF'
273  indextyp = ip_l2e
274  else if (keyword .eq. k_pldot) then
275  labelout = 'Value of 1/2*I*I*dL/dt'
276  labelplt = 'PLdot_watts'
277  labelidr = 'PLD'
278  indextyp = ip_pldot
279  else if (keyword .eq. k_eldot) then
280  labelout = 'Sum of 1/2*I*I*dL/dt'
281  labelplt = 'ELdot_joule'
282  labelidr = 'ELD'
283  indextyp = ip_eldot
284  else if (keyword .eq. k_plcon) then
285  labelout = 'Term: d(1/2*L*I*I)/dt'
286  labelplt = 'PLcon_watts'
287  labelidr = 'PLC'
288  indextyp = ip_plcon
289  else if (keyword .eq. k_elcon) then
290  labelout = 'Value of 1/2*L*I*I'
291  labelplt = 'ELcon_joule'
292  labelidr = 'ELC'
293  indextyp = ip_elcon
294  else if (keyword .eq. k_vsrc) then
295  labelout = 'Source Voltage'
296  labelplt = 'VSRC_volts'
297  labelidr = 'VSRC'
298  indextyp = ip_vsrc
299  else if (keyword .eq. k_isrc) then
300  labelout = 'Source Current'
301  labelplt = 'ISRC_amps'
302  labelidr = 'ISRC'
303  indextyp = ip_isrc
304  else if (keyword .eq. k_psrc) then
305  labelout = 'Source Power'
306  labelplt = 'PSRC_watts'
307  labelidr = 'PSRC'
308  indextyp = ip_psrc
309  else if (keyword .eq. k_esrc) then
310  labelout = 'Source Energy'
311  labelplt = 'ESRC_joules'
312  labelidr = 'ESRC'
313  indextyp = ip_esrc
314  else if (keyword .eq. k_qsrc) then
315  labelout = 'Source Charge Produced'
316  labelplt = 'QSRC_coul'
317  labelidr = 'QSRC'
318  indextyp = ip_qsrc
319  else if (keyword .eq. k_vin) then
320  labelout = 'Input Voltage'
321  labelplt = 'VIN_volts'
322  labelidr = 'VIN'
323  indextyp = ip_vin
324  else if (keyword .eq. k_iin) then
325  labelout = 'Input Current'
326  labelplt = 'IIN_amps'
327  labelidr = 'IIN'
328  indextyp = ip_iin
329  else if (keyword .eq. k_pin) then
330  labelout = 'Input Power'
331  labelplt = 'PIN_watts'
332  labelidr = 'PIN'
333  indextyp = ip_pin
334  else if (keyword .eq. k_ein) then
335  labelout = 'Input Energy'
336  labelplt = 'EIN_joules'
337  labelidr = 'EIN'
338  indextyp = ip_ein
339  else if (keyword .eq. k_qin) then
340  labelout = 'Input Charge'
341  labelplt = 'QIN_coul'
342  labelidr = 'QIN'
343  indextyp = ip_qin
344  else if (keyword .eq. k_vout) then
345  labelout = 'Output Voltage'
346  labelplt = 'VOUT_volts'
347  labelidr = 'VOUT'
348  indextyp = ip_vout
349  else if (keyword .eq. k_iout) then
350  labelout = 'Output Current'
351  labelplt = 'IOUT_amps'
352  labelidr = 'IOUT'
353  indextyp = ip_iout
354  else if (keyword .eq. k_pout) then
355  labelout = 'Output Power'
356  labelplt = 'POUT_watts'
357  labelidr = 'POUT'
358  indextyp = ip_pout
359  else if (keyword .eq. k_eout) then
360  labelout = 'Output Energy'
361  labelplt = 'EOUT_joules'
362  labelidr = 'EOUT'
363  indextyp = ip_eout
364  else if (keyword .eq. k_qout) then
365  labelout = 'Output Charge'
366  labelplt = 'QOUT_coul'
367  labelidr = 'QOUT'
368  indextyp = ip_qout
369  else if (keyword .eq. k_facc) then
370  labelout = 'Foil Acceleration'
371  labelplt = 'A-FOIL_m/ss'
372  labelidr = 'AFOI'
373  indextyp = ip_facc
374  else if (keyword .eq. k_fvel) then
375  labelout = 'Foil Velocity'
376  labelplt = 'V-FOIL_m/s'
377  labelidr = 'VFOI'
378  indextyp = ip_fvel
379  else if (keyword .eq. k_frad) then
380  labelout = 'Foil Radius'
381  labelplt = 'RAD-FOIL_m'
382  labelidr = 'RFOI'
383  indextyp = ip_frad
384  else if (keyword .eq. k_fke) then
385  labelout = 'Foil Kinetic Energy'
386  labelplt = 'KE-FOIL_j'
387  labelidr = 'KFOI'
388  indextyp = ip_fke
389  else if (keyword .eq. k_yw_al) then
390  labelout = 'Al K-line Energy/w'
391  labelplt = 'E_Al/w_j'
392  labelidr = 'E_Al'
393  indextyp = ip_yw_al
394  radyields=.true.
395  else if (keyword .eq. k_ym_al) then
396  labelout = 'Al K-line Energy/m'
397  labelplt = 'E_Al/m_j'
398  labelidr = 'E_Al'
399  indextyp = ip_ym_al
400  radyields=.true.
401  else if (keyword .eq. k_yw_ar) then
402  labelout = 'Ar K-line Energy/w'
403  labelplt = 'E_Ar/w_j'
404  labelidr = 'E_Ar'
405  indextyp = ip_yw_ar
406  radyields=.true.
407  else if (keyword .eq. k_ym_ar) then
408  labelout = 'Ar K-line Energy/m'
409  labelplt = 'E_Ar/m_j'
410  labelidr = 'E_Ar'
411  indextyp = ip_ym_ar
412  radyields=.true.
413  else if (keyword .eq. k_yw_cu) then
414  labelout = 'Cu K-line Energy/w'
415  labelplt = 'E_Cu/w_j'
416  labelidr = 'E_Cu'
417  indextyp = ip_yw_cu
418  radyields=.true.
419  else if (keyword .eq. k_ym_cu) then
420  labelout = 'Cu K-line Energy/m'
421  labelplt = 'E_Cu/m_j'
422  labelidr = 'E_Cu'
423  indextyp = ip_ym_cu
424  radyields=.true.
425  else if (keyword .eq. k_yw_kr) then
426  labelout = 'Kr K-line Energy/w'
427  labelplt = 'E_Kr/w_j'
428  labelidr = 'E_Kr'
429  indextyp = ip_yw_kr
430  radyields=.true.
431  else if (keyword .eq. k_ym_kr) then
432  labelout = 'Kr K-line Energy/m'
433  labelplt = 'E_Kr/m_j'
434  labelidr = 'E_Kr'
435  indextyp = ip_ym_kr
436  radyields=.true.
437  else if (keyword .eq. k_yw_xe) then
438  labelout = 'Xe K-line Energy/w'
439  labelplt = 'E_Xe/w_j'
440  labelidr = 'E_Xe'
441  indextyp = ip_yw_xe
442  radyields=.true.
443  else if (keyword .eq. k_ym_xe) then
444  labelout = 'Xe K-line Energy/m'
445  labelplt = 'E_Xe/m_j'
446  labelidr = 'E_Xe'
447  radyields=.true.
448  indextyp = ip_ym_xe
449 c
450  else if (keyword .eq. k_gacc) then
451  labelout = 'Gas Puff Acceleration'
452  labelplt = 'A-GAS_m/ss'
453  labelidr = 'AGAS'
454  indextyp = ip_gacc
455  else if (keyword .eq. k_gvel) then
456  labelout = 'Gas Puff Velocity'
457  labelplt = 'V-GAS_m/s'
458  labelidr = 'VGAS'
459  indextyp = ip_gvel
460  else if (keyword .eq. k_grad) then
461  labelout = 'Gas Puff Radius'
462  labelplt = 'RAD-GAS_m'
463  labelidr = 'RGAS'
464  indextyp = ip_grad
465  else if (keyword .eq. k_gke) then
466  labelout = 'Gas Puff Kinetic Energy'
467  labelplt = 'KE-GAS_j'
468  labelidr = 'KGAS'
469  indextyp = ip_gke
470 c
471  else if (keyword .eq. k_sacc) then
472  labelout = 'Shell Acceleration'
473  labelplt = 'm/ss'
474  labelidr = 'S_ACC'
475  indextyp = ip_sacc
476  else if (keyword .eq. k_svel) then
477  labelout = 'Shell Velocity'
478  labelplt = 'm/s'
479  labelidr = 'S_VEL'
480  indextyp = ip_svel
481  else if (keyword .eq. k_srad) then
482  labelout = 'Shell Radius'
483  labelplt = 'm'
484  labelidr = 'S_RAD'
485  indextyp = ip_srad
486  else if (keyword .eq. k_srad1) then
487  labelout = 'Shell Radius 1'
488  labelplt = 'm'
489  labelidr = 'S_RAD1'
490  indextyp = ip_srad1
491  else if (keyword .eq. k_srad2) then
492  labelout = 'Shell Radius 2'
493  labelplt = 'm'
494  labelidr = 'S_RAD2'
495  indextyp = ip_srad2
496  else if (keyword .eq. k_srad3) then
497  labelout = 'Shell Radius 3'
498  labelplt = 'm'
499  labelidr = 'S_RAD3'
500  indextyp = ip_srad3
501  else if (keyword .eq. k_srad4) then
502  labelout = 'Shell Radius 4'
503  labelplt = 'm'
504  labelidr = 'S_RAD4'
505  indextyp = ip_srad4
506  else if (keyword .eq. k_srad5) then
507  labelout = 'Shell Radius 5'
508  labelplt = 'm'
509  labelidr = 'S_RAD5'
510  indextyp = ip_srad5
511  else if (keyword .eq. k_ske) then
512  labelout = 'Shell Kinetic Energy'
513  labelplt = 'J'
514  labelidr = 'S_KE'
515  indextyp = ip_ske
516  else if (keyword .eq. k_smass) then
517  labelout = 'Shell Mass'
518  labelplt = 'kg'
519  labelidr = 'S_MASS'
520  indextyp = ip_smass
521  else if (keyword .eq. k_scur1) then
522  labelout = 'Shell Cur1'
523  labelplt = 'A'
524  labelidr = 'S_CUR1'
525  indextyp = ip_scur1
526  else if (keyword .eq. k_scur2) then
527  labelout = 'Shell Cur2'
528  labelplt = 'A'
529  labelidr = 'S_CUR2'
530  indextyp = ip_scur2
531  else if (keyword .eq. k_scur3) then
532  labelout = 'Shell Cur3'
533  labelplt = 'A'
534  labelidr = 'S_CUR3'
535  indextyp = ip_scur3
536  else if (keyword .eq. k_scur4) then
537  labelout = 'Shell Cur4'
538  labelplt = 'A'
539  labelidr = 'S_CUR4'
540  indextyp = ip_scur4
541  else if (keyword .eq. k_scur5) then
542  labelout = 'Shell Cur5'
543  labelplt = 'A'
544  labelidr = 'S_CUR5'
545  indextyp = ip_scur5
546 
547  else if ( (keyword .eq. k_fc)
548  & .or. (keyword .eq. k_fc1)
549  & .or. (keyword .eq. k_fc2)
550  & .or. (keyword .eq. k_fc3)
551  & .or. (keyword .eq. k_fc4) ) then
552  labelout = 'Gas Ch Radius'
553  labelplt = 'radch'
554  labelidr = 'fc'
555  indextyp = ip_fc
556 
557  else if (keyword .eq. k_zflow) then
558  labelout = 'Zflow (Ohms)'
559  labelplt = 'zflow'
560  labelidr = 'ZFL'
561  indextyp = ip_zflow
562  else if (keyword .eq. k_gzflow) then
563  labelout = 'G Zflow (Mhos)'
564  labelplt = 'gzflow'
565  labelidr = 'GZF'
566  indextyp = ip_gzflow
567 c
568 c --- KWS Zflow Plasma Loss Model ---
569 c
570  else if (keyword .eq. k_zloss) then
571  labelout = 'Zflow (Ohms)'
572  labelplt = 'zflow'
573  labelidr = 'ZLO'
574  indextyp = ip_zloss
575  else if (keyword .eq. k_gloss) then
576  labelout = 'G Zflow (Mhos)'
577  labelplt = 'gzflow'
578  labelidr = 'GLO'
579  indextyp = ip_gloss
580 c
581 c -----------------------------------
582 c
583  else if (keyword .eq. k_efld) then
584  labelout = 'E Field (V/m)'
585  labelplt = 'efld'
586  labelidr = 'EFL'
587  indextyp = ip_efld
588  else if (keyword .eq. k_bfld) then
589  labelout = 'B Field (wb/m2)'
590  labelplt = 'bfld'
591  labelidr = 'BFL'
592  indextyp = ip_bfld
593  else if (keyword .eq. k_xmfi) then
594  labelout = 'MFI Criterion'
595  labelplt = 'xmfi'
596  labelidr = 'XMF'
597  indextyp = ip_xmfi
598 c
599 c --- KWS Zflow Plasma Loss Model ---
600 c
601  else if (keyword .eq. k_aloss) then
602  labelout = 'Anode Loss Current Density'
603  labelplt = 'aloss'
604  labelidr = 'ALO'
605  indextyp = ip_aloss
606 c
607 c --- KWS Measure Zflow and Cathode Current Block ---
608 c
609  else if (keyword .eq. k_icathode) then
610  labelout = 'Cathode Current'
611  labelplt = 'I Cathode'
612  labelidr = 'ICA'
613  indextyp = ip_icathode
614 c
615  else if (keyword .eq. k_iplasma) then
616  labelout = 'Plasma Current'
617  labelplt = 'I Plasma'
618  labelidr = 'IPL'
619  indextyp = ip_iplasma
620 c
621  else if (keyword .eq. k_zot) then
622  labelout = 'Zflow of T'
623  labelplt = 'Zflow of T'
624  labelidr = 'ZOT'
625  indextyp = ip_zot
626 c
627 c -----------------------------------
628 c
629  else if (keyword .eq. k_u1) then ! User Variable #1
630  labelout = 'User Variable #1'
631  labelplt = 'U1_Unknown'
632  labelidr = 'U1'
633  indextyp = ip_u1
634  else if (keyword .eq. k_u2) then ! User Variable #2
635  labelout = 'User Variable #2'
636  labelplt = 'U2_Unknown'
637  labelidr = 'U2'
638  indextyp = ip_u2
639  else if (keyword .eq. k_u3) then ! User Variable #3
640  labelout = 'User Variable #3'
641  labelplt = 'U3_Unknown'
642  labelidr = 'U3'
643  indextyp = ip_u3
644  else if (keyword .eq. k_u4) then ! User Variable #4
645  labelout = 'User Variable #4'
646  labelplt = 'U4_Unknown'
647  labelidr = 'U4'
648  indextyp = ip_u4
649  else if (keyword .eq. k_u5) then ! User Variable #5
650  labelout = 'User Variable #5'
651  labelplt = 'U5_Unknown'
652  labelidr = 'U5'
653  indextyp = ip_u5
654  else if (keyword .eq. k_u6) then ! User Variable #6
655  labelout = 'User Variable #6'
656  labelplt = 'U6_Unknown'
657  labelidr = 'U6'
658  indextyp = ip_u6
659  else if (keyword .eq. k_u7) then ! User Variable #7
660  labelout = 'User Variable #7'
661  labelplt = 'U7_Unknown'
662  labelidr = 'U7'
663  indextyp = ip_u7
664  else if (keyword .eq. k_u8) then ! User Variable #8
665  labelout = 'User Variable #8'
666  labelplt = 'U8_Unknown'
667  labelidr = 'U8'
668  indextyp = ip_u8
669  else if (keyword .eq. k_u9) then ! User Variable #9
670  labelout = 'User Variable #9'
671  labelplt = 'U9_Unknown'
672  labelidr = 'U9'
673  indextyp = ip_u9
674  else if (keyword .eq. k_u10) then ! User Variable #10
675  labelout = 'User Variable #10'
676  labelplt = 'U10_Unknown'
677  labelidr = 'U10'
678  indextyp = ip_u10
679  else if (keyword .eq. k_edline) then
680  labelout = 'Energy Lost in Line'
681  labelplt = 'EDLINE_joul'
682  labelidr = 'EDL'
683  indextyp = ip_edline
684  else if (keyword .eq. k_pdline) then
685  labelout = 'Power Lost in Line'
686  labelplt = 'PDLINE_watt'
687  labelidr = 'PDL'
688  indextyp = ip_pdline
689  else if (keyword .eq. k_eline) then
690  labelout = 'Energy Stored in Line'
691  labelplt = 'ELINE_joule'
692  labelidr = 'ELI'
693  indextyp = ip_eline
694  else if (keyword .eq. k_pline) then
695  labelout = 'Power Stored in Line'
696  labelplt = 'PLINE_watts'
697  labelidr = 'PLI'
698  indextyp = ip_pline
699  else
700  call print_bad_line(currline, nlines, numerr)
701  status=305
702  return
703  end if
704 c
705 c First, test to see if a time_flag value has been entered. Then
706 c test to see if Tstart and Tstop have been entered, if not, then set them
707 c to 0 and end time, respectively.
708 c
709  jj = 3
710  call strip(field(jj), istart, iend)
711  if (istart .ne. notext) then
712  call text_to_real(field(jj), tstart, flag)
713  if (flag .eq. err) then
714  flag = noerr
715  keyword = field(jj)(1:keyword_len)
716  if (keyword .eq. k_wholestep) then
717  time_flag = whole_step
718  else
719  time_flag = half_step
720  endif
721  jj = jj + 1
722  call strip(field(jj), istart, iend)
723  if (istart .ne. notext) then
724  call text_to_real(field(jj), tstart, flag)
725  jj = jj + 1
726  call text_to_real(field(jj), tstop, flag2)
727  else
728  tstart = 0.0
729  tstop = tmax
730  flag = noerr
731  flag2 = noerr
732  endif
733  else
734  jj = jj + 1
735  if ((keywordsave .ne. k_idrpts) .and.
736  + (keywordsave .ne. k_sfcpts) .and.
737  + (keywordsave .ne. k_pffpts)) then
738  time_flag = half_step
739  else
740  time_flag = whole_step
741  endif
742  call text_to_real(field(jj), tstop, flag2)
743  endif
744  else
745  if ((keywordsave .ne. k_idrpts) .and.
746  + (keywordsave .ne. k_sfcpts) .and.
747  + (keywordsave .ne. k_pffpts)) then
748  time_flag = half_step
749  else
750  time_flag = whole_step
751  endif
752  tstart = 0.0
753  tstop = tmax
754  flag = noerr
755  flag2 = noerr
756  end if
757 c
758 c Test to see if Ymin and Ymax have been entered, if not, then set them both
759 c to zero to enable automatic scaling when plotting.
760 c
761  jj = jj + 1
762  call strip(field(jj), istart, iend)
763  if (istart .ne. notext) then
764  call text_to_real(field(jj), ymin, flag3)
765  jj = jj + 1
766  call text_to_real(field(jj), ymax, flag4)
767  else
768  ymin = 0.0
769  ymax = 0.0
770  flag3 = noerr
771  flag4 = noerr
772  end if
773  if ((flag+flag2+flag3+flag4) .ne. noerr) then
774  call print_bad_line(currline, nlines, numerr)
775  status=305
776  return
777  end if
778 
779  numout = numout + 1
780  if (numout .gt. maxout) then
781  status = 1000
782  return
783  end if
784  if (keywordsave .eq. k_pltpts) then
785  numplt = numplt + 1
786  write(9,
787  & '(A,i3,A,a23/A,1pe10.3,A,1pe10.3,A,1pe10.3,A,1pe10.3)')
788  & ' PLOT Output Request for block ',nublks,
789  & '. Variable: ',labelout,
790  & ' Tstart=',tstart,' Tstop=',tstop,
791  & ' Ymin=',ymin, ' Ymax=',ymax
792  iouttype(numout) = oplot
793  indexout = ip_pltpts
794  else if (keywordsave .eq. k_prtpts) then
795  numprt = numprt + 1
796  write(9,'(A,i3,A,a23/A,1pe10.3,A,1pe10.3)')
797  & ' PRINT Output Request for block ',nublks,
798  & '. Variable: ',labelout,
799  & ' Tstart=',tstart,' Tstop=',tstop
800  iouttype(numout) = oprint
801  indexout = ip_prtpts
802  else if (keywordsave .eq. k_filpts) then
803  numfil = numfil + 1
804  write(9,'(A,i3,A,a23/A,1pe10.3,A,1pe10.3)')
805  & ' FILE Output Request for block ',nublks,
806  & '. Variable: ',labelout,
807  & ' Tstart=',tstart, ' Tstop=',tstop
808  iouttype(numout) = ofile
809  indexout = ip_filpts
810  else if (keywordsave .eq. k_tabpts) then
811  numtab = numtab + 1
812  write(9,'(A,i3,A,a23/A,1pe10.3,A,1pe10.3)')
813  & ' TABLE Output Request for block ',nublks,
814  & '. Variable: ',labelout,
815  & ' Tstart=',tstart,' Tstop=',tstop
816  iouttype(numout) = otable
817  indexout = ip_tabpts
818  else if (keywordsave .eq. k_ufopts) then
819  numufo = numufo + 1
820  write(9,'(A,i3,A,a23)')
821  & ' UFO Output Request for block ',nublks,
822  & '. Variable: ',labelout
823  iouttype(numout) = oufo
824  indexout = ip_ufopts
825  tstart = 0.0
826  tstop = tmax
827  else if (keywordsave .eq. k_idrpts) then
828  numidr = numidr + 1
829  write(9,'(A,i3,A,a23)')
830  & ' IDR Output Request for block ',nublks,
831  & '. Variable: ',labelout
832  iouttype(numout) = oidr
833  indexout = ip_idrpts
834  tstart = 0.0
835  tstop = tmax
836  else if (keywordsave .eq. k_pffpts) then
837  numpff = numpff + 1
838  write(9,'(A,i3,A,a23)')
839  & ' PFF Output Request for block ',nublks,
840  & '. Variable: ',labelout
841  iouttype(numout) = opff
842  indexout = ip_pffpts
843  tstart = 0.0
844  tstop = tmax
845  else if (keywordsave .eq. k_csvpts) then
846  numcsv = numcsv + 1
847  write(9,'(A,i3,A,a23)')
848  & ' CSV Output Request for block ',nublks,
849  & '. Variable: ',labelout
850  iouttype(numout) = ocsv
851  indexout = ip_csvpts
852  tstart = 0.0
853  tstop = tmax
854  else if (keywordsave .eq. k_sfcpts) then
855  numsfc = numsfc + 1
856  write(9,'(A,i3,A,a23)')
857  & ' SFC Output Request for block ',nublks,
858  & '. Variable: ',labelout
859  iouttype(numout) = osfc
860  indexout = ip_sfcpts
861  tstart = 0.0
862  tstop = tmax
863  end if
864 c
865 c Set so UFO and CSV are always half time steps.
866 c
867  if ((time_flag .eq. whole_step) .and.
868  & (keywordsave .ne. k_ufopts) .and.
869  & (keywordsave .ne. k_csvpts)) then
870  write(9,'(A)')
871  & ' Values on the whole time step will be used.'
872 c kls added the following else if structure because SFC always uses whole time step
873  else if ((time_flag .eq. half_step) .and.
874  & (keywordsave .eq. k_sfcpts)) then
875  write(9,'(A)')
876  & ' Values on the whole time step will be used.'
877  else
878  write(9,'(A)') ' Values on the half time step will be used.'
879  endif
880 c
881  tbegout(numout) = tstart
882  tendout(numout) = tstop
883  yminout(numout) = ymin
884  ymaxout(numout) = ymax
885  ixbrnout(numout) = nbrns
886 cc
887 cc --- KWS Zflow Plasma Loss Model ---
888 cc ixblkout(numout) = nublks
889 c ixblkout(numout) = nblks
890 c
891 c --- MLK, set KWS change back to original since it causes
892 c errors in plotting variables from user subroutines
893 c
894  ixblkout(numout) = nublks
895  iblkout(numout) = lcirblk
896  lastblk = outputreq
897  itypout(numout) = indextyp
898  itimeflg(numout) = time_flag
899  lblout(numout) = ' '
900  ylblout(numout) = labelplt
901  lblout_temp(numout) = labelout
902  invarl(numout) = nvarl
903 c
904 c create label for output
905 c
906  write (cbranch,'(i2)') nbrns
907  iblank_pointer = index(cbranch,' ')
908  if (iblank_pointer .eq. 1) then
909  cbranch = '0' // cbranch(2:2)
910  endif
911  write (cblock,'(i2)') nublks
912  iblank_pointer = index(cblock,' ')
913  if (iblank_pointer .eq. 1) then
914  cblock = '0' // cblock(2:2)
915  endif
916  branch_block = cbranch // cblock
917  call strip(labelidr,istart,iend)
918  tagout(numout) = labelidr(1:iend) // branch_block
919 c
920  nblks = nblks + 1
921  iin(1,nblks,nbrns) = outputreq
922  iin(5,nblks,nbrns) = indexout
923 c
924 c Comment line.
925 c
926  else if (keyword(1:1) .eq. '!') then
927  continue
928 c
929 c Label for output request (if last block was an output request, else it is
930 c a comment).
931 c
932  else if ( (keyword(1:1) .eq. diaglabel_key) .or.
933  + (keyword(1:1) .eq. diaglabel_altkey) ) then
934  if (lastblk .eq. outputreq) then
935  call strip(currline, icl1, icl2)
936  if (icl1 .eq. 80) then
937  currline = ' '
938  icl1 = 1
939  else
940  icl1 = icl1 + 1
941  end if
942  lblout(numout) = currline(icl1:80)
943  else
944  continue
945  end if
946 c
947 c Label for user variable (if last block was an output request, else it is
948 c ignored).
949 c
950  else if (keyword .eq. k_ulabel) then
951 c
952  if (lastblk .eq. outputreq) then
953  il1 = index(currline,'ULABEL')
954  currline = currline(il1+7:80)
955  call strip(currline, ilbl_start, ilbl_end)
956  max_length = ilbl_start + 10
957  ulabel = currline(ilbl_start:min(max_length,ilbl_end))
958  ylblout(numout) = ulabel
959  else
960  continue
961  end if
962 c
963 c Unkown keyword.
964 c
965  else
966  call print_bad_line(currline, nlines, numerr)
967  end if
968 c
969 c Get another line.
970 c
971 
972  status=305
973 
974  return
975  end
976 
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character tendout
Definition: zdemout.h:59
c *****************************************************************************c Common blocks for SCREAMER output and tabling c & numout
Definition: zdemout.h:47
c *****************************************************************************c Parameters for output selections c Added MFI CB parameters c Added callouts for the radiation yield in the c cylindrical foil model c Added Added keywords and indices for Zflow Plasma c current loss model outputs Also added a new c output for MITLs c Added keywords and indices for CSV output types c Added keywords and indices for Zflow Block outputs c Added keywords and indices for SFC output types c & k_tabpts
Definition: zdempprm.h:7
c *****************************************************************************c Parameters for output selections c Added MFI CB parameters c Added callouts for the radiation yield in the c cylindrical foil model c Added Added keywords and indices for Zflow Plasma c current loss model outputs Also added a new c output for MITLs c Added keywords and indices for CSV output types c Added keywords and indices for Zflow Block outputs c Added keywords and indices for SFC output types c & k_csvpts
Definition: zdempprm.h:7
c *****************************************************************************c Parameters for output selections c Added MFI CB parameters c Added callouts for the radiation yield in the c cylindrical foil model c Added Added keywords and indices for Zflow Plasma c current loss model outputs Also added a new c output for MITLs c Added keywords and indices for CSV output types c Added keywords and indices for Zflow Block outputs c Added keywords and indices for SFC output types c & k_prtpts
Definition: zdempprm.h:7
c *****************************************************************************c Parameters for output selections c Added MFI CB parameters c Added callouts for the radiation yield in the c cylindrical foil model c Added Added keywords and indices for Zflow Plasma c current loss model outputs Also added a new c output for MITLs c Added keywords and indices for CSV output types c Added keywords and indices for Zflow Block outputs c Added keywords and indices for SFC output types c & k_idrpts
Definition: zdempprm.h:7
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numprt
Definition: zdemout.h:47
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character ymaxout
Definition: zdemout.h:59
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character & yminout
Definition: zdemout.h:59
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numpff
Definition: zdemout.h:47
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character & ylblout
Definition: zdemout.h:59
c *****************************************************************************c Parameters for output selections c Added MFI CB parameters c Added callouts for the radiation yield in the c cylindrical foil model c Added Added keywords and indices for Zflow Plasma c current loss model outputs Also added a new c output for MITLs c Added keywords and indices for CSV output types c Added keywords and indices for Zflow Block outputs c Added keywords and indices for SFC output types c & k_filpts
Definition: zdempprm.h:7
c *****************************************************************************c Parameters for output selections c Added MFI CB parameters c Added callouts for the radiation yield in the c cylindrical foil model c Added Added keywords and indices for Zflow Plasma c current loss model outputs Also added a new c output for MITLs c Added keywords and indices for CSV output types c Added keywords and indices for Zflow Block outputs c Added keywords and indices for SFC output types c & k_pffpts
Definition: zdempprm.h:7
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numtab
Definition: zdemout.h:47
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character & tagout
Definition: zdemout.h:59
c *****************************************************************************c Common blocks for SCREAMER output and tabling c & numufo
Definition: zdemout.h:47
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numidr
Definition: zdemout.h:47
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character & ixblkout
Definition: zdemout.h:59
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character & lblout
Definition: zdemout.h:59
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character iouttype
Definition: zdemout.h:59
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numcsv
Definition: zdemout.h:47
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character & lblout_temp
Definition: zdemout.h:59
subroutine readscreameroutputs(status)
Definition: rdscrouts.f:13
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character & tbegout
Definition: zdemout.h:59
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numplt
Definition: zdemout.h:47
subroutine strip(text, start, end)
Definition: strpblnk.f:1
c *****************************************************************************c Common blocks for SCREAMER output and tabling c maxout
Definition: zdemout.h:40
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character itypout
Definition: zdemout.h:59
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character & itimeflg
Definition: zdemout.h:59
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numfil
Definition: zdemout.h:47
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character numsfc
Definition: zdemout.h:59
subroutine print_bad_line(currline, nlines, numerr)
Definition: prtbadln.f:1
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character ixbrnout
Definition: zdemout.h:59
c *****************************************************************************c Common blocks for SCREAMER output and tabling c numsfc character & iblkout
Definition: zdemout.h:59
subroutine text_to_real(text, rvalue, flag)
Definition: txt2real.f:1
c *****************************************************************************c Parameters for output selections c Added MFI CB parameters c Added callouts for the radiation yield in the c cylindrical foil model c Added Added keywords and indices for Zflow Plasma c current loss model outputs Also added a new c output for MITLs c Added keywords and indices for CSV output types c Added keywords and indices for Zflow Block outputs c Added keywords and indices for SFC output types c & k_ufopts
Definition: zdempprm.h:7