ICFERST  22-06
Reservoir simulator based on DCVFEM, Dynamic Mesh optimisation and Surface-based modelling
multi_phreeqc Module Reference

All the subroutines required to handle the connection with PHREEQCRM. More...

Functions/Subroutines

subroutine init_phreeqc (Mdims, packed_state, id, concetration_phreeqc, after_adapt)
 This subroutine is used to initialise all the necessary parameters that PHREEQCRM requires. Reaction types, concentration units, number of components to transport... More...
 
subroutine run_phreeqc (Mdims, packed_state, id, concetration_phreeqc)
 Call PHREEQCRM and compute the reactions of the fields defined associated with the input ID. More...
 
subroutine deallocate_phreeqc (id)
 
character(len=option_path_len) function get_packed_species_name (PHREEQC_name, old_field)
 : Finds the field name in diamond given a name in PHREEQC. Fields have the convention of being named in ICFERST as SPECIES_component, for example Species_O for oxygen. More...
 

Detailed Description

All the subroutines required to handle the connection with PHREEQCRM.

Function/Subroutine Documentation

◆ deallocate_phreeqc()

subroutine multi_phreeqc::deallocate_phreeqc ( integer, intent(in)  id)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_packed_species_name()

character (len = option_path_len) function multi_phreeqc::get_packed_species_name ( character(len = *), intent(in)  PHREEQC_name,
logical, intent(in)  old_field 
)

: Finds the field name in diamond given a name in PHREEQC. Fields have the convention of being named in ICFERST as SPECIES_component, for example Species_O for oxygen.

Author
Geraldine Regnier, Pablo Salinas
Here is the caller graph for this function:

◆ init_phreeqc()

subroutine multi_phreeqc::init_phreeqc ( type(multi_dimensions), intent(in)  Mdims,
type( state_type ), intent(inout)  packed_state,
integer, intent(out)  id,
real, dimension(:,:), intent(out), allocatable  concetration_phreeqc,
logical, intent(in)  after_adapt 
)

This subroutine is used to initialise all the necessary parameters that PHREEQCRM requires. Reaction types, concentration units, number of components to transport...

Parameters
MdimsData type storing all the dimensions describing the mesh, fields, nodes, etc
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
id.ID associated with the settings specified here so PHREEQCRM can now it is doing the same thing
concetration_phreeqcOUT. Memory to be used to communicate with PHREEQC
after_adapt.True after adapting the mesh to redo this
Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_phreeqc()

subroutine multi_phreeqc::run_phreeqc ( type(multi_dimensions), intent(in)  Mdims,
type( state_type ), intent(inout)  packed_state,
integer, intent(inout)  id,
real, dimension(:,:), intent(inout)  concetration_phreeqc 
)

Call PHREEQCRM and compute the reactions of the fields defined associated with the input ID.

Parameters
MdimsData type storing all the dimensions describing the mesh, fields, nodes, etc
packed_stateLinked list containing all the fields used by IC-FERST, memory partially shared with state
id.ID associated with the settings specified here so PHREEQCRM can now it is doing the same thing
concetration_phreeqcINOUT. Memory to be used to communicate with PHREEQC
Here is the call graph for this function:
Here is the caller graph for this function: