...
- deallocate_edge_profiles_data
Deallocate all components of a type(edge_profiles_data_set)-stucture. - initiate_ion_list_for_input_saving
Read that part of the command file controls the input wrapper which concerns ions. - initiate_edge_profiles_data_for_input_saving
Read the part of the command file that controls saving the EIRENE data to the edge_profiles IDS. - collect_data_for_edge_profiles_input
Read the EIRENE input data intended for the edge_profiles IDS from files. - save_input_to_edge_profiles
Put EIRENE input to the edge_profiles IDS. - organize_ion_storage
Primary organization of the structure array for storing the ion data. - put_ions_to_edge_profiles
Put quantities associated with ions to the edge_profiles IDS. - fetch_input_from_edge_profiles
Get data from the edge_profiles IDS - get_quantities_from_edge_profiles
Get all physical quantities from the edge_profiles IDS - get_ions_from_edge_profiles
Get quantities associated with ions from the edge_profiles IDS - write_input_data_from_edge_profiles_ids
Write the data extracted from the edge_profiles IDS to files in the format of EIRENE input tallies
subroutine deallocate_edge_profiles_data (all_data)
...
Argument | Type | Intent | Description |
---|---|---|---|
edge_profiles_data | type(edge_profiles_data_set) | resultset | of parameters controlling the to the ''structure holding parameters obtained from the command file |
io_unit | integer | in | index of the I/O unit attached to the command file |
function subroutine collect_data_for_edge_profiles_input (edge_profiles_data)
Read the EIRENE input data intended for the edge_profiles IDS from files.
...
Argument
...
Type
...
Intent
...
Description
At the entry, the 'edge_profiles_data' structure is filled only partly (from the command file). The subroutine fills the remaining part, reading the information from data files.
Uses the subroutine read_quantity_from_file (module eirene_data_io).
Argument | Type | Intent | Description |
---|---|---|---|
edge_profiles_data | typetype(edge_profiles_data_set) | inout | structure that contains the names of the input files and accepts the data read from the files |
subroutine save_input_to_edge_profiles (idx, imas_controls, grid_controls, edge_profiles_data, eirene_grid)
Put EIRENE input to the edge_profiles IDS. The input consists of (1) a triangular grid; (2) a set of quantities (characteristics of several plasma species) defined on this grid; (3) properties of these species. The first item is provided in 'eirene_grid'; the last two, in 'edge_profiles_data'.
Uses the subroutines: put_quantity_to_ids (module imas_data_io), put_eirene_grid_to_ids (module triangular_grid_ids_io), put_ions_to_edge_profiles (this module).
Argument | Type | Intent | Description |
---|---|---|---|
idx | integer | in | index of the I/O unit attached to the IMAS database |
imas_controls | type(imas_control_panel) | in | parameters of the IMAS database and basic information to be put to IDS |
grid_controls | type(grid_control_panel) | in | parameters controlling the grid saving |
edge_profiles_data | type(edge_profiles_data_set) | in | structure that contains the names of the input files and accepts the data read from the files |
eirene_grid | type(triangular_grid) | in | structure keeping the EIRENE triangular grid |
subroutine organize_ion_storage (ion_list, ggd)
Primary organization of the structure array for storing the ion data (allocation of AoS and putting basic ion properties there).
Restrictions to be overcome: only single atoms (no molecules); one charge state per ion sort.
Argument | Type | Intent | Description |
---|---|---|---|
ion_list | type(ion_parameters), allocatable, dimension(:) | in | array that holds parameters of all ions |
ggd | type(ids_edge_profiles_time_slice) | inout | that element of the ggd AOS which is to be filled |
subroutine put_ions_to_edge_profiles (ion_list, ggd, grid_subset, grid_index)
Put quantities associated with ions to the edge_profiles IDS.
Restrictions to be overcome: only single atoms (no molecules); one charge state per ion sort.
Argument | Type | Intent | Description |
---|---|---|---|
ion_list | type(ion_parameters), dimension(:) | in | array that holds parameters of all ions |
ggd | type(ids_edge_profiles_time_slice) | inout | that element of the ggd AOS which is to be filled |
grid_subset | type(ids_generic_grid_dynamic_grid_subset), dimension(:) | in | array of grid subsets |
grid_index | integer | in | index of that element in grid_ggd AOS where the grid is placed |
subroutine fetch_input_from_edge_profiles (idx, grid_controls, fetch_grid, edge_profiles_data, eirene_grid)
Get all physical quantities from the edge_profiles IDS, putting them to a type(edge_profiles_data_set) structure. If required, get the triangular grid.
Uses the subroutines: put_quantity_to_ids (module imas_data_io), put_eirene_grid_to_ids (module triangular_grid_ids_io), put_ions_to_edge_profiles (this module).
Argument | Type | Intent | Description |
---|---|---|---|
idx | integer | in | index of the I/O unit attached to the IMAS database |
grid_controls | type(grid_control_panel) | in | parameters controlling the grid saving |
fetch_grid | logical | in | switches on reading the grid |
edge_profiles_data | type(edge_profiles_data_set) | out | the structure holding the data found in the edge_profiles IDS (except for the grid) |
eirene_grid | type(triangular_grid) | inout | structure containing the grid; if fetch_input=.true., it is filled with data read from the IDS; otherwise, it remains unchanged. |
Module equilibrium_io
????????????
...