ITM AMNS: User Interface  \$Id: Doxyfile 502 2015-10-15 12:23:45Z dpc $
amns_module_isoc.F90
Go to the documentation of this file.
1 
9 
11 
12  use amns_module
13  use amns_types
14  use iso_c_binding
15 
16  implicit none
17 
18  logical, private, parameter :: itm_amns_c_debug = .false.
19 
20 contains
21 
24  subroutine itm_amns_c_setup(handle, error_status) bind(c, name='ITM_AMNS_C_SETUP')
25  type(c_ptr), intent(out) :: handle
26  type(amns_error_type), intent(out) :: error_status
27 
28  ! internal
29  type(amns_handle_type), pointer :: lhandle
30 
31  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SETUP: enter"
32  allocate(lhandle)
33  !lhandle%debug = ITM_AMNS_C_DEBUG
35  !lhandle%debug = ITM_AMNS_C_DEBUG ! this due to issue in ITM_AMNS_SETUP that lhandle is intent(out)
36  handle = c_loc(lhandle)
37  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SETUP: return"
38  end subroutine itm_amns_c_setup
39 
42  subroutine itm_amns_c_setup_version(handle, version, error_status) bind(c, name='ITM_AMNS_C_SETUP_VERSION')
43  type(c_ptr), intent(out) :: handle
44  type(amns_version_type), intent(in) :: version
45  type(amns_error_type), intent(out) :: error_status
46 
47  ! internal
48  type(amns_handle_type), pointer :: lhandle
49 
50  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SETUP_VERSION: enter"
51  allocate(lhandle)
52  !lhandle%debug = ITM_AMNS_C_DEBUG
53  call itm_amns_setup(lhandle, version, error_status=error_status)
54  !lhandle%debug = ITM_AMNS_C_DEBUG ! this due to issue in ITM_AMNS_SETUP that lhandle is intent(out)
55  handle = c_loc(lhandle)
56  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SETUP_VERSION: return"
57  end subroutine itm_amns_c_setup_version
58 
61  subroutine itm_amns_c_finish(handle, error_status) bind(c, name='ITM_AMNS_C_FINISH')
62  type(c_ptr), intent(inout) :: handle
63  type(amns_error_type), intent(out) :: error_status
64 
65  ! internal
66  type(amns_handle_type), pointer :: lhandle
67 
68  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_FINISH: enter"
69  call c_f_pointer(handle, lhandle)
70  call itm_amns_finish(lhandle, error_status)
71  deallocate(lhandle)
72  handle = c_null_ptr
73  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_FINISH: return"
74  end subroutine itm_amns_c_finish
75 
78  subroutine itm_amns_c_finish_table(handle_rx, error_status) bind(c,name="ITM_AMNS_C_FINISH_TABLE")
79  type(c_ptr), intent(inout) :: handle_rx
80  type(amns_error_type), intent(out) :: error_status
81 
82  ! internal
83  type(amns_handle_rx_type), pointer :: lhandle_rx
84 
85  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_FINISH_TABLE: enter"
86  call c_f_pointer(handle_rx, lhandle_rx)
87  call itm_amns_finish_table(lhandle_rx, error_status)
88  deallocate(lhandle_rx)
89  handle_rx = c_null_ptr
90  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_FINISH_TABLE: return"
91  end subroutine itm_amns_c_finish_table
92 
95  subroutine itm_amns_c_set(handle,set,error_status) bind(c,name="ITM_AMNS_C_SET")
96  type(c_ptr), intent(in), value :: handle
97  type(amns_set_type), intent(in) :: set
98  type(amns_error_type), intent(out) :: error_status
99 
100  ! internal
101  type(amns_handle_type), pointer :: lhandle
102 
103  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SET: enter"
104  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SET: set%string ='"//set%string//"'"
105  call c_f_pointer(handle, lhandle)
106  call itm_amns_set(lhandle, set, error_status)
107  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SET: return"
108  end subroutine itm_amns_c_set
109 
112  subroutine itm_amns_c_query(handle,query,answer,error_status) bind(c,name="ITM_AMNS_C_QUERY")
113  type(c_ptr), intent(in), value :: handle
114  type(amns_query_type), intent(in) :: query
115  type(amns_answer_type), intent(out) :: answer
116  type(amns_error_type), intent(out) :: error_status
117 
118  ! internal
119  type(amns_handle_type), pointer :: lhandle
120 
121  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_QUERY: enter"
122  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_QUERY: query%string ='"//query%string//"'"
123  call c_f_pointer(handle, lhandle)
125  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_QUERY: answer%string ='"//answer%string//"'"
126  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_QUERY: answer%number =", answer%number
127  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_QUERY: return"
128  end subroutine itm_amns_c_query
129 
132  subroutine itm_amns_c_setup_table(handle, reaction_type, reactant, handle_rx, error_status) bind(c, name="ITM_AMNS_C_SETUP_TABLE")
133  type(c_ptr), intent(in), value :: handle
134  type(amns_reaction_type), intent(in) :: reaction_type
135  type(c_ptr), intent(in), value :: reactant
136  type(c_ptr), intent(out) :: handle_rx
137  type(amns_error_type), intent(out) :: error_status
138 
139  ! internal
140  type(amns_handle_type), pointer :: lhandle
141  type(amns_reactants_type), pointer :: lreactant
142  type(amns_handle_rx_type), pointer :: lhandle_rx
143 
144  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SETUP_TABLE: enter"
145  call c_f_pointer(handle, lhandle)
146  call c_f_pointer(reactant, lreactant)
147  allocate(lhandle_rx)
148  call itm_amns_setup_table(lhandle, reaction_type, lreactant, lhandle_rx, error_status)
149  handle_rx = c_loc(lhandle_rx)
150  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SETUP_TABLE: return"
151  end subroutine itm_amns_c_setup_table
152 
155  subroutine itm_amns_c_query_table(handle_rx,query,answer,error_status) bind(c,name="ITM_AMNS_C_QUERY_TABLE")
156  type(c_ptr), intent(in), value :: handle_rx
157  type(amns_query_type), intent(in) :: query
158  type(amns_answer_type), intent(out) :: answer
159  type(amns_error_type), intent(out) :: error_status
160 
161  ! internal
162  type(amns_handle_rx_type), pointer :: lhandle_rx
163 
164  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_QUERY_TABLE: enter"
165  call c_f_pointer(handle_rx, lhandle_rx)
167  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_QUERY_TABLE: return"
168  end subroutine itm_amns_c_query_table
169 
172  subroutine itm_amns_c_set_table(handle_rx,set,error_status) bind(c,name="ITM_AMNS_C_SET_TABLE")
173  type(c_ptr), intent(in), value :: handle_rx
174  type(amns_set_type), intent(in) :: set
175  type(amns_error_type), intent(out) :: error_status
176 
177  ! internal
178  type(amns_handle_rx_type), pointer :: lhandle_rx
179 
180  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SET_TABLE: enter"
181  call c_f_pointer(handle_rx, lhandle_rx)
182  call itm_amns_set_table(lhandle_rx,set,error_status)
183  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SET_TABLE: return"
184  end subroutine itm_amns_c_set_table
185 
186 
190  subroutine itm_amns_c_rx_0_a(handle_rx,out,arg1,error_status) bind(c,name="ITM_AMNS_C_RX_0_A")
191  type(c_ptr), intent(in), value :: handle_rx
192  real (kind=R8), intent(out) :: out
193  real (kind=R8), intent(in), value :: arg1
194  type(amns_error_type), intent(out) :: error_status
195 
196  type(amns_handle_rx_type), pointer :: lhandle_rx
197 
198  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_0_A: enter"
199  call c_f_pointer(handle_rx, lhandle_rx)
200  call itm_amns_rx_0(lhandle_rx, out, arg1, error_status=error_status)
201  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_0_A: return"
202  end subroutine itm_amns_c_rx_0_a
203 
207  subroutine itm_amns_c_rx_0_b(handle_rx,out,arg1,arg2,error_status) bind(c,name="ITM_AMNS_C_RX_0_B")
208  type(c_ptr), intent(in), value :: handle_rx
209  real (kind=R8), intent(out) :: out
210  real (kind=R8), intent(in), value :: arg1,arg2
211  type(amns_error_type), intent(out) :: error_status
212 
213  type(amns_handle_rx_type), pointer :: lhandle_rx
214 
215  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_0_B: enter"
216  call c_f_pointer(handle_rx, lhandle_rx)
217  call itm_amns_rx_0(lhandle_rx, out, arg1, arg2=arg2, error_status=error_status)
218  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_0_B: return"
219  end subroutine itm_amns_c_rx_0_b
220 
224  subroutine itm_amns_c_rx_0_c(handle_rx,out,arg1,arg2,arg3,error_status) bind(c,name="ITM_AMNS_C_RX_0_C")
225  type(c_ptr), intent(in), value :: handle_rx
226  real (kind=R8), intent(out) :: out
227  real (kind=R8), intent(in), value :: arg1,arg2,arg3
228  type(amns_error_type), intent(out) :: error_status
229 
230  type(amns_handle_rx_type), pointer :: lhandle_rx
231 
232  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_0_C: enter"
233  call c_f_pointer(handle_rx, lhandle_rx)
234  call itm_amns_rx_0(lhandle_rx, out, arg1, arg2=arg2, arg3=arg3, error_status=error_status)
235  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_0_C: return"
236  end subroutine itm_amns_c_rx_0_c
237 
238 
242  subroutine itm_amns_c_rx_1_a(handle_rx,nx,out,arg1,error_status) bind(c,name="ITM_AMNS_C_RX_1_A")
243  type(c_ptr), intent(in), value :: handle_rx
244  integer(c_int), intent(in), value :: nx
245  real (c_double), intent(out) :: out(0:nx-1)
246  real (c_double), intent(in) :: arg1(0:nx-1)
247  type(amns_error_type), intent(out) :: error_status
248 
249  ! internal
250  type(amns_handle_rx_type), pointer :: lhandle_rx
251 
252  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_1_A: enter"
253  call c_f_pointer(handle_rx, lhandle_rx)
254  call itm_amns_rx_1(lhandle_rx, out, arg1, error_status=error_status)
255  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_1_A: return"
256  end subroutine itm_amns_c_rx_1_a
257 
261  subroutine itm_amns_c_rx_1_b(handle_rx,nx,out,arg1,arg2,error_status) bind(c,name="ITM_AMNS_C_RX_1_B")
262  type(c_ptr), intent(in), value :: handle_rx
263  integer(c_int), intent(in), value :: nx
264  real (c_double), intent(out) :: out(0:nx-1)
265  real (c_double), intent(in) :: arg1(0:nx-1), arg2(0:nx-1)
266  type(amns_error_type), intent(out) :: error_status
267 
268  ! internal
269  type(amns_handle_rx_type), pointer :: lhandle_rx
270 
271  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_1_B: enter"
272  call c_f_pointer(handle_rx, lhandle_rx)
273  call itm_amns_rx_1(lhandle_rx, out, arg1, arg2=arg2, error_status=error_status)
274  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_1_B: return"
275  end subroutine itm_amns_c_rx_1_b
276 
280  subroutine itm_amns_c_rx_1_c(handle_rx,nx,out,arg1,arg2,arg3,error_status) bind(c,name="ITM_AMNS_C_RX_1_C")
281  type(c_ptr), intent(in), value :: handle_rx
282  integer(c_int), intent(in), value :: nx
283  real (c_double), intent(out) :: out(0:nx-1)
284  real (c_double), intent(in) :: arg1(0:nx-1), arg2(0:nx-1), arg3(0:nx-1)
285  type(amns_error_type), intent(out) :: error_status
286 
287  ! internal
288  type(amns_handle_rx_type), pointer :: lhandle_rx
289 
290  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_1_C: enter"
291  call c_f_pointer(handle_rx, lhandle_rx)
292  call itm_amns_rx_1(lhandle_rx, out, arg1, arg2=arg2, arg3=arg3, error_status=error_status)
293  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_1_C: return"
294  end subroutine itm_amns_c_rx_1_c
295 
296 
300  subroutine itm_amns_c_rx_2_a(handle_rx,nx,ny,out,arg1,error_status) bind(c,name="ITM_AMNS_C_RX_2_A")
301  type(c_ptr), intent(in), value :: handle_rx
302  integer(c_int), intent(in), value :: nx, ny
303  real (c_double), intent(out) :: out(0:nx-1,0:ny-1)
304  real (c_double), intent(in) :: arg1(0:nx-1,0:ny-1)
305  type(amns_error_type), intent(out) :: error_status
306 
307  ! internal
308  type(amns_handle_rx_type), pointer :: lhandle_rx
309 
310  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_2_A: enter"
311  call c_f_pointer(handle_rx, lhandle_rx)
312  call itm_amns_rx_2(lhandle_rx, out, arg1, error_status=error_status)
313  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_2_A: return"
314  end subroutine itm_amns_c_rx_2_a
315 
319  subroutine itm_amns_c_rx_2_b(handle_rx,nx,ny,out,arg1,arg2,error_status) bind(c,name="ITM_AMNS_C_RX_2_B")
320  type(c_ptr), intent(in), value :: handle_rx
321  integer(c_int), intent(in), value :: nx, ny
322  real (c_double), intent(out) :: out(0:nx-1,0:ny-1)
323  real (c_double), intent(in) :: arg1(0:nx-1,0:ny-1), arg2(0:nx-1,0:ny-1)
324  type(amns_error_type), intent(out) :: error_status
325 
326  ! internal
327  type(amns_handle_rx_type), pointer :: lhandle_rx
328 
329  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_2_B: enter"
330  call c_f_pointer(handle_rx, lhandle_rx)
331  call itm_amns_rx_2(lhandle_rx, out, arg1, arg2=arg2, error_status=error_status)
332  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_2_B: return"
333  end subroutine itm_amns_c_rx_2_b
334 
338  subroutine itm_amns_c_rx_2_c(handle_rx,nx,ny,out,arg1,arg2,arg3,error_status) bind(c,name="ITM_AMNS_C_RX_2_C")
339  type(c_ptr), intent(in), value :: handle_rx
340  integer(c_int), intent(in), value :: nx, ny
341  real (c_double), intent(out) :: out(0:nx-1,0:ny-1)
342  real (c_double), intent(in) :: arg1(0:nx-1,0:ny-1), arg2(0:nx-1,0:ny-1), arg3(0:nx-1,0:ny-1)
343  type(amns_error_type), intent(out) :: error_status
344 
345  ! internal
346  type(amns_handle_rx_type), pointer :: lhandle_rx
347 
348  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_2_C: enter"
349  call c_f_pointer(handle_rx, lhandle_rx)
350  call itm_amns_rx_2(lhandle_rx, out, arg1, arg2=arg2, arg3=arg3, error_status=error_status)
351  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_2_C: return"
352  end subroutine itm_amns_c_rx_2_c
353 
354 
358  subroutine itm_amns_c_rx_3_a(handle_rx,nx,ny,nz,out,arg1,error_status) bind(c,name="ITM_AMNS_C_RX_3_A")
359  type(c_ptr), intent(in), value :: handle_rx
360  integer(c_int), intent(in), value :: nx, ny, nz
361  real (c_double), intent(out) :: out(0:nx-1,0:ny-1,0:nz-1)
362  real (c_double), intent(in) :: arg1(0:nx-1,0:ny-1,0:nz-1)
363  type(amns_error_type), intent(out) :: error_status
364 
365  ! internal
366  type(amns_handle_rx_type), pointer :: lhandle_rx
367 
368  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_3_A: enter"
369  call c_f_pointer(handle_rx, lhandle_rx)
370  call itm_amns_rx_3(lhandle_rx, out, arg1, error_status=error_status)
371  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_3_A: return"
372  end subroutine itm_amns_c_rx_3_a
373 
377  subroutine itm_amns_c_rx_3_b(handle_rx,nx,ny,nz,out,arg1,arg2,error_status) bind(c,name="ITM_AMNS_C_RX_3_B")
378  type(c_ptr), intent(in), value :: handle_rx
379  integer(c_int), intent(in), value :: nx, ny, nz
380  real (c_double), intent(out) :: out(0:nx-1,0:ny-1,0:nz-1)
381  real (c_double), intent(in) :: arg1(0:nx-1,0:ny-1,0:nz-1), arg2(0:nx-1,0:ny-1,0:nz-1)
382  type(amns_error_type), intent(out) :: error_status
383 
384  ! internal
385  type(amns_handle_rx_type), pointer :: lhandle_rx
386 
387  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_3_B: enter"
388  call c_f_pointer(handle_rx, lhandle_rx)
389  call itm_amns_rx_3(lhandle_rx, out, arg1, arg2=arg2, error_status=error_status)
390  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_3_B: return"
391  end subroutine itm_amns_c_rx_3_b
392 
396  subroutine itm_amns_c_rx_3_c(handle_rx,nx,ny,nz,out,arg1,arg2,arg3,error_status) bind(c,name="ITM_AMNS_C_RX_3_C")
397  type(c_ptr), intent(in), value :: handle_rx
398  integer(c_int), intent(in), value :: nx, ny, nz
399  real (c_double), intent(out) :: out(0:nx-1,0:ny-1,0:nz-1)
400  real (c_double), intent(in) :: arg1(0:nx-1,0:ny-1,0:nz-1), arg2(0:nx-1,0:ny-1,0:nz-1), arg3(0:nx-1,0:ny-1,0:nz-1)
401  type(amns_error_type), intent(out) :: error_status
402 
403  ! internal
404  type(amns_handle_rx_type), pointer :: lhandle_rx
405 
406  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_3_C: enter"
407  call c_f_pointer(handle_rx, lhandle_rx)
408  call itm_amns_rx_3(lhandle_rx, out, arg1, arg2=arg2, arg3=arg3, error_status=error_status)
409  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_RX_3_C: return"
410  end subroutine itm_amns_c_rx_3_c
411 
412 
416  subroutine itm_amns_c_setup_reactants(reactants_handle, string, index, n_reactants) bind(c, name="ITM_AMNS_C_SETUP_REACTANTS")
417  type(c_ptr), intent(out) :: reactants_handle
418  character(kind=c_char), intent(in) :: string(*)
419  integer(c_int), intent(in), value :: index, n_reactants
420  integer i
421 
422  ! internal
423  type(amns_reactants_type), pointer :: lreactants
424 
425  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SETUP_REACTANTS: enter, string"
426  allocate(lreactants)
427  allocate(lreactants%components(n_reactants))
428  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SETUP_REACTANTS: ", lreactants%string
429  ! FIXME: %string is an array, provide access functions
430  allocate(lreactants%string(1))
431  lreactants%string(1) = ''
432  do i=1, len(lreactants%string(1))
433  if(string(i) .EQ. c_null_char) exit
434  lreactants%string(1)(i:i) = string(i)
435  end do
436  lreactants%index = index
437 
438  reactants_handle = c_loc(lreactants)
439  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SETUP_REACTANTS: return"
440  end subroutine itm_amns_c_setup_reactants
441 
445  subroutine itm_amns_c_set_reactant(reactants_handle, reactant_index, reactant) bind(c, name="ITM_AMNS_C_SET_REACTANT")
446  type(c_ptr), intent(in), value :: reactants_handle
447  integer(c_int), intent(in), value :: reactant_index
448  type(amns_reactant_type), intent(in) :: reactant
449 
450  ! internal
451  type(amns_reactants_type), pointer :: lreactants
452 
453  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SET_REACTANT: enter"
454  call c_f_pointer(reactants_handle, lreactants)
455  lreactants%components(reactant_index) = reactant
456  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_SET_REACTANT: return"
457  end subroutine itm_amns_c_set_reactant
458 
462  subroutine itm_amns_c_get_reactant(reactants_handle, reactant_index, reactant) bind(c, name="ITM_AMNS_C_GET_REACTANT")
463  type(c_ptr), intent(in), value :: reactants_handle
464  integer(c_int), intent(in), value :: reactant_index
465  type(amns_reactant_type), intent(out) :: reactant
466 
467  ! internal
468  type(amns_reactants_type), pointer :: lreactants
469 
470  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_GET_REACTANT: enter"
471  call c_f_pointer(reactants_handle, lreactants)
472  reactant = lreactants%components(reactant_index)
473  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_GET_REACTANT: return"
474  end subroutine itm_amns_c_get_reactant
475 
476 
480  subroutine itm_amns_c_finish_reactants(reactants_handle) bind(c, name="ITM_AMNS_C_FINISH_REACTANTS")
481  type(c_ptr), intent(inout) :: reactants_handle
482 
483  ! internal
484  type(amns_reactants_type), pointer :: lreactants
485 
486  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_FINISH_REACTANTS: enter"
487  call c_f_pointer(reactants_handle, lreactants)
488  deallocate(lreactants%components)
489  deallocate(lreactants)
490  reactants_handle = c_null_ptr
491  if (itm_amns_c_debug) write (*,*) "ITM_AMNS_C_FINISH_REACTANTS: return"
492  end subroutine itm_amns_c_finish_reactants
493 
494 
495 
496 end module amns_module_isoc
subroutine itm_amns_rx_2(handle_rx, out, arg1, arg2, arg3, error_status)
get the rates associated with the input (2d) args for a particular reaction
subroutine itm_amns_query_table(handle_rx, query, answer, error_status)
query routine for a particular reaction
Type for specifying the AMNS version ("interoperable" version)
subroutine itm_amns_c_rx_3_b(handle_rx, nx, ny, nz, out, arg1, arg2, error_status)
get the rates associated with the input (3d) args for a particular reaction Expanded into three separ...
subroutine itm_amns_c_query_table(handle_rx, query, answer, error_status)
provides ITM_AMNS_C_QUERY_TABLE by calling ITM_AMNS_QUERY_TABLE
subroutine itm_amns_c_rx_0_c(handle_rx, out, arg1, arg2, arg3, error_status)
get the rates associated with the input (0d) args for a particular reaction Expanded into three separ...
subroutine itm_amns_c_rx_1_c(handle_rx, nx, out, arg1, arg2, arg3, error_status)
get the rates associated with the input (1d) args for a particular reaction Expanded into three separ...
subroutine itm_amns_c_rx_2_a(handle_rx, nx, ny, out, arg1, error_status)
get the rates associated with the input (2d) args for a particular reaction Expanded into three separ...
subroutine itm_amns_c_setup_version(handle, version, error_status)
provides ITM_AMNS_C_SETUP by calling ITM_AMNS_SETUP with version argument
if error_status & query
Definition: amns.pyx:11
for i
Definition: amns.pyx:365
subroutine itm_amns_c_rx_0_a(handle_rx, out, arg1, error_status)
get the rates associated with the input (0d) args for a particular reaction Expanded into three separ...
subroutine itm_amns_c_rx_1_b(handle_rx, nx, out, arg1, arg2, error_status)
get the rates associated with the input (1d) args for a particular reaction Expanded into three separ...
if error_status & answer
Definition: amns.pyx:11
subroutine itm_amns_c_finish(handle, error_status)
provides ITM_AMNS_C_FINISH by calling ITM_AMNS_FINISH
subroutine itm_amns_c_set(handle, set, error_status)
provides ITM_AMNS_C_SET by calling ITM_AMNS_SET
type for the AMNS handle (opaque for user codes) NOT interoperable with C.
Definition: amns_types.F90:87
Type for answers from queries in the AMNS package ("interoperable" version)
Type for error returns from the AMNS interface ("interoperable" version)
subroutine itm_amns_rx_0(handle_rx, out, arg1, arg2, arg3, error_status)
get the rates associated with the input (0d) args for a particular reaction
subroutine itm_amns_c_set_table(handle_rx, set, error_status)
provides ITM_AMNS_C_SET_TABLE by calling ITM_AMNS_SET_TABLE
subroutine itm_amns_c_set_reactant(reactants_handle, reactant_index, reactant)
Additional helper routines not contained in amns_module, but required for using the type amns_reactan...
subroutine itm_amns_c_rx_0_b(handle_rx, out, arg1, arg2, error_status)
get the rates associated with the input (0d) args for a particular reaction Expanded into three separ...
subroutine itm_amns_setup(handle, version, error_status)
initialization call for the AMNS package
Definition: amns_module.F90:47
subroutine itm_amns_finish(handle, error_status)
finalization call for the AMNS package
subroutine itm_amns_rx_3(handle_rx, out, arg1, arg2, arg3, error_status)
get the rates associated with the input (3d) args for a particular reaction
subroutine itm_amns_rx_1(handle_rx, out, arg1, arg2, arg3, error_status)
get the rates associated with the input (1d) args for a particular reaction
subroutine itm_amns_setup_table(handle, reaction_type, reactants, handle_rx, error_status)
initialization call for a particular reaction
subroutine itm_amns_c_rx_3_c(handle_rx, nx, ny, nz, out, arg1, arg2, arg3, error_status)
get the rates associated with the input (3d) args for a particular reaction Expanded into three separ...
subroutine itm_amns_c_setup_table(handle, reaction_type, reactant, handle_rx, error_status)
provides ITM_AMNS_C_SETUP_TABLE by calling ITM_AMNS_SETUP_TABLE
subroutine itm_amns_c_rx_3_a(handle_rx, nx, ny, nz, out, arg1, error_status)
get the rates associated with the input (3d) args for a particular reaction Expanded into three separ...
subroutine itm_amns_c_rx_2_b(handle_rx, nx, ny, out, arg1, arg2, error_status)
get the rates associated with the input (2d) args for a particular reaction Expanded into three separ...
Type used for specifying reactions when using the AMNS interface ("interoperable" version) ...
Type for the AMNS RX handle (opaque for user codes) NOT interoperable with C.
Definition: amns_types.F90:98
subroutine itm_amns_set(handle, set, error_status)
set a parameter for the AMNS package
subroutine itm_amns_set_table(handle_rx, set, error_status)
set a parameter for a particular reaction
Type for querying parameters in the AMNS package ("interoperable" version)
Type for indicating a single reactant or product when using the AMNS interface.
subroutine itm_amns_c_finish_table(handle_rx, error_status)
provides ITM_AMNS_C_FINISH_TABLE by calling ITM_AMNS_FINISH_TABLE
Type for setting parameters in the AMNS package ("interoperable" version)
subroutine itm_amns_c_rx_1_a(handle_rx, nx, out, arg1, error_status)
get the rates associated with the input (1d) args for a particular reaction Expanded into three separ...
subroutine itm_amns_finish_table(handle_rx, error_status)
finalization call for a particular reaction
if error_status & error_status
Definition: amns.pyx:11
subroutine itm_amns_c_get_reactant(reactants_handle, reactant_index, reactant)
Additional helper routines not contained in amns_module, but required for using the type amns_reactan...
subroutine itm_amns_c_setup(handle, error_status)
provides ITM_AMNS_C_SETUP by calling ITM_AMNS_SETUP
if error_status len(self._reactants))
subroutine itm_amns_c_query(handle, query, answer, error_status)
provides ITM_AMNS_C_QUERY by calling ITM_AMNS_QUERY
Type for indicating the reactants when using the AMNS interface NOT interoperable with C...
Definition: amns_types.F90:75
subroutine itm_amns_c_setup_reactants(reactants_handle, string, index, n_reactants)
Additional helper routines not contained in amns_module, but required for using the type amns_reactan...
subroutine itm_amns_query(handle, query, answer, error_status)
query routine for the AMNS package
The derived types defined here are meant to be interoperable with C. The ones for this is not the cas...
Definition: amns_types.F90:17
subroutine itm_amns_c_rx_2_c(handle_rx, nx, ny, out, arg1, arg2, arg3, error_status)
get the rates associated with the input (2d) args for a particular reaction Expanded into three separ...
subroutine itm_amns_c_finish_reactants(reactants_handle)
Additional helper routines not contained in amns_module, but required for using the type amns_reactan...