ESPUTR
calculation of sputtering yields
|
CGI (Common Gateway Interface) for esputr. More...
Go to the source code of this file.
Functions/Subroutines | |
program | esputr_cgi |
subroutine | split (csvString, array) |
Split one line into individual strings for each comma separated substring. More... | |
subroutine | toreal8 (strArr, realArr) |
Convert array of strings into array of reals. More... | |
subroutine | sendavailablecombinations () |
Send the list of available target-projectile combinations to the server. More... | |
subroutine | writejsonarray (name, arr) |
Write the list of the projectile-target combinations in JSON (JavaScript Object Notation) format. More... | |
subroutine | initesputr () |
Initialize all types of models. More... | |
character(dict_value_length *2) function | getlastmessage () |
Read two last lines printed in the output unit. More... | |
CGI (Common Gateway Interface) for esputr.
CGI (Common Gateway Interface) for esputr
GET request parameters
projectiles: comma separated list of projectile names (must fit version of the model: 1993 or 2001, see documentation of the corresponding module)
targets: comma separated list of target names (must fit the model version as well)
versions: comma separated list of the model names (versions: 1993, 2001, 2007) for each entry
thmin: optional, minimum angle for which the yield is calculated (between 0 and pi/2)
thmax: optional, maximum angle for which the yield is calculated (between 0 and pi/2)
thdelta: the yield is calculated for [thmin:thdelta:thmax]
emin: minimum energy for which the yield is calculated (default 0, emin >= 0)
emax: maximum energy for which the yield is calculated (default 10000, emax + edelta >= emin)
edelta: the yield is calculated for [emin:edelta:emax] (default 10, edelta >= 1)
e0s: comma separated list of energies (overwrites emin, emax, edelta)
epsfilter: tolerance parameter for the energy filter. The filter takes away energy nodes where sputtering yields are equal withing relative accuracy defined by epsfilter. Default value epsfilter=0.: no filtering
If one list is shorter than another one, then the last element of the list is repeated, i.e. the following two requests are identical:
If no th* is given, the sputtering yields calculated for normal incidences. Energies in rows. If at least one th* is given, the factor the angular factor Y(theta,E)/Y(0,E) is calculated.
If the query string does not contain '=', then a JSON (JavaScript Object Notation) format list of available combinations is returned.
In case of an error 400 Bad Request is returned. The body of the response contains a rough description of the error.
Note that there is a limit of MAX_POINTS data points which are calculated in one request to limit the server load and response size.
more example queries:
Definition in file esputr_cgi.f90.
program esputr_cgi | ( | ) |
Definition at line 75 of file esputr_cgi.f90.
References cgi_protocol::cgi_begin(), cgi_protocol::cgi_end(), cgi_protocol::cgi_error(), esputr1993::esputr1993_deallocate(), esputr2001::esputr2001_deallocate(), esputr::esputr_unit, esputr_yn(), esputr_yth(), getlastmessage(), initesputr(), cgi_protocol::output_no_header, sendavailablecombinations(), split(), and toreal8().
subroutine esputr_cgi::split | ( | character(dict_value_length), intent(in) | csvString, |
character(max_param_length), dimension(:), intent(inout), allocatable | array | ||
) |
Split one line into individual strings for each comma separated substring.
Definition at line 314 of file esputr_cgi.f90.
References cgi_protocol::dict_value_length.
Referenced by esputr_cgi().
subroutine esputr_cgi::toreal8 | ( | character(max_param_length), dimension(:), intent(in) | strArr, |
real(kind=8), dimension(:), intent(inout), allocatable | realArr | ||
) |
Convert array of strings into array of reals.
Definition at line 324 of file esputr_cgi.f90.
References cgi_protocol::cgi_error().
Referenced by esputr_cgi().
subroutine esputr_cgi::sendavailablecombinations | ( | ) |
Send the list of available target-projectile combinations to the server.
Definition at line 336 of file esputr_cgi.f90.
References cgi_protocol::cgi_end(), cgi_protocol::cgi_error(), esputr1993::esputr1993_availablecombinations(), esputr2001::esputr2001_availablecombinationsn(), esputr2001::esputr2001_availablecombinationsth(), initesputr(), and writejsonarray().
Referenced by esputr_cgi().
subroutine esputr_cgi::writejsonarray | ( | character(*), intent(in) | name, |
character(*), dimension(:,:), intent(in) | arr | ||
) |
Write the list of the projectile-target combinations in JSON (JavaScript Object Notation) format.
For normal incidence the threshold energy is added for each combination, for angular dependence the minumum and maximum energy for which the data are available
Definition at line 373 of file esputr_cgi.f90.
References cgi_protocol::cgi_error(), esputr1993::esputr1993_eth(), esputr1993::esputr1993_getprojectileid(), esputr1993::esputr1993_gettargetid(), esputr2001::esputr2001_eth(), esputr2001::esputr2001_getavailableenergyrange(), esputr2001::esputr2001_getprojectiletargetidn(), and esputr2001::esputr2001_getprojectiletargetidsth().
Referenced by sendavailablecombinations().
subroutine esputr_cgi::initesputr | ( | ) |
Initialize all types of models.
Definition at line 413 of file esputr_cgi.f90.
References cgi_protocol::cgi_error(), esputr1993::esputr1993_init(), and esputr2001::esputr2001_init().
Referenced by esputr_cgi(), and sendavailablecombinations().
character(dict_value_length*2) function esputr_cgi::getlastmessage | ( | ) |
Read two last lines printed in the output unit.
Definition at line 421 of file esputr_cgi.f90.
References cgi_protocol::dict_value_length.
Referenced by esputr_cgi().