ESPUTR
calculation of sputtering yields
Functions/Subroutines
esputr_cgi.f90 File Reference

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...
 

Detailed Description

CGI (Common Gateway Interface) for esputr.

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)

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.

Function/Subroutine Documentation

program esputr_cgi ( )
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().

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the caller graph for this function: