41
42
43
48 USE format_mod , ONLY : fmw_a_i
49
50
51
52#include "implicit_f.inc"
53
54
55
56#include "scr17_c.inc"
57#include "units_c.inc"
58#include "com04_c.inc"
59#include "tabsiz_c.inc"
60#include "titr_c.inc"
61
62
63
64 TYPE(SUBMODEL_DATA),INTENT(IN) ::LSUBMODEL(*)
65
66
67
68 my_real :: fi,
alpha,chaleur,dar,tscale,xk0,rdk,hnuk,timescal
70 INTEGER :: K1, K2, I, J, MFK, IFK, NL, NC, IFUNC, IAFUNC, K, ID, ITYP
71 INTEGER :: UID, IFLAGUNIT, STAT
72 CHARACTER(LEN=NCHARKEY) :: KEY,
73 CHARACTER(LEN=NCHARTITLE) :: TITR
74 LOGICAL IS_AVAILABLE
75
76
77
79
80
81
82 IF(.NOT.
ALLOCATED(
ilas))
ALLOCATE (
ilas(silas) ,stat=stat)
83 IF(.NOT.ALLOCATED(xlas))ALLOCATE (xlas(sxlas) ,stat=stat)
84 IF(nlaser == 0)RETURN
85 WRITE(istdo,'(A)')titre(49)
86 IF (silas > 0)
ilas = 0
87 IF (sxlas > 0) xlas = zero
88
89 i=0
90 timescal=zero
91 ityp=0
92 k1 = 1
93 k2 = 1
94 WRITE(iout,'(/,A)') ' LASER BEAM IMPACT'
95 WRITE(iout,'(A)') ' -----------------'
96
98
99
100 DO k=1,nlaser
101
102 titr = ''
103 key = ''
104
107 . option_titr = titr ,
108 . unit_id = uid ,
109 . keyword2 = key )
110
111
112
113
115 IF (
unitab%UNIT_ID(j) == uid)
THEN
119 iflagunit = 1
120 EXIT
121 ENDIF
122 ENDDO
123
124
125
126
127 i=i+1
128
130 CALL hm_get_intv (
'fct_IDLAS' ,ifunc ,is_available, lsubmodel)
132 CALL hm_get_intv (
'fct_IDTAR' ,iafunc ,is_available, lsubmodel)
133
139
141 CALL hm_get_intv (
'Nc' ,nc ,is_available, lsubmodel)
142
143 IF (timescal == zero) timescal = one
144
145
146
147 IF(ityp==0)THEN
148 WRITE(iout,'(/,A,I10,/)')
149 . ' LASER COLUMN TYPE 0',i
150 WRITE(iout,'(A,1PG20.13)')
151 . ' LASER INTENSITY FACTOR. . . . . =',fi
152 WRITE(iout,fmt=fmw_a_i)
153 . ' LASER INTENSITY FUNCTION. . . . =',ifunc
154 WRITE(iout,'(A,1PG20.13)')
155 .
' TARGET REFLEXION FACTOR . . . . =',
alpha
156 WRITE(iout,fmt=fmw_a_i)
157 . ' TARGET REFLEXION FUNCTION . . . =',iafunc
158 WRITE(iout,'(A,1PG20.13)')
159 . ' LASER FREQUENCY H*NU/K. . . . . =',hnuk
160 WRITE(iout,'(A,1PG20.13)')
161 . ' LATENT HEAT(MELTING+VAPOR.) . . =',chaleur
162 WRITE(iout,'(A,1PG20.13)')
163 . ' INVERSE BREMSSTRAHLUNG XK0. . . =',xk0
164 WRITE(iout,'(A,1PG20.13)')
165 . ' INVERSE BREMSSTRAHLUNG RD/K . . =',rdk
166 WRITE(iout,'(A,1PG20.13)')
167 . ' COMPLEMENT ABSORPTION IN VAPOUR =',dar
168 WRITE(iout,fmt=fmw_a_i)
169 . ' TARGET ELEMENT. . . . . . . . . =',nc
170 WRITE(iout,'(A,1PG20.13)')
171 . ' TIME SCALE FACTOR . . . . . . . =',timescal
172 WRITE(iout,fmt=fmw_a_i)
173 .
' NUMBER OF PLASMA ELEMENT. . . . =',
nl
174 WRITE(iout,'(A)')
175 . ' LIST OF PLASMA ELEMENT(FROM LASER TO TARGET) :'
176 ELSE
177 WRITE(iout,'(/,A,I10,/)')
178 . ' LASER COLUMN TYPE 1',i
179 WRITE(iout,'(A,1PG20.13)')
180 . ' LASER INTENSITY FACTOR. . . . . =',fi
181 WRITE(iout,'(A,I10)')
182 . ' LASER INTENSITY FUNCTION. . . . =',ifunc
183 WRITE(iout,'(A,1PG20.13)')
184 . ' FULL VAPO. ENERGY(/unit Volume) =',chaleur
185 WRITE(iout,'(A,I10)')
186 .
' NUMBER OF ELEMENT. . . . . . . .=',
nl
187 WRITE(iout,'(A)')
188 . ' LIST OF PLASMA ELEMENT(FROM LASER TO TARGET) :'
189 ENDIF
190
191
192
193
194
195
196
197
198
199
200
201 xk0 = xk0 * rdk**3.5
202
207
208 xlas(k2) =chaleur
209 xlas(k2+1)=fi
211
212 xlas(k2+3)=xk0
213 xlas(k2+4)=hnuk
214 xlas(k2+5)=dar/(hnuk**2)
215 xlas(k2+6) = one / timescal
216
219 mfk = 7
220 k1 = k1 + ifk
221 k2 = k2 + mfk
222
223 ENDDO
224
225
226 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_start(entity_type)
subroutine leclas1(nl, las, nc, lsubmodel)
subroutine preleclas(num, numr, lsubmodel)
integer, parameter nchartitle
integer, parameter ncharkey
integer, dimension(:), allocatable ilas
character *2 function nl()