FLASH-X
Doxygen Generated Documentation From Interface Source Code
Eos_interface.F90
Go to the documentation of this file.
1
2!! NOTICE
3!! Copyright 2022 UChicago Argonne, LLC and contributors
4!!
5!! Licensed under the Apache License, Version 2.0 (the "License");
6!! you may not use this file except in compliance with the License.
7!!
8!! Unless required by applicable law or agreed to in writing, software
9!! distributed under the License is distributed on an "AS IS" BASIS,
10!! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11!! See the License for the specific language governing permissions and
12!! limitations under the License.
13
14
15
17
18 implicit none
19
20# include "Eos.h"
21# include "Simulation.h"
22# include "constants.h"
23#include "FortranLangFeatures.fh"
24
25 interface
26 subroutine Eos_guardCells(eosMode, solnData,corners,layers,skipSrl,blockDesc)
27 use Grid_tile, ONLY : Grid_tile_t
28 implicit none
29 integer,intent(IN) :: eosMode
30 real,dimension(:,:,:,:),pointer::solnData
31 logical,intent(IN) :: corners
32 integer,dimension(MDIM),optional,intent(IN) :: layers
33 logical,optional, intent(IN) :: skipSrl
34 type(Grid_tile_t),optional,intent(IN) :: blockDesc
35 end subroutine Eos_guardCells
36 end interface
37
38 interface Eos_wrapped
39 subroutine Eos_wrapped(mode,range,solnData,gridDataStruct)
40 integer, intent(in) :: mode
41 integer, dimension(2,MDIM), intent(in) :: range
42 real, POINTER_INTENT_IN :: solnData(:,:,:,:)
43 integer,optional,intent(IN) :: gridDataStruct
44 end subroutine Eos_wrapped
45 end interface
46
47 interface
48 subroutine Eos(mode, vecLen, eosData, massFrac, mask, vecBegin,vecEnd,diagFlag)
49 integer, INTENT(in) :: mode, vecLen
50 real,INTENT(inout), dimension(EOS_NUM*vecLen) :: eosData
51 real, optional, INTENT(in),dimension(NSPECIES*vecLen) :: massFrac
52 logical, optional, INTENT(in),target,dimension(EOS_VARS+1:EOS_NUM) :: mask
53 integer,optional,INTENT(in) :: vecBegin,vecEnd
54 integer, optional, INTENT(out) :: diagFlag
55 end subroutine Eos
56 end interface
57
58 interface
59 subroutine Eos_everywhere(mode,gridDataStruct)
60 implicit none
61 integer, intent(in) :: mode
62 integer, optional, intent(IN) :: gridDataStruct
63 end subroutine Eos_everywhere
64 end interface
65
66 interface Eos_init
67 subroutine Eos_init()
68 end subroutine Eos_init
69 end interface
70
71 interface Eos_finalize
72 subroutine Eos_finalize()
73 end subroutine Eos_finalize
74 end interface
75
76 interface
77 subroutine Eos_getParameters(eintSwitch,inputsAreUnchanged,inputTempIsGuess,constantGammaC,&
78 inputMassFracNeeded,smalle,smallE1,smallE2,smallE3)
79 real,OPTIONAL,intent(OUT) :: eintSwitch
80 logical,OPTIONAL,intent(OUT) :: inputsAreUnchanged
81 logical,OPTIONAL,intent(OUT) :: inputTempIsGuess
82 logical,OPTIONAL,intent(OUT) :: constantGammaC
83 logical,OPTIONAL,intent(OUT) :: inputMassFracNeeded
84 real,OPTIONAL,intent(OUT) :: smalle
85 real,OPTIONAL,intent(OUT) :: smallE1,smallE2,smallE3
86 end subroutine Eos_getParameters
87 end interface
88
89 interface Eos_unitTest
90 subroutine Eos_unitTest(fileUnit, perfect)
91 integer, intent(in) :: fileUnit
92 logical, intent(out) :: perfect
93 end subroutine Eos_unitTest
94 end interface
95
97 subroutine Eos_getAbarZbar(solnVec,abar,zbar,sumY,Ye,massFrac)
98 implicit none
99 real, OPTIONAL,dimension(NUNK_VARS),intent(IN) :: solnVec
100 real, OPTIONAL, intent(OUT) :: abar, zbar, Ye, sumY
101 real, OPTIONAL,dimension(NSPECIES), intent(IN) :: massFrac
102 end subroutine Eos_getAbarZbar
103 subroutine Eos_getAbarZbarArraySection(ifirstVar,solnVec,abar,zbar,sumY,Ye,massFrac)
104 implicit none
105 integer, intent(IN) :: ifirstVar
106 real, OPTIONAL, intent(IN) :: solnVec(ifirstVar:NUNK_VARS)
107 real, OPTIONAL, intent(OUT) :: abar, zbar, Ye, sumY
108 real, OPTIONAL,dimension(NSPECIES), intent(IN) :: massFrac
109 end subroutine Eos_getAbarZbarArraySection
110 end interface
111
112 interface
113 subroutine Eos_getData(range,vecLen,solnData,gridDataStruct,eosData, massFrac,eosMask)
114 implicit none
115 integer, intent(in) :: vecLen,gridDataStruct
116 integer, dimension(LOW:HIGH,MDIM), intent(in) :: range
117 real, dimension(EOS_NUM*vecLen),intent(INOUT) :: eosData
118 real, pointer,dimension(:,:,:,:) :: solnData
119 real,dimension(:),optional,intent(OUT) :: massFrac
120 logical, optional, INTENT(INOUT),dimension(EOS_VARS+1:) :: eosMask
121 end subroutine Eos_getData
122 end interface
123
125 subroutine Eos_getTempData(axis,pos,vecLen,solnData,gridDataStruct,eosData,mode)
126 implicit none
127 integer, intent(in) :: axis, vecLen, gridDataStruct, mode
128 integer, dimension(MDIM), intent(in) :: pos
129 real, dimension(:),intent(OUT) :: eosData
130 real, pointer:: solnData(:,:,:,:)
131 end subroutine Eos_getTempData
132 subroutine Eos_getTempDataFromVec(solnVec,eosData,mode)
133 implicit none
134 integer, intent(in) :: mode
135 real, dimension(:),intent(OUT) :: eosData
136 real, dimension(NUNK_VARS),intent(IN) :: solnVec
137 end subroutine Eos_getTempDataFromVec
138 end interface
139 interface
140 subroutine Eos_getTempDataF(axis,pos,vecLen,solnData,gridDataStruct,eosData,mode)
141 implicit none
142 integer, intent(in) :: axis, vecLen, gridDataStruct, mode
143 integer, dimension(MDIM), intent(in) :: pos
144 real, dimension(EOS_NUM*vecLen),intent(OUT) :: eosData
145 real, pointer:: solnData(:,:,:,:)
146 end subroutine Eos_getTempDataF
147 end interface
148
149 interface
150 subroutine Eos_putData(range,vecLen,solnData,gridDataStruct,eosData)
151 integer, intent(in) :: vecLen, gridDataStruct
152 integer, dimension(LOW:HIGH,MDIM), intent(in) :: range
153 real, dimension(:),intent(IN) :: eosData
154 real, pointer,dimension(:,:,:,:) :: solnData
155 end subroutine Eos_putData
156 subroutine Eos_putDataR2(range,vecLen,solnData,gridDataStruct,eosData)
157 integer, intent(in) :: vecLen, gridDataStruct
158 integer, dimension(LOW:HIGH,MDIM), intent(in) :: range
159 real, dimension(:,:),intent(IN) :: eosData
160 real, pointer,dimension(:,:,:,:) :: solnData
161 end subroutine Eos_putDataR2
162 end interface
163
164 interface
165 subroutine Eos_logDiagnostics(force)
166 implicit none
167 logical, intent(IN) :: force
168 end subroutine Eos_logDiagnostics
169 end interface
170
171end Module Eos_interface
172
subroutine Eos_getTempDataFromVec(solnVec, eosData, mode)