33 integer,
save :: version_no
34 character (len=256),
save :: USER
35 character (len=32),
save :: ds_version=
'4.10b', backend=
'mdsplus', dataversion_tag=DATAVERSION_TAG, &
36 local_dataversion_tag=
''
37 type (type_amns
),
save,
pointer :: amns00(:)
62 integer :: euitm_open_env, euitm_open_hdf5, euitm_create_env, euitm_create_hdf5
63 integer :: euitm_status
67 character (len=256) :: file
68 character(len=5) :: treename =
'euitm'
69 character(len=4) :: amnspath =
'amns'
71 character(len=32) :: amns_debug_env
79 call getenv(
'ITM_AMNS_DEBUG', amns_debug_env)
80 amns_debug = amns_debug_env.eq.
"yes" .or. amns_debug_env.eq.
"YES" .or. amns_debug_env.eq.
"Yes"
81 if (amns_debug) handle%debug = .true.
82 amns_debug = amns_debug_env.eq.
"no" .or. amns_debug_env.eq.
"NO" .or. amns_debug_env.eq.
"No"
83 if (amns_debug) handle%debug = .false.
85 if(handle%debug)
write(*,*)
'ITM_AMNS_SETUP start'
87 call getenv(
'DATAVERSION_TAG', local_dataversion_tag)
88 if(local_dataversion_tag .ne. dataversion_tag)
then
89 write(*,*)
'The AMNS library was compiled for datastructure version ', trim(dataversion_tag)
90 write(*,*)
'It is being used in an environment with datastructure version ', trim(local_dataversion_tag)
91 write(*,*)
'This is likely to be a major problem --- aborting!'
97 stop
'AMNS library mismatch'
101 default_version%string=
'DEFAULT'
102 call getenv(
'USER', user)
103 default_version%user = user
104 call getenv(
'DATAVERSION', ds_version)
105 write(*,*)
'Using DATAVERSION ', trim(ds_version)
107 if(present(version))
then
108 if(handle%debug)
write(*,*)
'ITM_AMNS_SETUP: requested database = ',trim(version%string), version%number
109 handle%version=version
110 version_no = version%number
111 if(version%user .eq.
'')
then
112 handle%version%USER = user
113 write(*,*)
'Reset USER to ', trim(user)
116 handle%version=default_version
119 if(handle%version%backend .eq.
'')
then
120 handle%version%backend = backend
126 if(handle%version%backend.eq.
'ascii')
then
127 write(file,
'(a,''_'',i6.6,''_'',i6.6,''.CPO'')')
'amns',shot,run
128 write(*,*)
'Reading data from ', trim(file),
' for ', shot, run
129 call open_read_file(1, trim(file))
130 call read_cpo(amns00,
'amns')
133 elseif(handle%version%backend.eq.
'hdf5')
then
134 euitm_status = euitm_open_hdf5(treename, shot, run, idx)
135 write(*,*)
'EUITM_STATUS, IDX = ', euitm_status, idx
136 call euitm_get(idx, amnspath, amns00)
137 call euitm_close(idx)
138 elseif(handle%version%backend.eq.
'mdsplus')
then
139 euitm_status = euitm_open_env(treename, shot, run, idx, &
140 trim(handle%version%USER),
'amns', trim(ds_version))
141 write(*,*)
'EUITM_STATUS, IDX = ', euitm_status, idx
142 if(euitm_status.ne.0)
then
143 handle%version%USER =
'public'
144 euitm_status = euitm_open_env(treename, shot, run, idx, &
145 trim(handle%version%USER),
'amns', trim(ds_version))
146 write(*,*)
'EUITM_STATUS, IDX = ', euitm_status, idx
147 if(euitm_status.ne.0)
then
148 write(*,*)
'Could not find any AMNS data, even under "public"'
151 error_status%string=
'Could not find any AMNS data, even under "public"'
154 stop
'Could not find any AMNS data, even under "public"'
158 call euitm_get(idx, amnspath, amns00)
159 call euitm_close(idx)
162 write(*,*)
'The version of the AMNS routines without the UAL was compiled'
163 write(*,*)
'Use the ascii backend'
166 error_status%string=
'Error - UAL called in a non-UAL version of the code'
169 stop
'Error - UAL called in a non-UAL version of the code'
173 if(.not.
associated(amns00(1)%version_ind))
then
174 write(*,*)
'No version information in INDEX shot'
177 error_status%string=
"No version information in INDEX shot"
180 stop
"No version information in INDEX shot"
183 if(version_no.le.0)
then
184 version_no=
size(amns00(1)%version_ind)
185 if(handle%debug)
write(*,*)
'Found global version # ', version_no
187 if(version_no.gt.
size(amns00(1)%version_ind))
then
188 write(*,*)
'Requested version out of range ', version_no,
' > ',
size(amns00(1)%version_ind)
194 stop
'Requested version out of range'
198 handle%version%string = trim(handle%version%USER) //
': ' // trim(handle%version%backend)
199 handle%version%number = version_no
202 if(handle%debug)
write(*,*)
'ITM_AMNS_SETUP: requested error_status response'
204 handle%initialized=.true.
205 if(handle%debug)
write(*,*)
'ITM_AMNS_SETUP end'
234 integer :: no_of_reactants,
i, is
235 integer :: izn, izm, shot, run, ierr
236 character*128 :: data_file, error_description
237 integer :: iversion, nrelease, irelease
244 handle_rx%debug= handle%debug
245 handle_rx%reaction_type= reaction_type%string
246 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_SETUP_TABLE start'
250 no_of_reactants=
size(
reactants%components)
251 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_SETUP_TABLE: number of reactants = ',no_of_reactants
252 do i=1,no_of_reactants
255 (
reactants%components(
i)%int_specifier .ge. 0 .or.
reactants%components(
i)%int_specifier .eq. itm_int_invalid))
then
256 if(nint(
reactants%components(
i)%ZN) .gt. izn)
then
258 if(reaction_type%isotope_resolved .ne. 0) izm=nint(
reactants%components(
i)%MI)
259 else if(nint(
reactants%components(
i)%ZN) .eq. izn .and. reaction_type%isotope_resolved .ne. 0)
then
263 if(handle_rx%debug) &
264 write(*,
'(a,i3,3(1x,f6.2),i2)')
'ITM_AMNS_SETUP_TABLE: reactant# ZN, ZA, MI, LR = ', &
270 handle_rx%no_of_reactants=no_of_reactants
271 allocate(handle_rx%components(no_of_reactants))
272 handle_rx%components=
reactants%components
275 handle_rx%no_of_reactants=0
278 allocate(handle_rx%string(
size(
reactants%string)))
282 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_SETUP_TABLE: requested error_status response'
291 write(*,*)
'Could not calculate the AMNS shot number'
294 error_status%string=
"Could not calculate the AMNS shot number"
297 stop
'Could not calculate the AMNS shot number'
302 iversion=handle%version%number
303 if(
associated(amns00(1)%version_ind(iversion)%data_release))
then
304 nrelease=
size(amns00(1)%version_ind(iversion)%data_release)
305 do irelease=1, nrelease
306 if(amns00(1)%version_ind(iversion)%data_release(irelease)%shot .eq. shot)
then
307 run=amns00(1)%version_ind(iversion)%data_release(irelease)%run
315 write(
error_status%string,*)
'No data found for ', shot,
' in version ', iversion
318 write(*,*)
'No data found for ', shot,
' in version ', iversion
322 if(handle_rx%debug)
write(*,*)
'Found local version ', run,
' for case = ', shot
323 handle_rx%version%number = run
327 handle_rx%grid, handle_rx%source, shot, run, handle%version%backend, handle%version%user, ds_version, ierr, error_description, handle_rx%debug)
329 handle_rx%filled=.true.
333 error_status%string=
"'get_amns_data' returned an error - " // error_description
336 stop
"'get_amns_data' returned an error"
339 handle_rx%initialized=.true.
340 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_SETUP_TABLE end'
354 use deallocate_structures
365 if(handle%debug)
write(*,*)
'ITM_AMNS_FINISH start'
366 if(handle%initialized)
then
367 handle%initialized=.false.
369 if(handle%debug)
write(*,*)
'ITM_AMNS_FINISH: Attempt to FINISH an uninitialized case'
372 if(handle%debug)
write(*,*)
'ITM_AMNS_SETUP_TABLE: requested error_status response'
375 call deallocate_cpo(amns00)
376 if(handle%debug)
write(*,*)
'ITM_AMNS_FINISH end'
398 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_FINISH_TABLE start'
399 if(handle_rx%initialized)
then
400 handle_rx%initialized=.false.
401 if(
allocated(handle_rx%components))
then
402 deallocate(handle_rx%components)
404 handle_rx%no_of_reactants=0
405 if(
allocated(handle_rx%string))
then
406 deallocate(handle_rx%string)
408 call
delete(handle_rx%grid)
410 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_FINISH_TABLE: Attempt to FINISH an uninitialized table'
413 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_FINISH_TABLE: requested error_status response'
415 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_FINISH_TABLE end'
443 if(handle%debug)
write(*,*)
'ITM_AMNS_QUERY start'
444 if(handle%debug)
write(*,*)
'ITM_AMNS_QUERY: query = ',trim(
query%string)
446 select case (
query%string)
448 answer%string=handle%version%string
449 answer%number=handle%version%number
451 answer%string=
'Not implemented yet'
454 if(handle%debug)
write(*,*)
'ITM_AMNS_QUERY: requested error_status response'
456 if(handle%debug)
write(*,*)
'ITM_AMNS_QUERY end'
497 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_QUERY_TABLE start'
498 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_QUERY_TABLE: query = ',trim(
query%string)
500 select case (
query%string)
502 answer%string=handle_rx%source
503 case (
"no_of_reactants")
505 answer%number=handle_rx%no_of_reactants
508 answer%number=handle_rx%index
510 if(handle_rx%filled)
then
515 case (
"reaction_type")
516 answer%string= handle_rx%reaction_type
519 do ir=1,handle_rx%no_of_reactants
521 trim(
string(nint(handle_rx%components(ir)%ZN))) //
"/" // &
522 trim(
string(nint(handle_rx%components(ir)%ZA))) //
"/" // &
523 trim(
string(nint(handle_rx%components(ir)%MI))) //
"/" // &
524 trim(
string(handle_rx%components(ir)%LR))
529 answer%number=handle_rx%version%number
531 answer%string=handle_rx%grid%state_label
534 answer%string=handle_rx%grid%result_unit
536 case (
"result_label")
537 answer%string=handle_rx%grid%result_label
541 answer%number=handle_rx%grid%ndim
544 answer%number=handle_rx%grid%ndim
546 answer%string=
'Not implemented yet'
549 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_QUERY_TABLE: requested error_status response'
551 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_QUERY_TABLE end'
581 if(handle%debug)
write(*,*)
'ITM_AMNS_SET start'
582 if(handle%debug)
write(*,*)
'ITM_AMNS_SET: set = ',trim(set%string)
584 if(handle%debug)
write(*,*)
'ITM_AMNS_SET_TABLE: requested error_status response'
587 select case(set%string)
592 case (
"backend=mdsplus")
593 handle%version%backend=
'mdsplus'
594 case (
"backend=hdf5")
595 handle%version%backend=
'hdf5'
596 case (
"backend=ascii")
597 handle%version%backend=
'ascii'
599 write(*,*)
"ITM_AMNS_SET: not yet implemented ", trim(set%string)
601 if(handle%debug)
write(*,*)
'ITM_AMNS_SET end'
630 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_SET_TABLE start'
631 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_SET_TABLE: set = ',trim(set%string)
633 select case (set%string)
635 if(handle_rx%filled)
then
638 write(*,*)
'ITM_AMNS_SET_TABLE: Attempt to set WARN using an unfilled table'
641 if(handle_rx%filled)
then
644 write(*,*)
'ITM_AMNS_SET_TABLE: Attempt to set NOWARN using an unfilled table'
647 handle_rx%debug=.true.
649 handle_rx%debug=.false.
651 write(*,*)
'ITM_AMNS_SET_TABLE: not implemeted yet '
654 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_SET_TABLE: requested error_status response'
656 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_SET_TABLE end'
676 real (kind=R8),
intent(out) :: out
677 real (kind=R8),
intent(in) :: arg1,arg2,arg3
680 type(data_error_t
) :: data_error
681 real (kind=R8) :: out_d(1),arg1_d(1),arg2_d(1),arg3_d(1)
690 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_0 start'
695 if(present(arg3))
then
696 if(present(arg2))
then
697 if(handle_rx%filled)
then
702 reshape(arg1_d,(/
size(arg1_d)/)), &
703 reshape(arg2_d,(/
size(arg2_d)/)), &
704 reshape(arg3_d,(/
size(arg3_d)/)), &
705 fd1=out_d, grid=handle_rx%grid, &
706 data_error=data_error)
711 if(data_error%ierr.ne.0)
then
712 write(*,*)
'interpol returned an error: ', data_error%ierr, trim(data_error%cerr)
713 stop
'error in interpol'
718 write(*,*)
'ITM_AMNS_RX_0: Attempt to INTERPOLATE using an unfilled table'
721 write(*,*)
'ITM_AMNS_RX_0: arg3 present but not arg2!'
724 if(present(arg2))
then
725 if(handle_rx%filled)
then
729 reshape(arg1_d,(/
size(arg1_d)/)), &
730 reshape(arg2_d,(/
size(arg2_d)/)), &
731 fd1=out_d, grid=handle_rx%grid, &
732 data_error=data_error)
737 if(data_error%ierr.ne.0)
then
738 write(*,*)
'interpol returned an error: ', data_error%ierr, trim(data_error%cerr)
739 stop
'error in interpol'
744 write(*,*)
'ITM_AMNS_RX_0: Attempt to INTERPOLATE using an unfilled table'
747 if(handle_rx%filled)
then
750 reshape(arg1_d,(/
size(arg1_d)/)), &
751 fd1=out_d, grid=handle_rx%grid, &
752 data_error=data_error)
757 if(data_error%ierr.ne.0)
then
758 write(*,*)
'interpol returned an error: ', data_error%ierr, trim(data_error%cerr)
759 stop
'error in interpol'
764 write(*,*)
'ITM_AMNS_RX_0: Attempt to INTERPOLATE using an unfilled table'
769 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_0 end'
789 real (kind=R8),
intent(out) :: out(:)
790 real (kind=R8),
intent(in) :: arg1(:),arg2(:),arg3(:)
793 type(data_error_t
) :: data_error
802 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_1 start'
807 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_1: bounds(out) = ',lbound(out),ubound(out)
808 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_1: bounds(arg1) = ',lbound(arg1),ubound(arg1)
809 if(present(arg3))
then
810 if(present(arg2))
then
811 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_1: bounds(arg2) = ',lbound(arg2),ubound(arg2)
812 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_1: bounds(arg3) = ',lbound(arg3),ubound(arg3)
813 if(handle_rx%filled)
then
815 reshape(arg1,(/
size(arg1)/)), &
816 reshape(arg2,(/
size(arg2)/)), &
817 reshape(arg3,(/
size(arg3)/)), &
818 fd1=out, grid=handle_rx%grid, &
819 data_error=data_error)
824 if(data_error%ierr.ne.0)
then
825 write(*,*)
'interpol returned an error: ', data_error%ierr, trim(data_error%cerr)
826 stop
'error in interpol'
830 write(*,*)
'ITM_AMNS_RX_1: Attempt to INTERPOLATE using an unfilled table'
833 write(*,*)
'ITM_AMNS_RX_1: arg3 present but not arg2!'
836 if(present(arg2))
then
837 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_1: bounds(arg2) = ',lbound(arg2),ubound(arg2)
838 if(handle_rx%filled)
then
840 reshape(arg1,(/
size(arg1)/)), &
841 reshape(arg2,(/
size(arg2)/)), &
842 fd1=out, grid=handle_rx%grid, &
843 data_error=data_error)
848 if(data_error%ierr.ne.0)
then
849 write(*,*)
'interpol returned an error: ', data_error%ierr, trim(data_error%cerr)
850 stop
'error in interpol'
854 write(*,*)
'ITM_AMNS_RX_1: Attempt to INTERPOLATE using an unfilled table'
857 if(handle_rx%filled)
then
859 reshape(arg1,(/
size(arg1)/)), &
860 fd1=out, grid=handle_rx%grid, &
861 data_error=data_error)
866 if(data_error%ierr.ne.0)
then
867 write(*,*)
'interpol returned an error: ', data_error%ierr, trim(data_error%cerr)
868 stop
'error in interpol'
872 write(*,*)
'ITM_AMNS_RX_1: Attempt to INTERPOLATE using an unfilled table'
877 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_1 end'
897 real (kind=R8),
intent(out) :: out(:,:)
898 real (kind=R8),
intent(in) :: arg1(:,:),arg2(:,:),arg3(:,:)
901 real (kind=R8) :: tmp_out(size(out))
903 type(data_error_t
) :: data_error
912 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_2 start'
917 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_2: bounds(out) = ',lbound(out),ubound(out)
918 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_2: bounds(arg1) = ',lbound(arg1),ubound(arg1)
919 if(present(arg3))
then
920 if(present(arg2))
then
921 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_2: bounds(arg2) = ',lbound(arg2),ubound(arg2)
922 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_2: bounds(arg3) = ',lbound(arg3),ubound(arg3)
923 if(handle_rx%filled)
then
925 reshape(arg1,(/
size(arg1)/)), &
926 reshape(arg2,(/
size(arg2)/)), &
927 reshape(arg3,(/
size(arg3)/)), &
928 fd1=tmp_out, grid=handle_rx%grid, &
929 data_error=data_error)
934 if(data_error%ierr.ne.0)
then
935 write(*,*)
'interpol returned an error: ', data_error%ierr, trim(data_error%cerr)
936 stop
'error in interpol'
939 out=reshape(tmp_out,shape(out))
941 write(*,*)
'ITM_AMNS_RX_2: Attempt to INTERPOLATE using an unfilled table'
944 write(*,*)
'ITM_AMNS_RX_2: arg3 present but not arg2!'
947 if(present(arg2))
then
948 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_2: bounds(arg2) = ',lbound(arg2),ubound(arg2)
949 if(handle_rx%filled)
then
951 reshape(arg1,(/
size(arg1)/)), &
952 reshape(arg2,(/
size(arg2)/)), &
953 fd1=tmp_out, grid=handle_rx%grid, &
954 data_error=data_error)
959 if(data_error%ierr.ne.0)
then
960 write(*,*)
'interpol returned an error: ', data_error%ierr, trim(data_error%cerr)
961 stop
'error in interpol'
964 out=reshape(tmp_out,shape(out))
966 write(*,*)
'ITM_AMNS_RX_2: Attempt to INTERPOLATE using an unfilled table'
969 if(handle_rx%filled)
then
971 reshape(arg1,(/
size(arg1)/)), &
972 fd1=tmp_out, grid=handle_rx%grid, &
973 data_error=data_error)
978 if(data_error%ierr.ne.0)
then
979 write(*,*)
'interpol returned an error: ', data_error%ierr, trim(data_error%cerr)
980 stop
'error in interpol'
983 out=reshape(tmp_out,shape(out))
985 write(*,*)
'ITM_AMNS_RX_2: Attempt to INTERPOLATE using an unfilled table'
990 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_2 end'
1010 real (kind=R8),
intent(out) :: out(:,:,:)
1011 real (kind=R8),
intent(in) :: arg1(:,:,:),arg2(:,:,:),arg3(:,:,:)
1014 real (kind=R8) :: tmp_out(size(out))
1016 type(data_error_t
) :: data_error
1025 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_3 start'
1030 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_3: bounds(out) = ',lbound(out),ubound(out)
1031 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_3: bounds(arg1) = ',lbound(arg1),ubound(arg1)
1032 if(present(arg3))
then
1033 if(present(arg2))
then
1034 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_3: bounds(arg2) = ',lbound(arg2),ubound(arg2)
1035 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_3: bounds(arg3) = ',lbound(arg3),ubound(arg3)
1036 if(handle_rx%filled)
then
1038 reshape(arg1,(/
size(arg1)/)), &
1039 reshape(arg2,(/
size(arg2)/)), &
1040 reshape(arg3,(/
size(arg3)/)), &
1041 fd1=tmp_out, grid=handle_rx%grid, &
1042 data_error=data_error)
1047 if(data_error%ierr.ne.0)
then
1048 write(*,*)
'interpol returned an error: ', data_error%ierr, trim(data_error%cerr)
1049 stop
'error in interpol'
1052 out=reshape(tmp_out,shape(out))
1054 write(*,*)
'ITM_AMNS_RX_3: Attempt to INTERPOLATE using an unfilled table'
1057 write(*,*)
'ITM_AMNS_RX_3: arg3 present but not arg2!'
1060 if(present(arg2))
then
1061 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_3: bounds(arg2) = ',lbound(arg2),ubound(arg2)
1062 if(handle_rx%filled)
then
1064 reshape(arg1,(/
size(arg1)/)), &
1065 reshape(arg2,(/
size(arg2)/)), &
1066 fd1=tmp_out, grid=handle_rx%grid, &
1067 data_error=data_error)
1072 if(data_error%ierr.ne.0)
then
1073 write(*,*)
'interpol returned an error: ', data_error%ierr, trim(data_error%cerr)
1074 stop
'error in interpol'
1077 out=reshape(tmp_out,shape(out))
1079 write(*,*)
'ITM_AMNS_RX_3: Attempt to INTERPOLATE using an unfilled table'
1082 if(handle_rx%filled)
then
1084 reshape(arg1,(/
size(arg1)/)), &
1085 fd1=tmp_out, grid=handle_rx%grid, &
1086 data_error=data_error)
1091 if(data_error%ierr.ne.0)
then
1092 write(*,*)
'interpol returned an error: ', data_error%ierr, trim(data_error%cerr)
1093 stop
'error in interpol'
1096 out=reshape(tmp_out,shape(out))
1098 write(*,*)
'ITM_AMNS_RX_3: Attempt to INTERPOLATE using an unfilled table'
1103 if(handle_rx%debug)
write(*,*)
'ITM_AMNS_RX_3 end'
subroutine, public interpol(w, x, y, z, fd1, fd2, fd3, fd4, grid, data_error)
interpolate in the grid
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 end_amns_data
deallocate cpos
subroutine get_amns_data(reaction_type, reactants, grid, source, shot, run, backend, user, ds_version, ierr, error_description, debug)
transfer data from the CPO to the internal data structure
type for the AMNS handle (opaque for user codes) NOT interoperable with C.
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_setup(handle, version, error_status)
initialization call for the AMNS package
subroutine itm_amns_finish(handle, error_status)
finalization call for the AMNS package
Module implementing various utility functions for the AMNS interface.
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
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.
subroutine itm_amns_set(handle, set, error_status)
set a parameter for the AMNS package
subroutine, public delete(grid)
deallocate a grid
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 setting parameters in the AMNS package ("interoperable" version)
subroutine itm_amns_finish_table(handle_rx, error_status)
finalization call for a particular reaction
if error_status answer number def version(self) if error_status &error_status if error_status Reactants reactants
if error_status & error_status
Type for indicating the reactants when using the AMNS interface NOT interoperable with C...
get the rates associated with the input args for a particular reaction (generic interface for 1d...
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...
subroutine, public set_option(grid, warning)
set the "with_warning" flag in grid to the value of "warning"