...
The function returns a type(triangular_grid)-structure, which is partly filled with information read from the GGD grid space having the identifier index equal to 1 (i.e., being the 'primary grid space'). The function takes as a parameter the AoS of all grid spaces.
Argument | Type | Intent | Description |
---|---|---|---|
eirene_grid | type(triangular_grid) | result | Partly filled grid structure |
grid_ggd | type(ids_generic_grid_dynamic_space), dimension(:) | in | Space where the triangular grid is stored |
subroutine arrange_material_properties (eirene_grid, subsets)
Get information about the MPs of grid edges from IDS and add it to the type(triangular_grid)-structure holding the grid description. This information is stored in GGD in the form of subsets uniting the edges with certain values of the MP.
Argument | Type | Intent | Description |
---|---|---|---|
eirene_grid | type(triangular_grid) | inout | Partly filled grid structure |
subsets | type(ids_generic_grid_dynamic_grid_subset), dimension(:) | in | Space where the triangular grid is stored |
subroutine put_eirene_grid_to_ids (eirene_grid, grid_ggd, nSpaces, eirene_space_index, grid_identifier, eirene_space_name, eirene_space_description)
Place a grid into a given grid_ggd
structure by allocating the space AOS with a given number of grid spaces, putting a triangular grid given as a type(triangular_grid)
-structure into a desired element of the space
AOS, and organizing the necessary grid subsets. This subroution cannot be used for putting a grid into the 'equilibrium' IDS (because the type of the structure used for storing the GGD grid in this IDS is peculiar). To put the grid into the 'equilibrium' IDS, use the function put_eirene_grid_to_equilibrium.
Argument | Type | Intent | Description |
---|---|---|---|
eirene_grid | type(triangular_grid) | in | The grid to be saved |
grid_ggd | type(ids_generic_grid_aos3_root) | pointer | Pointer to the grid_ggd AOS element to hold the grid |
nSpaces | integer | in | The dimension of |
eirene_space_index | integer | in | Index of the triangular grid space in |
grid_identifier | type(ids_identifier_dynamic_aos3) | in | Grid identifier to be put to IDS |
eirene_space_name | character(len=*) | in | Name assigned to the triangular grid space |
eirene_space_description | character(len=*) | in | Verbose description of the triangular grid space |
subroutine put_eirene_grid_to_equilibrium (eirene_grid, grid_ggd, nSpaces, eirene_space_index, grid_identifier, eirene_space_name, eirene_space_description)
Place a grid into a given grid_ggd
structure by allocating the space AOS with a given number of grid spaces, putting a triangular grid given as a type(triangular_grid)
-structure into a desired element of the space
AOS, and organizing the necessary grid subsets. This subroution can be used only for putting a grid into the 'equilibrium' IDS (because the type of the structure used for storing the GGD grid in this IDS is peculiar). To put the grid into another IDS, use the function put_eirene_grid_to_ids.
Argument | Type | Intent | Description |
---|---|---|---|
eirene_grid | type(triangular_grid) | in | The grid to be saved |
grid_ggd | type(ids_generic_grid_dynamic) | pointer | Pointer to the grid_ggd AOS element to hold the grid |
nSpaces | integer | in | The dimension of |
eirene_space_index | integer | in | Index of the triangular grid space in |
grid_identifier | type(ids_identifier_dynamic_aos3) | in | Grid identifier to be put to IDS |
eirene_space_name | character(len=*) | in | Name assigned to the triangular grid space |
eirene_space_description | character(len=*) | in | Verbose description of the triangular grid space |
function arrange_grid_spaces (grid, nSpaces, eirene_space_index, eirene_space_name, eirene_space_description) result (spaces)
Place a grid into a given grid_ggd
structure by allocating the space AOS with a given number of grid spaces, putting a triangular grid given as a type(triangular_grid)
-structure into a desired element of the space
AOS, and organizing the necessary grid subsets. This subroution can be used only for putting a grid into the 'equilibrium' IDS (because the type of the structure used for storing the GGD grid in this IDS is peculiar). To put the grid into another IDS, use the function put_eirene_grid_to_ids.
Argument | Type | Intent | Description |
---|---|---|---|
spaces | type(ids_generic_grid_dynamic_space), dimension(:), pointer | result | Pointer to the allocated and filled 'space' AoS |
grid | type(triangular_grid) | in | The grid to be saved |
nSpaces | integer | in | The dimension of |
eirene_space_index | integer | in | Index of the triangular grid space in |
eirene_space_name | character(len=*) | in | Name assigned to the triangular grid space |
eirene_space_description | character(len=*) | in | Verbose description of the triangular grid space |
function arrange_triangular_grid_space (grid, space_name, space_description) result (space)
...
Create a GGD space and put the objects (nodes, edges, and cells) of an EIRENE triangular grid there. The information about grid objects is taken from a type(triangular_grid)
-structure.
Argument | Type | Intent | Description |
---|---|---|---|
subsets | type(ids_generic_grid_dynamic_grid_subset), pointer, dimension(:) | result | IDS space structure holding the grid |
eirene_space | type(ids_generic_grid_dynamic_space) | in | the GGD grid space to which the subsets are attached |
eirene_space_index | integer | in | the index of this space in the 'space' AoS |
grid | type(triangular_grid) | in | The grid to be saved |
subroutine arrange_standard_2d_subset(subset, space, space_index, dimensionality, subset_id)
...
Arrange a subset for edges with a certain value of MP. The subset gets the name 'MPnnnn', where nnnn is the MP value.
Argument | Type | Intent | Description |
---|---|---|---|
subset | type(ids_generic_grid_dynamic_grid_subset) | pointer | Pointer to the |
space | type(ids_generic_grid_dynamic_space) | in | The |
space_index | integer | in | Index of the triangular grid space in the |
grid | type(triangular_grid) | in | The grid being saved |
mat_property | integer | in | MP value |
subset_id | integer | in | Integer identifier of the subset |
subroutine arrange_subset_for_averages (subset, subset_id)
...
Arrange a special subset for storing 2d averages. The subset gets the name 'average'.
Argument | Type | Intent | Description |
---|---|---|---|
quantity | type(eirene_data) | inout | Structure to be deallocated |
subroutine read_quantity_from_file (file_name, quantity, report, io_unit)
Arrange a special subset for storing 2d averages. The subset gets the name 'average'.
Argument | Type | Intent | Description |
---|---|---|---|
file_name | character(len=*) | in | File name |
quantity | type(eirene_data) | out | Structure to be filled with data from the file |
report | logical, optional (=false) | in | Turns on info about each step |
io_unit | integer, optional (=69) | in | I/O unit to be used |
subroutine write_quantity_to_file (file_name, quantity, report, io_unit)
Arrange a special subset for storing 2d averages. The subset gets the name 'average'.
Argument | Type | Intent | Description |
---|---|---|---|
file_name | character(len=*) | in | File name |
quantity | type(eirene_data) | in | Structure holding data to be saved |
report | logical, optional (=false) | in | Turns on info about each step |
io_unit | integer, optional (=69) | in | I/O unit to be used |
Module imas_data_io
The module contains??
Module constants
! The name of the subset to which the values at all triangles are attached
character(len=ids_string_length), parameter :: main_subset_label = 'pol3'
! The name of the subset to which the average value is attached
character(len=ids_string_length), parameter :: average_subset_label = 'average'
The constants ????
Methods provided
- put_quantity_to_ids
- get_quantity_from_ids
- get_quantity_from_equilibrium
- put_quantity_for_single_subset
- get_quantity_for_single_subset
- get_quantity_for_single_subset_in_equilibrium
Module edge_profiles_io
?????
...