SPEED
GET_MECH_PROP_NH_ENHANCED.f90
Go to the documentation of this file.
1! Copyright (C) 2012 The SPEED FOUNDATION
2! Author: Ilario Mazzieri
3!
4! This file is part of SPEED.
5!
6! SPEED is free software; you can redistribute it and/or modify it
7! under the terms of the GNU Affero General Public License as
8! published by the Free Software Foundation, either version 3 of the
9! License, or (at your option) any later version.
10!
11! SPEED is distributed in the hope that it will be useful, but
12! WITHOUT ANY WARRANTY; without even the implied warranty of
13! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14! Affero General Public License for more details.
15!
16! You should have received a copy of the GNU Affero General Public License
17! along with SPEED. If not, see <http://www.gnu.org/licenses/>.
18
19
24
25 subroutine get_mech_prop_nh_enhanced(ie, nn, nn_loc, cs_nnz_loc, cs_loc, &
26 rho_nhe, lambda_nhe, mu_nhe, QS_nh, fmax, &
27 rho_el, lambda_el, mu_el,gamma_el)
28
29 implicit none
30
31 integer*4 :: ie, cs_nnz_loc, nn, nn_loc
32 integer*4 :: r, q, p, is, ic
33 integer*4, dimension(0:cs_nnz_loc) :: cs_loc
34
35 real*8 :: qs_nh, fmax, gamma
36 real*8, dimension(nn,nn,nn) :: rho_el, lambda_el, mu_el, gamma_el
37 real*8, dimension(nn_loc) :: rho_nhe, lambda_nhe, mu_nhe
38
39 if (qs_nh.le.1) then
40 gamma = 0.d0;
41 else
42 gamma = 4.d0*datan(1.d0)*fmax/qs_nh;
43 endif
44
45 do r = 1,nn
46 do q = 1,nn
47 do p = 1,nn
48 is = nn*nn*(r -1) +nn*(q -1) +p
49 ic = cs_loc(cs_loc(ie -1) +is)
50
51 rho_el(p,q,r) = rho_nhe(ic)
52 lambda_el(p,q,r) = lambda_nhe(ic)
53 mu_el(p,q,r) = mu_nhe(ic)
54 gamma_el(p,q,r) = gamma
55 enddo
56 enddo
57 enddo
58
59
60 end subroutine get_mech_prop_nh_enhanced
subroutine get_mech_prop_nh_enhanced(ie, nn, nn_loc, cs_nnz_loc, cs_loc, rho_nhe, lambda_nhe, mu_nhe, qs_nh, fmax, rho_el, lambda_el, mu_el, gamma_el)
...Not-Honoring Enhanced (NHE) Implementation