37
38 implicit none
39
40 character*70 :: file_name, prop_name, temp_char
41
42 integer*4 :: nel_loc, nn_loc, cs_nnz_loc, mpi_id, nmat, nmat_nlp, nn
43 integer*4 :: ie, inode, im, im_nlp, i, j, k
44 integer*4 :: unit_mpi
45
46 integer*4, dimension(nmat) :: sdeg, tag_mat
47 integer*4, dimension(nn*nn*nn) :: vtk_numbering_map, node_numbering_vtkwrite
48integer*4, dimension(nmat_nlp) :: tag_mat_nlp
49 integer*4, dimension(0:cs_nnz_loc) :: cs_loc
50 integer*4, dimension(nn_loc) :: nlp_flag
51
52
53 real*8, dimension(nmat,4) :: prop_mat
54 real*8, dimension(nn_loc) :: rho, lambda, mu
55 real*8, dimension(nn_loc) :: xx_loc, yy_loc, zz_loc
56
57 nel_loc = cs_loc(0) - 1
58
59
60 rho = 0.d0; lambda = 0.d0; mu = 0.d0; nlp_flag = 0;
61
62 if (mpi_id.eq.0) write(*,'(A)')
63 if (mpi_id.eq.0) write(*,'(A)')'------Writing VTK file - SCALAR ----------'
64
65 prop_name = 'MECH_PROP_NLP'
66 write(file_name,'(a,i5.5,a)') trim(prop_name),mpi_id,'.vtk'
67 unit_mpi = 2500 + mpi_id
68
69
70 open(unit_mpi,file=file_name)
71 write(unit_mpi,'(a)') '# vtk DataFile Version 3.1'
72 write(unit_mpi,'(a)') 'material model VTK file'
73 write(unit_mpi,'(a)') 'ASCII'
74 write(unit_mpi,'(a)') 'DATASET UNSTRUCTURED_GRID'
75 write(unit_mpi, '(a,i12,a)') 'POINTS ', nn_loc, ' float'
76
77
78 do inode=1,nn_loc
79 write(unit_mpi,'(3e20.12)') xx_loc(inode),yy_loc(inode),zz_loc
80 enddo
81 write(unit_mpi,*) ''
82
83
84 write(unit_mpi,'(a,i12,i12)') "CELLS ",nel_loc,nel_loc*(nn*nn*nn +
85
86 write(temp_char,*)'(i12,',nn*nn*nn,'i12)'
87 do ie=1,nel_loc
88 im = cs_loc(cs_loc(ie -1) + 0 )
89
90
91 do i=1,(nn*nn*nn)
92 loc_nod_indx(i) = cs_loc(cs_loc(ie -1) + i) - 1
93 enddo
94 do i=1,(nn*nn*nn)
95 node_numbering_vtkwrite(i) = loc_nod_indx(vtk_numbering_map(i
96 enddo
97
98
99
100
101
102 write(unit_mpi,temp_char) nn*nn*nn, (node_numbering_vtkwrite(i),
103
104
105
106
107
108
109 do k=1,nn
110 do j=1,nn
111 do i=1,nn
112 inode = cs_loc( cs_loc(ie-1) + nn*nn*(k-1) + nn*(j-1
113 rho(inode) = prop_mat(im,1); lambda(inode) = prop_mat
114 mu(inode) = prop_mat(im,3);
115 enddo
116 enddo
117 enddo
118
119 enddo
120 write(unit_mpi,*) ''
121
122
123
124
125
126
127 write(unit_mpi,'(a,i12)') "CELL_TYPES ",nel_loc
128 write(unit_mpi,'(6i12)') (72,ie=1,nel_loc)
129 write(unit_mpi,*) ''
130
131
132 write(unit_mpi,'(a,i12)') "POINT_DATA ",nn_loc
133
134
135 write(unit_mpi,'(a)') 'SCALARS DENSITY float'
136 write(unit_mpi,'(a)') "LOOKUP_TABLE default"
137 do inode = 1,nn_loc
138 write(unit_mpi,*) rho(inode)
139 enddo
140 write(unit_mpi,*) ''
141
142
143 write(unit_mpi,'(a)') 'SCALARS Lambda float'
144 write(unit_mpi,'(a)') "LOOKUP_TABLE default"
145 do inode = 1,nn_loc
146 write(unit_mpi,*) lambda(inode)
147 enddo
148 write(unit_mpi,*) ''
149
150
151 write(unit_mpi,'(a)') 'SCALARS Mu float'
152 write(unit_mpi,'(a)') "LOOKUP_TABLE default"
153 do inode = 1,nn_loc
154 write(unit_mpi,*) mu(inode)
155 enddo
156 write(unit_mpi,*) ''
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180 close(unit_mpi)
181
182
183 if (mpi_id.eq.0) write(*,'(A)')'Completed.'
184