EIRAM
atomic and molecular data in form of polynomial fits
Functions/Subroutines
eiram_interfaces.f90 File Reference

Wrappers which are used to call eiram from C/C++, as well as in Matlab and Octave interfaces. More...

Go to the source code of this file.

Functions/Subroutines

subroutine eiram_load_wrapper (filePath, fileName, err)
 Wrappers are required for subroutines defined in a fortran module. See eiram_octave.hpp, eiram_octave.cpp as an example of how to call those subroutines in a C program. More...
 
subroutine eiram_deallocate_wrapper (err)
 module-less wrapper for eiram_deallocate More...
 
subroutine eiram_get_id_wrapper (fileName, reactionType, reactionIndex, id, err)
 module-less subroutine wrapper for eiram_getId More...
 
subroutine eiram_get_order_wrapper (N, M, Id, err)
 subroutine wrapper for eiram_get_order More...
 
real(eiram_dp) function eiram_calc1_fast_wrapper (Id, lnX)
 module-less wrapper for eiram_calc1_fast More...
 
subroutine eiram_calc1_wrapper (Y, Id, lnX, N, err)
 module-less wrapper for eiram_calc1 More...
 
subroutine eiram_calc12_wrapper (B, Id, lnX, M, N, err)
 module-less wrapper for eiram_calc12 More...
 
subroutine eiram_calc2_wrapper (Y, Id, LnX1, LnX2, N, err)
 module-less wrapper for eiram_calc2 More...
 
subroutine eiram_matlab_calc1 (Y, X, N, fileName, reactionType, reactionIndex, err)
 Binding for eiram_calc1 which has to be called from Matlab/Octave interface. More...
 
subroutine eiram_matlab_calc2 (Y, X1, X2, M, N, fileName, reactionType, reactionIndex, err)
 Binding for eiram_calc2 which has to be called from Matlab/Octave interface. More...
 

Detailed Description

Wrappers which are used to call eiram from C/C++, as well as in Matlab and Octave interfaces.

Authors
Markus Brenneis Marku.nosp@m.s.Br.nosp@m.ennei.nosp@m.s@un.nosp@m.i-due.nosp@m.ssel.nosp@m.dorf..nosp@m.de, Vladislav Kotov v.kot.nosp@m.ov@f.nosp@m.z-jue.nosp@m.lich.nosp@m..de (contact person)

Definition in file eiram_interfaces.f90.

Function/Subroutine Documentation

subroutine eiram_load_wrapper ( character(*), intent(in)  filePath,
character(*), intent(in)  fileName,
integer, intent(out)  err 
)

Wrappers are required for subroutines defined in a fortran module. See eiram_octave.hpp, eiram_octave.cpp as an example of how to call those subroutines in a C program.

Note
Some functioins are turned into subroutines becazse because in Octave the use of functions requires some extra work. Quotation from the Octave documentation: Note that we don't attempt to handle Fortran functions, we always use subroutine wrappers for them and pass the return value as an extra argument. The problem is that the results are written to a double* resultVar.fortran_vec(), but a function would return a double on the stack, so the return value gets invalidated when leaving the function. On could work around this problem by explicitly copying the result to the octave variable, but this is more complicated than using subroutines. module-less wrapper for eiram_load

Definition at line 44 of file eiram_interfaces.f90.

References eiram::eiram_load().

Referenced by DEFUN_DLD().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine eiram_deallocate_wrapper ( integer, intent(out)  err)

module-less wrapper for eiram_deallocate

Definition at line 53 of file eiram_interfaces.f90.

References eiram::eiram_deallocate().

Referenced by DEFUN_DLD().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine eiram_get_id_wrapper ( character(*), intent(in)  fileName,
character(*), intent(in)  reactionType,
character(*), intent(in)  reactionIndex,
integer, intent(out)  id,
integer, intent(out)  err 
)

module-less subroutine wrapper for eiram_getId

Definition at line 61 of file eiram_interfaces.f90.

References eiram::eiram_get_id().

Here is the call graph for this function:

subroutine eiram_get_order_wrapper ( integer, intent(out)  N,
integer, intent(out)  M,
integer, intent(in)  Id,
integer, intent(out)  err 
)

subroutine wrapper for eiram_get_order

Definition at line 70 of file eiram_interfaces.f90.

References eiram::eiram_get_order().

Here is the call graph for this function:

real(eiram_dp) function eiram_calc1_fast_wrapper ( integer, intent(in)  Id,
real(eiram_dp), intent(in)  lnX 
)

module-less wrapper for eiram_calc1_fast

Definition at line 85 of file eiram_interfaces.f90.

References eiram::eiram_calc1_fast().

Here is the call graph for this function:

subroutine eiram_calc1_wrapper ( real(eiram_dp), dimension(n), intent(out)  Y,
integer, intent(in)  Id,
real(eiram_dp), dimension(n), intent(in)  lnX,
integer, intent(in)  N,
integer, intent(out)  err 
)

module-less wrapper for eiram_calc1

Definition at line 95 of file eiram_interfaces.f90.

References eiram::eiram_calc1().

Here is the call graph for this function:

subroutine eiram_calc12_wrapper ( real(eiram_dp), dimension(m,n), intent(out)  B,
integer, intent(in)  Id,
real(eiram_dp), dimension(n), intent(in)  lnX,
integer, intent(in)  M,
integer, intent(in)  N,
integer, intent(out)  err 
)

module-less wrapper for eiram_calc12

Definition at line 107 of file eiram_interfaces.f90.

References eiram::eiram_calc12().

Here is the call graph for this function:

subroutine eiram_calc2_wrapper ( real(eiram_dp), dimension(n), intent(out)  Y,
integer, intent(in)  Id,
real(eiram_dp), dimension(n), intent(in)  LnX1,
real(eiram_dp), dimension(n), intent(in)  LnX2,
integer, intent(in)  N,
integer, intent(out)  err 
)

module-less wrapper for eiram_calc2

Definition at line 119 of file eiram_interfaces.f90.

References eiram::eiram_calc2().

Here is the call graph for this function:

subroutine eiram_matlab_calc1 ( real(eiram_dp), dimension(n), intent(out)  Y,
real(eiram_dp), dimension(n), intent(in)  X,
integer, intent(in)  N,
character(*), intent(in)  fileName,
character(*), intent(in)  reactionType,
character(*), intent(in)  reactionIndex,
integer, intent(out)  err 
)

Binding for eiram_calc1 which has to be called from Matlab/Octave interface.

Definition at line 133 of file eiram_interfaces.f90.

References eiram::eiram_calc1(), and eiram::eiram_get_id().

Referenced by DEFUN_DLD(), getpoints(), and mexfunction().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine eiram_matlab_calc2 ( real(eiram_dp), dimension(n,m), intent(out)  Y,
real(eiram_dp), dimension(m), intent(in)  X1,
real(eiram_dp), dimension(n), intent(in)  X2,
integer, intent(in)  M,
integer, intent(in)  N,
character(*), intent(in)  fileName,
character(*), intent(in)  reactionType,
character(*), intent(in)  reactionIndex,
integer, intent(out)  err 
)

Binding for eiram_calc2 which has to be called from Matlab/Octave interface.

WARNING: for reaction type H.4, H.10, H.12 first parameter - particle deinsity - is automatically divided by 1e8

Definition at line 157 of file eiram_interfaces.f90.

References eiram::eiram_calc2(), and eiram::eiram_get_id().

Referenced by DEFUN_DLD(), getpoints(), and mexfunction().

Here is the call graph for this function:

Here is the caller graph for this function: