39 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
40#include "implicit_f.inc"
57 INTEGER ITAB(*),WEIGHT(*),NODGLOB(
62 INTEGER MSGOFF,MSGOFF0,MSGTYP
64INTEGER STATUS(MPI_STATUS_SIZE),IERROR
65 INTEGER IGLOB(2,NUMNODM),RECGLOB(2,SIZP0),RTRI(2,SIZP0),
66 . ITRI(NUMNODG),INDEX(2*NUMNODG),WORK(70000)
68 CHARACTER *100,CYCLENUM*7
70 INTEGER :: LEN_TMP_NAME
71 CHARACTER(len=2148) :: TMP_NAME
78 WRITE(cyclenum,
'(I7.7)')ncycle
79 filnam=rootnam(1:rootlen)//
'_'//chrun//
'_'//cyclenum//
'.mdb'
84 OPEN(unit=67,file=tmp_name(1:len_tmp_name),access=
'SEQUENTIAL',
85 . form=
'FORMATTED',status=
'UNKNOWN')
91 IF (weight(i)==1)
THEN
93 sdnodg(n) = nodglob(i)
95 iglob(2,n) = nodnx_sms(i)
101 . spmd_comm_world,ierror)
103 CALL mpi_send(iglob,2*n,mpi_integer,
105 . spmd_comm_world,ierror)
108 IF (weight(i)==1)
THEN
110 rtri(1,empl) = itab(i)
111 rtri(2,empl) = nodnx_sms(i)
117 CALL mpi_recv(sdnodg,numnodm,mpi_integer,
119 . spmd_comm_world,status,ierror)
124 CALL mpi_recv(iglob,2*n,mpi_integer,
126 . spmd_comm_world,status
130 rtri(1,empl) = iglob(1,i)
131 rtri(2,empl) = iglob(2,i)
136 WRITE(67,
'(A)')
' NODE ID',
' NO TERMS'
138 WRITE(67,
'(I10,I10)' )
139 . rtri(1,i),rtri(2,i)
146 CALL my_orders(0,work,itri,index,numnodg,1)
148 recglob(1,i) = rtri(1,index(i))
149 recglob(2,i) = rtri(2,index(i))
152 WRITE(67,
'(A)')
'----- RESUME OF MATRIX STRUCTURE -----'
156 DO WHILE(i+1 < numnodg)
161 WRITE(67,
'(A,I10,A,I10)')
162 .
'NO of NODES WITH ',n,
' TERMS =',nk
168 WRITE(67,
'(A,I10,A,I10)')
169 .
'NO of NODES WITH ',n,
' TERMS =',nk
171 WRITE (iout,1300) filnam(1:filen)
172 WRITE (istdo,1300) filnam(1:filen)
177 1300
FORMAT (4x,
' DEBUG ANALYSIS FILE:',1x,a,
' WRITTEN')
subroutine mpi_recv(buf, cnt, datatype, source, tag, comm, status, ierr)
subroutine mpi_send(buf, cnt, datatype, dest, tag, comm, ierr)
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)