MoDeNa  1.0
Software framework facilitating sequential multi-scale modelling
modules.f90
1 
5 
6 Module parameters
7 
8  implicit none
9  save
10 
11  integer, parameter :: nc = 6
12  integer, parameter :: np = 3
13  integer, parameter :: nsite = 5
14 
15  real, parameter :: pi = 3.141592653589793
16  real, parameter :: rgas = 8.31441
17  real, parameter :: nav = 6.022045e23
18  real, parameter :: kbol = rgas / nav
19  real, parameter :: tau = pi / 3.0 / sqrt(2.0)
20 
21 End Module parameters
22 
23 
28 
30 
31  use parameters, only: nc, np, nsite
32  implicit none
33  save
34 
35 ! ----------------------------------------------------------------------
36 ! basic quantities defining the mixture
37 ! ----------------------------------------------------------------------
38  integer :: ncomp
39  integer :: nphas
40 
41  real :: t
42  !real :: tc
43  real :: p
44  real, dimension(np) :: dense
45  !real, dimension(np) :: rhob
46 
47  real, dimension(np, nc) :: xi
48  real, dimension(np, nc) :: lnx
49  real, dimension(nc) :: xif
50 
51  real, dimension(nc) :: mm
52  real, dimension(np, nc, nsite) :: mxx
53 
54  real :: alpha
55 
56 
57 ! ----------------------------------------------------------------------
58 ! pure component parameters
59 ! ----------------------------------------------------------------------
60  real, dimension(nc, 25) :: parame = 0.0
61  real, dimension(nc) :: chir
62  character*30, dimension(nc) :: compna
63  real, dimension(nc, nc) :: kij, lij
64  real, dimension(nc, nc) :: e_lc, s_lc
65  real, dimension(nc) :: lli, phi_criti, chap
66 
67 
68 ! ----------------------------------------------------------------------
69 ! thermodynamic quantities
70 ! ----------------------------------------------------------------------
71  real, dimension(np) :: densta
72  real, dimension(0:nc*np+6) :: val_init, val_conv
73 
74  real :: h_lv
75  real, dimension(np) :: cpres, enthal, entrop, gibbs, f_res
76 
77  real, dimension(np) :: dp_dz, dp_dz2
78 
79 
80 ! ----------------------------------------------------------------------
81 ! choice of EOS-model and solution method
82 ! ----------------------------------------------------------------------
83  integer :: eos, pol
84  integer :: num
85  character (LEN=2) :: ensemble_flag
86  character (LEN=10) :: rgt_variant
87 
88 
89 ! ----------------------------------------------------------------------
90 ! for input/output
91 ! ----------------------------------------------------------------------
92  integer :: outp, bindiag
93  real :: u_in_t, u_out_t, u_in_p, u_out_p
94 
95 
96 ! ----------------------------------------------------------------------
97 ! quantities defining the numerical procedure
98 ! ----------------------------------------------------------------------
99  integer :: n_unkw
100 
101  real :: step_a, acc_a !, acc_i
102  real, dimension(nc) :: scaling
103  real, dimension(3500) :: plv_kon
104  real, dimension(2, 3500) :: d_kond
105 
106  character*3, dimension(10) :: it, sum_rel
107  character*3 :: running
108 
109 
110 End Module basic_variables
111 
112 
113 
114 
119 
121 
122  use parameters, only: nc, nsite, pi, kbol, tau, nav
123  use basic_variables, only: ncomp, eos, t, p, parame, e_lc, s_lc, chir, &
124  lli, phi_criti, chap, kij, lij, ensemble_flag
125  implicit none
126  save
127 
128 ! ----------------------------------------------------------------------
129 ! basic quantities defining the mixture (single phase)
130 ! ----------------------------------------------------------------------
131  real :: x(nc)
132  real :: eta_start
133  real :: eta
134  real :: rho
135 
136 ! ----------------------------------------------------------------------
137 ! thermodynamic quantities
138 ! ----------------------------------------------------------------------
139  real :: fres
140  real :: lnphi(nc)
141  real :: pges
142  real :: pgesdz
143  real :: pgesd2
144  real :: pgesd3
145 
146  real :: h_res
147  real :: cp_res
148  real :: s_res
149 
150 ! ----------------------------------------------------------------------
151 ! quantities of fluid theory
152 ! ----------------------------------------------------------------------
153  real :: gij(nc,nc)
154  real :: mx(nc,nsite)
155 
156  real :: mseg(nc)
157  real :: dhs(nc)
158  real :: uij(nc,nc)
159  real :: sig_ij(nc,nc)
160  real :: vij(nc,nc)
161 
162  real :: um
163  real :: order1
164  real :: order2
165  real :: apar(0:6)
166  real :: bpar(0:6)
167 
168  real :: z0t
169  real :: z1t
170  real :: z2t
171  real :: z3t
172 
173  integer :: nhb_typ(nc)
174  real :: ass_d(nc,nc,nsite,nsite)
175  real :: nhb_no(nc,nsite)
176  real :: dij_ab(nc,nc)
177 
178 ! ----------------------------------------------------------------------
179 ! auxilliary quantities
180 ! ----------------------------------------------------------------------
181  real :: tfr
182  integer :: phas
183 
184  character (LEN = 2) :: dd_term, qq_term, dq_term
185 
186  real :: densav(3), denold(3)
187  real :: density_error(3)
188 
189  real :: alpha_nematic
190  real :: alpha_test(2)
191 
192 End Module eos_variables
193 
194 
195 
199 
201 
202  use parameters, only: nc
203  implicit none
204  save
205 
206  real, dimension(0:6,3) :: ap, bp
207  real, dimension(4,9) :: dnm
208 
209  real, dimension(28) :: c_dd, n_dd, m_dd, k_dd, o_dd
210  real, dimension(nc,nc,0:8) :: qqp2, qqp4, ddp2, ddp4, dqp2, dqp4
211  real, dimension(nc,nc,nc,0:8) :: qqp3, ddp3, dqp3
212 
213 End Module eos_constants
214 
219 
221 
222  use eos_variables, only: dd_term, qq_term, dq_term
223 
224  implicit none
225  save
226 
227  character (LEN=9) :: ideal_gas ! (yes, no)
228  character (LEN=9) :: hard_sphere ! (CSBM, no)
229  character (LEN=9) :: chain_term ! (TPT1, no)
230  character (LEN=9) :: disp_term ! (PC-SAFT, CK, no)
231  character (LEN=9) :: hb_term ! (TPT1_Chap, no)
232  character (LEN=9) :: lc_term ! (MSaupe, no)
233  character (LEN=9) :: branch_term ! (TPT2, no)
234  character (LEN=9) :: ii_term ! (......., no)
235  character (LEN=9) :: id_term ! (......., no)
236 
237  character (LEN=9) :: subtract1 ! (1PT, 2PT, no)
238  character (LEN=9) :: subtract2 ! (ITTpolar, no)
239 
240  character (LEN=9) :: save_eos_terms(10)
241 
242 End Module eos_numerical_derivatives
243 
244 
250 
252 
253  use parameters, only: nc
254  implicit none
255  save
256 
257  REAL, DIMENSION(nc) :: rhoif, rhoi1, rhoi2, grad_fd
258  REAL :: fdenf
259 
260  End Module starting_values
261 
262 
263 
264 
265 
266 !WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
267 ! Module DFT_MODULE
268 !
269 ! This module contains parameters and variables for DFT calculations.
270 !WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
271 !
272  Module dft_module
273 
274  use parameters, only: nc
275  implicit none
276  save
277 
278  INTEGER, PARAMETER :: ndft = 4000
279  !!integer :: discret
280  REAL :: box_l_no_unit
281  INTEGER, PARAMETER :: r_grid = 200
282  INTEGER :: kmax, den_step
283  LOGICAL :: shift, wca, mft
284  REAL :: rc, rg, dzr, tau_cut,dzp
285  REAL :: d_hs, dhs_st, z3t_st
286  REAL :: z_ges
287  REAL, DIMENSION(r_grid) :: x1a
288  REAL, DIMENSION(NDFT) :: x2a
289  REAL, DIMENSION(r_grid,NDFT) :: ya, y1a, y2a, y12a
290  REAL, DIMENSION(r_grid,NDFT,4,4) :: c_bicub
291  REAL :: fres_temp
292 
293  REAL, DIMENSION(r_grid) :: x1a_11
294  REAL, DIMENSION(NDFT) :: x2a_11
295  REAL, DIMENSION(r_grid,NDFT) :: ya_11, y1a_11, y2a_11, y12a_11
296  REAL, DIMENSION(r_grid,NDFT,4,4) :: c_bicub_11
297  REAL, DIMENSION(r_grid) :: x1a_12
298  REAL, DIMENSION(NDFT) :: x2a_12
299  REAL, DIMENSION(r_grid,NDFT) :: ya_12, y1a_12, y2a_12, y12a_12
300  REAL, DIMENSION(r_grid,NDFT,4,4) :: c_bicub_12
301  REAL, DIMENSION(r_grid) :: x1a_22
302  REAL, DIMENSION(NDFT) :: x2a_22
303  REAL, DIMENSION(r_grid,NDFT) :: ya_22, y1a_22, y2a_22, y12a_22
304  REAL, DIMENSION(r_grid,NDFT,4,4) :: c_bicub_22
305 
306  End Module dft_module
307 
308 
309 !WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
310 ! This module ...........
311 !WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
312 Module rdf_variables
313 
314  implicit none
315  save
316 
317  real, dimension(0:20) :: fac(0:20)
318 
319 End Module rdf_variables
320 
321 
322 !WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
323 ! This module contains the variables that are needed in the core DFT_FCN
324 ! They are not passed directly to DFT_FCN because the nonlinear solver
325 ! needs a certain calling structure: fcn(x,fvec,n)
326 !WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
328 
329 use parameters, only: nc
330 use dft_module, only: ndft
331  implicit none
332 
333 integer :: irc(nc),irc_j,ih,fa(nc)
334  REAL, DIMENSION(-NDFT:NDFT) :: zp
335  REAL, DIMENSION(-NDFT:NDFT) :: f_tot
336  REAL, DIMENSION(-NDFT:NDFT,2) :: df_drho_tot
337  real :: rhob_dft(2,0:nc)
338  REAL :: my0(nc)
339 
340 End Module dft_fcn_module
341 
342 
343 
344 
345 
346 
347 
348 
349 !WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
350 ! Module Module_Heidemann_Khalil
351 !
352 ! This module ....
353 !WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
354 !
355  Module module_heidemann_khalil
356 
357  implicit none
358  save
359 
360  real :: error_condition2
361 
362  End Module
363 
364 
365 
366 
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains constant...
Definition: modules.f90:6
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains paramete...
Definition: modules.f90:200
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW Module DFT_MODULE This module...
Definition: modules.f90:272
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains paramete...
Definition: modules.f90:120
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains the vari...
Definition: modules.f90:327
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW Module STARTING_VALUES This m...
Definition: modules.f90:251
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains paramete...
Definition: modules.f90:29
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains paramete...
Definition: modules.f90:220