32
33
34
38
39
40
41#include "implicit_f.inc"
42
43
44
45 TYPE(DETONATORS_STRUCT_), INTENT(IN) :: DETONATORS
46
47
48
49 LOGICAL :: OK_QA
50 CHARACTER (LEN=255) :: VARNAME
51 INTEGER K
52 DOUBLE PRECISION TEMP_DOUBLE
53 INTEGER TEMP_INTEGER
54 INTEGER :: NDETPS,NDETSG,NECRAN,NDETPL,NDETCORD
55
56
57
59
60 ndetps = detonators%N_DET_POINT
61 ndetsg = detonators%N_DET_LINE
62 necran = detonators%N_DET_WAVE_SHAPER
63 ndetpl = detonators%N_DET_PLANE
64 ndetcord = detonators%N_DET_CORD
65
66 IF (ok_qa) THEN
67
68
69 DO k=1,ndetps
70 WRITE(varname,'(A,I0,A)') 'DFS_DETPOINT_',k ,'__ISHADOW_'
71 temp_integer = detonators%POINT(k)%SHADOW
72 IF(temp_integer > 0)
CALL qaprint(varname(1:len_trim(varname
73
74 WRITE(varname,'(A,I0,A)') 'DFS_DETPOINT_',k ,'__MAT_'
75 temp_integer = detonators%POINT(k)%MAT
76 CALL qaprint(varname(1:len_trim(varname)),temp_integer,0.0_8)
77
78 WRITE(varname,'(A,I0,A)') 'DFS_DETPOINT_',k ,'__TDET_'
79 temp_double = detonators%POINT(k)%TDET
80 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
81
82 WRITE(varname,'(A,I0,A)') 'DFS_DETPOINT_',k ,'__XDET_'
83 temp_double = detonators%POINT(k)%XDET
84 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
85
86 WRITE(varname,'(A,I0,A)') 'DFS_DETPOINT_',k ,'__YDET_'
87 temp_double = detonators%POINT(k)%YDET
88 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname
89
90 WRITE(varname,'(A,I0,A)') 'DFS_DETPOINT_',k ,'__ZDET_'
91 temp_double = detonators%POINT(k)%ZDET
92 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
93
94 WRITE(varname,'(A,I0,A)') 'DFS_DETPOINT_',k ,'__GRNOD_ID_'
95 temp_integer = detonators%POINT(k)%GRNOD_ID
96 IF(temp_integer > 0)
CALL qaprint(varname(1:len_trim(varname)),temp_integer,0.0_8)
97
98 ENDDO
99
100
101 DO k=1,ndetsg
102 WRITE(varname,'(A,I0,A)') 'DFS_DETLINE_',k ,'__MAT_'
103 temp_integer = detonators%LINE(k)%MAT
104 CALL qaprint(varname(1:len_trim(varname)),temp_integer,0.0_8)
105
106 WRITE(varname,'(A,I0,A)') 'DFS_DETLINE_',k ,'__TDET_'
107 temp_double = detonators%LINE(k)%TDET
108 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
109
110 WRITE(varname,'(A,I0,A)') 'DFS_DETLINE_',k ,'__XDET_1_'
111 temp_double = detonators%LINE(k)%XDET_1
112 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
113
114 WRITE(varname,'(A,I0,A)') 'DFS_DETLINE_',k ,'__YDET_1_'
115 temp_double = detonators%LINE(k)%YDET_1
116 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
117
118 WRITE(varname,'(A,I0,A)') 'DFS_DETLINE_',k ,'__ZDET_1_'
119 temp_double = detonators%LINE(k)%ZDET_1
120 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
121
122 WRITE(varname,'(A,I0,A)') 'DFS_DETLINE_',k ,'__XDET_2_'
123 temp_double = detonators%LINE(k)%XDET_2
124 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
125
126 WRITE(varname,'(A,I0,A)') 'DFS_DETLINE_',k ,'__YDET_2_'
127 temp_double = detonators%LINE(k)%YDET_2
128 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
129
130 WRITE(varname,'(A,I0,A)') 'DFS_DETLINE_',k ,'__ZDET_2_'
131 temp_double = detonators%LINE(k)%ZDET_2
132 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
133 ENDDO
134
135
136 DO k=1,necran
137 WRITE(varname,'(A,I0,A)') 'DFS_WAVSHA_',k ,'__MAT_'
138 temp_integer = detonators%WAVE_SHAPER(k)%MAT
139 CALL qaprint(varname(1:len_trim(varname)),temp_integer,0.0_8)
140
141 WRITE(varname,'(A,I0,A)') 'DFS_WAVSHA_',k ,'__NUMNOD_'
142 temp_integer = detonators%WAVE_SHAPER(k)%NUMNOD
143 CALL qaprint(varname(1:len_trim(varname)),temp_integer,0.0_8)
144
145 WRITE(varname,'(A,I0,A)') 'DFS_WAVSHA_',k ,'__vdet_'
146 TEMP_DOUBLE = DETONATORS%WAVE_SHAPER(K)%VDET
147 IF(TEMP_DOUBLE/=ZERO)CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
148
149 WRITE(VARNAME,'(a,i0,a)') 'dfs_wavsha_',K ,'__tdet_'
150 TEMP_DOUBLE = DETONATORS%WAVE_SHAPER(K)%TDET
151 IF(TEMP_DOUBLE/=ZERO)CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
152
153 WRITE(VARNAME,'(a,i0,a)') 'dfs_wavsha_',K ,'__xdet_'
154 TEMP_DOUBLE = DETONATORS%WAVE_SHAPER(K)%XDET
155 IF(TEMP_DOUBLE/=ZERO)CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
156
157 WRITE(VARNAME,'(a,i0,a)') 'dfs_wavsha_',K ,'__ydet_'
158 TEMP_DOUBLE = DETONATORS%WAVE_SHAPER(K)%YDET
159 IF(TEMP_DOUBLE/=ZERO)CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
160
161 WRITE(VARNAME,'(a,i0,a)') 'dfs_wavsha_',K ,'__zdet_'
162 TEMP_DOUBLE = DETONATORS%WAVE_SHAPER(K)%ZDET
163 IF(TEMP_DOUBLE/=ZERO)CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
164 ENDDO !next K
165
166 !/DFS/DETPLAN
167 DO K=1,NDETPL
168 WRITE(VARNAME,'(a,i0,a)') 'dfs_detplane_',K ,'__mat_'
169 TEMP_INTEGER = DETONATORS%PLANE(K)%MAT
170 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INTEGER,0.0_8)
171
172 WRITE(VARNAME,'(a,i0,a)') 'dfs_detplane_',K ,'__tdet_'
173 TEMP_DOUBLE = DETONATORS%PLANE(K)%TDET
174 IF(TEMP_DOUBLE/=ZERO)CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
175
176 WRITE(VARNAME,'(a,i0,a)') 'dfs_detplane_',K ,'__xdet_'
177 TEMP_DOUBLE = DETONATORS%PLANE(K)%XDET
178 IF(TEMP_DOUBLE/=ZERO)CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
179
180 WRITE(VARNAME,'(a,i0,a)') 'dfs_detplane_',K ,'__ydet_'
181 TEMP_DOUBLE = DETONATORS%PLANE(K)%YDET
182 IF(TEMP_DOUBLE/=ZERO)CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
183
184 WRITE(VARNAME,'(a,i0,a)') 'dfs_detplane_',K ,'__zdet_'
185 TEMP_DOUBLE = DETONATORS%PLANE(K)%ZDET
186 IF(TEMP_DOUBLE/=ZERO)CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
187
188 WRITE(VARNAME,'(a,i0,a)') 'DFS_DETPLANE_',k ,'__NX_'
189 temp_double = detonators%PLANE(k)%NX
190 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
191
192 WRITE(varname,'(A,I0,A)') 'DFS_DETPLANE_',k ,'__NY_'
193 temp_double = detonators%PLANE(k)%NY
194 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
195
196 WRITE(varname,'(A,I0,A)') 'DFS_DETPLANE_',k ,'__NZ_'
197 temp_double = detonators%PLANE(k)%NZ
198 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
199 ENDDO
200
201
202 DO k=1,ndetcord
203 WRITE(varname,'(A,I0,A)') 'DFS_DETCORD_',k ,'__MAT_'
204 temp_integer = detonators%CORD(k)%MAT
205 CALL qaprint(varname(1:len_trim(varname)),temp_integer
206
207 WRITE(varname,'(A,I0,A)') 'DFS_DETCORD_',k ,'__IOPT_'
208 temp_integer = detonators%CORD(k)%IOPT
209 CALL qaprint(varname(1:len_trim(varname)),temp_integer,0.0_8)
210
211 WRITE(varname,'(A,I0,A)') 'DFS_DETCORD_',k ,'__NUMNOD_'
212 temp_integer = detonators%CORD(k)%NUMNOD
213 CALL qaprint(varname(1:len_trim(varname)),temp_integer,0.0_8)
214
215 WRITE(varname,'(A,I0,A)') 'DFS_DETCORD_',k ,'__TDET_'
216 temp_double = detonators%CORD(k)%TDET
217 IF(temp_double/=zero)
CALL qaprint(varname(1:len_trim(varname)),0,temp_double
218
219 WRITE(varname,'(A,I0,A)') 'DFS_DETCORD_',k ,'__VDET_'
220 temp_double = detonators%CORD(k)%VDET
221 IF(temp_double/=zero)
CALL qaprint(varname
222 ENDDO
223
224 ENDIF
225
226 RETURN
logical function myqakey(value)
@purpose Check if a given value is part of the values set by env variable Useful to make a condition ...
subroutine qaprint(name, idin, value)
@purpose print one entry to QA extract file example of call for real print CALL QAPRINT('MY_LABEL',...