33 INTEGER,
DIMENSION(:),
POINTER :: rcvbuf
38 REAL(kind=wp) :: tempkval
40 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: amounttoreceive, amounttosend
41 REAL(kind=wp),
ALLOCATABLE,
DIMENSION(:) :: bufsnd
46 IF(myid==0)
print*,
'CONSTRUCTING THE THERMAL STIFFNESS MATRIX'
49 CALL
locthermstiff_v3d8(global%MeshCoor, global%ElConnVol, global%dmat(1,:,:), global%NumNp, &
50 global%NumElVol, global%MatIdVol, global%NumMatVol)
53 ALLOCATE(rp_kt(1:gnumnp+1))
54 ALLOCATE(cval_kt(1:nnz_temp))
55 ALLOCATE(aval_kt(1:nnz_temp))
60 DEALLOCATE(rp_temp,cval_temp,aval_temp)
63 IF(myid==0)
print*,
'COMMUNICATING THE THERMAL STIFFNESS MATRIX TO OTHER PROCS'
69 CALL mpi_barrier(rocstar_communicator,ierr)
71 ALLOCATE(req_rcv(1:nprocs))
72 ALLOCATE(req_snd(1:nprocs))
73 ALLOCATE(stat_snd(1:mpi_status_size,1:nprocs))
74 ALLOCATE(stat_rcv(1:mpi_status_size,1:nprocs))
78 DO j = 1, mpi_status_size
86 ALLOCATE(amounttoreceive(1:numcommprocsfrom1))
87 DO i = 1, numcommprocsfrom1
88 CALL mpi_irecv(amounttoreceive(
i),1, &
89 mpi_integer,commprocsfrom1(
i),10,rocstar_communicator, &
95 ALLOCATE(amounttosend(1:numcommprocs1))
96 DO i = 1, numcommprocs1
99 DO j = 1, numcommnodes1(
i)
102 inode = local2global(commnodes1(
i,
j))
113 IF (tempkval /= 0.0)
THEN
115 counter = counter + 1
121 amounttosend(
i) = counter
123 CALL mpi_send(amounttosend(
i),1,mpi_integer, &
124 commprocs1(
i),10,rocstar_communicator,ierr)
127 CALL mpi_waitall(nprocs,req_rcv,stat_rcv,ierr)
134 CALL mpi_barrier(rocstar_communicator,ierr)
135 ALLOCATE(frmproc(1:numcommprocsfrom1))
136 DO i = 1, numcommprocsfrom1
137 ALLOCATE(frmproc(
i)%rcvbuf(1:3*amounttoreceive(
i)))
138 CALL mpi_irecv(frmproc(
i)%rcvbuf(1),3*amounttoreceive(
i), &
139 mpi_double_precision,commprocsfrom1(
i),10,rocstar_communicator, &
145 DO i = 1, numcommprocs1
146 ALLOCATE(bufsnd(3*amounttosend(
i)))
150 DO j = 1, numcommnodes1(
i)
153 inode = local2global(commnodes1(
i,
j))
164 IF (tempkval /= 0.0)
THEN
165 counter = counter + 1
166 bufsnd(3*counter-2) =
inode
167 bufsnd(3*counter-1) =
jnode
168 bufsnd(3*counter) = tempkval
174 CALL mpi_send(bufsnd,3*amounttosend(
i),mpi_double_precision, &
175 commprocs1(
i),10,rocstar_communicator,ierr)
180 CALL mpi_waitall(nprocs,req_rcv,stat_rcv,ierr)
188 IF(myid == 0)
print*,
'FINISHED COMMUNICATING THERMAL STIFFNESS MATRIX TO ALL PROCESSES'
192 DO i = 1, numcommprocsfrom1
193 DO j = 1, amounttoreceive(
i)
196 int(frmproc(
i)%rcvbuf(3*
j-2)),int(frmproc(
i)%rcvbuf(3*
j-1)),frmproc(
i)%rcvbuf(3*
j))
200 IF (nnz_temp /= nnz_kt)
THEN
201 DEALLOCATE(cval_kt,aval_kt)
202 ALLOCATE(cval_kt(nnz_temp),aval_kt(nnz_temp))
208 DEALLOCATE(rp_temp,cval_temp,aval_temp)
213 DEALLOCATE(amounttoreceive)
214 DEALLOCATE(amounttosend)
218 CALL
comp_row_resize(gnumnp,gnumnp,nnz_kt,1,rp_kt,cval_kt,aval_kt,nstart_ktc,lnumnp)
219 DEALLOCATE(rp_kt,cval_kt,aval_kt)
220 ALLOCATE(rp_kt(1:lnumnp+1))
221 ALLOCATE(cval_kt(1:nnz_temp))
222 ALLOCATE(aval_kt(1:nnz_temp))
227 DEALLOCATE(rp_temp,cval_temp,aval_temp)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE inode
subroutine comp_row_getval(ndim, nrows, nnz, nstart, rp, cval, aval, ipos, jpos, val)
subroutine locthermstiff_v3d8(coor, ElConnVol, dmat, numnp, NumEL, MatType, NumMatType)
subroutine comp_row_resize(ndim, nrows, nnz, nstart, rp, cval, aval, newnstart, newnrows)
subroutine glbthermstiff(global)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE jnode
subroutine comp_row_addval(ndim, nrows, nnz, nstart, rp, cval, aval, ipos, jpos, val)