SPEED
MAKE_NLE.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
36!
37!**************************************************************************************************
38
39 subroutine make_nle(Depth,nn,&
40 yon,&
41 nnt,zs_elev,&
42 cs_nnz,cs,ielem,ncase,&
43 tcase,zs_all,vs_tria)
44
45
46
47 implicit none
48
49 integer*4 :: nn
50 integer*4 :: p,q,r
51 integer*4 :: nnt
52 integer*4 :: cs_nnz
53 integer*4 :: ncase
54 integer*4 :: tcase
55 integer*4 :: is,in,ielem
56
57 integer*4, dimension(0:cs_nnz) :: cs
58
59 integer*4, dimension(nn,nn,nn) :: yon
60
61 real*8 :: depth
62
63 real*8, dimension(nnt) :: zs_elev
64 real*8, dimension(nnt) :: zs_all
65 real*8, dimension(nnt) :: vs_tria
66
67! STRESS CALCULATION
68
69 do r = 1,nn
70 do q = 1,nn
71 do p = 1,nn
72
73 yon(p,q,r) = 1
74
75 is = nn*nn*(r -1) +nn*(q -1) +p
76 in = cs(cs(ielem -1) +is)
77 if (ncase.gt.0 .and. tcase .ne. 16) then
78 if (depth.lt.zs_elev(in) .or. zs_elev(in) .lt. 0.d0 ) yon(p,q,r) = 0
79 if ((tcase .gt. 0) .and. (zs_all(in) .lt. 0.0d0)) yon(p,q,r) = 0
80 elseif (ncase.gt.0 .and. tcase .eq. 16) then
81 if (depth .lt. zs_elev(in) .or. zs_elev(in) .lt. 0.d0 ) yon(p,q,r) = 0
82 if (vs_tria(in) .ge. 450.0d0) yon(p,q,r) = 0
83 endif
84
85 enddo
86 enddo
87 enddo
88
89 return
90
91 end subroutine make_nle
92
subroutine make_nle(depth, nn, yon, nnt, zs_elev, cs_nnz, cs, ielem, ncase, tcase, zs_all, vs_tria)
Find non-linear nodes.
Definition MAKE_NLE.f90:44