39 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
40#include "implicit_f.inc"
55 INTEGER IPARG(,*),DD_IAD(NSPMD+1,*),P0ARS(2),WASZ(2),(2),
56 . IXS(NIXS,*),IPM(NPROPMI,*)
61 INTEGER NN,NG,SZP0(2*NSPGROUP+2),RSZP0(2*NSPGROUP+2),NGF,NGL,JJ,
62 . WASZ26,P0ARS26,MLW,NEL,NPT,JHBE,ISOLNOD,
63 . NUVAR,I,LFT,LLT,NFT,ITY
65 INTEGER IERROR,(MPI_STATUS_SIZE)
71 IF ( outp_ss(1) == 1.OR.outp_ss(2) == 1.OR.outp_ss(3) == 1
72 . .OR.outp_ss(4) == 1.OR.outp_ss(5) == 1.OR.outp_ss(6) == 1
73 . .OR.outp_ss(7) == 1.OR.outp_ss(25) == 1.OR.outp_ss(20) == 1
74 . .OR.outp_ss(21) == 1.OR.outp_ss(22) == 1.OR.outp_ss(23) == 1
75 . .OR.outp_ss(24) == 1.OR.outp_ss(26) == 1 )
THEN
78 . mpi_integer,mpi_sum,it_spmd(1),
79 . spmd_comm_world,ierror )
83 p0ars(1) =rszp0(2*nspgroup+1)
84 p0ars(2) =rszp0(2*nspgroup+2)
87 wasz_wr(1) =
max(wasz_wr(1),rszp0(i))
88 wasz_wr(2) =
max(wasz_wr(2),rszp0(nspgroup+i))
90 wasz_wr(1) = wasz_wr(1)+6
91 wasz_wr(2) = wasz_wr(2)+6
102!||====================================================================
103!||
outp_arsz_cs ../engine/source/mpi/interfaces/spmd_outp.f
112 . P0ARS,WASZ,WASZ_WR)
116 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
117#include "implicit_f.inc"
125#include "com01_c.inc"
126#include "scr16_c.inc"
127#include "param_c.inc"
132 INTEGER IXC(NIXC,*),IXTG(,*),DD_IAD(NSPMD+1,*) ,
133 . iparg(nparg,*),ipm(npropmi,*),wasz(2),igeo(npropgi,*),
134 , p0ars(2),iuser_full,j,wasz_wr(2)
140 INTEGER JJ,NGF,NGL,NN,ITY,IAD,NFT,LFT,LLT,NPT,
141 . ihbe,igtyp,nuvar,mlw,ng,nel,nbx,i,npg,mpt,
142 . szp0(2*nspgroup+2),rszp0(2*nspgroup+2),p0arsz26
143 INTEGER IERROR,(MPI_STATUS_SIZE)
154 IF(outp_cs(26 + j) == 1) iuser_full = 1
157 IF ( outp_cs( 1) == 1.OR.outp_cs( 2) == 1.OR.outp_cs( 3) == 1
158 . .OR.outp_cs( 4) == 1.OR.outp_cs( 7) == 1.OR.outp_cs(25) == 1
159 . .OR.outp_cs(20) == 1.OR.outp_cs(21) == 1.OR.outp_cs(22) == 1
161 . .OR.iuser_full == 1)
THEN
165 . mpi_integer,mpi_sum,it_spmd(1),
166 . spmd_comm_world,ierror )
169 p0ars(1:2) = rszp0(2*nspgroup+1:2*nspgroup+2)
172 wasz_wr(1) =
max(wasz_wr(1),rszp0(i))
173 wasz_wr(2) =
max(wasz_wr(2),rszp0(nspgroup+i))
175 wasz_wr(1) = wasz_wr(1)+6
176 wasz_wr(2) = wasz_wr(2)+6
194!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.f90
204 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
205#include
"implicit_f.inc"
213#include "com01_c.inc"
214#include "scr16_c.inc"
216#include "param_c.inc"
220 INTEGER IPARG(NPARG,*), DD_IAD(NSPMD+1,*),WASZ(3),WASZ_WR(3),P0ARS(3)
225 INTEGER NGL,ITY,NRL,KHBE,MLW,NPT,,NGF,NN,NEL,
226 . ng,nlay,nptr,npts,nptt,nptg,jj,i,
227 . szp0(3*nspgroup+3),rszp0(3*nspgroup+3)
228 INTEGER IERROR,STATUS(MPI_STATUS_SIZE)
233 IF (outp_st(1)==1.OR.outp_st(2)==1.OR.outp_st(3)==1)
THEN
237 . mpi_integer,mpi_sum,it_spmd(1),
238 . spmd_comm_world,ierror )
241 p0ars(1:3) = rszp0(3*nspgroup+1:3*nspgroup+3)+8
244 wasz_wr(1) =
max(wasz_wr(1),rszp0(i))
245 wasz_wr(2) =
max(wasz_wr(2),rszp0(nspgroup+i))
246 wasz_wr(3) =
max(wasz_wr(3),rszp0(2*nspgroup+i))
264!||--- uses -----------------------------------------------------
276 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
277#include "implicit_f.inc"
285#include "param_c.inc"
287#include "com01_c.inc"
288#include "scr16_c.inc"
292 INTEGER IPARG(NPARG,*),(NSPMD+1,*),WASZ(3),WASZP(3),WASZ_WR(3)
293 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
298 INTEGER NGF,NGL,NN,ITY,MLW,NEL,NPT,IHBE,NPG,MPT,NG,JJ,COUNT,I,
299 . szp0(3*nspgroup+3),rszp0(3*nspgroup+3),
300 . il,nlay,igtyp,npt_all,
303 INTEGER IERROR,STATUS(MPI_STATUS_SIZE)
312 count = count + outp_ct(10+i)+outp_ct(50+i)+outp_ct(100+i)
315 IF ( outp_ct( 1) == 1.OR.outp_ct( 2) == 1.OR.outp_ct( 3) == 1
316 . .OR.outp_ct( 4) == 1.OR.outp_ct( 5) == 1.OR.outp_ct( 6) == 1
317 . .OR.outp_ct( 7) == 1.OR.outp_ct( 8) == 1.OR.outp_ct(91) == 1
318 . .OR.outp_ct(92) == 1.OR.outp_ct(93) == 1.OR.outp_ct(94) == 1
319 . .OR.count>0.OR.outp_ct(95)==1.OR.outp_ct(96)==1)
THEN
323 . mpi_integer,mpi_sum,it_spmd(1),
324 . spmd_comm_world,ierror )
327 IF ( outp_ct(95) == 1)
THEN
329 waszp(2) = rszp0(3*nspgroup+2)
331 wasz_wr(2) =
max(wasz_wr(2),rszp0(nspgroup+i))
339 IF ( outp_ct(96) == 1)
THEN
341 waszp(3) = rszp0(3*nspgroup+3)
343 wasz_wr(3) =
max(wasz_wr(3),rszp0(nspgroup+i))
351 IF ( outp_ct( 1) == 1.OR.outp_ct( 2) == 1.OR.outp_ct( 3) == 1
352 . .OR.outp_ct( 4) == 1.OR.outp_ct( 5) == 1.OR.outp_ct( 6) == 1
353 . .OR.outp_ct( 7) == 1.OR.outp_ct( 8) == 1.OR.outp_ct(91) == 1
354 . .OR.outp_ct(92) == 1.OR.outp_ct(93) == 1.OR.outp_ct(94) == 1
357 waszp(1) = rszp0(3*nspgroup+1)
359 wasz_wr(1) =
max(wasz_wr(1),rszp0(i))
361 wasz_wr(1) = wasz_wr(1) + 6
389 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
390#include "implicit_f.inc"
398#include "param_c.inc"
399#include "com01_c.inc"
401#include "scr16_c.inc"
405 INTEGER (NPARG,*),DD_IAD(NSPMD+1,*),WASZ,WASZP,WASZ_WR
410 INTEGER NGF,NGL,NN,ITY,NEL,NG,JJ,SZP0(NSPGROUP+1),(NSPGROUP+1),
413 INTEGER IERROR,STATUS(MPI_STATUS_SIZE)
420 IF (outp_rs(1) == 1)
THEN
422 . mpi_integer,mpi_sum,it_spmd(1),
423 . spmd_comm_world,ierror )
426 waszp=rszp0(nspgroup+1)
431 wasz_wr = wasz_wr + 6
442!||
outp_arsz_rt ../engine/source/mpi/interfaces/spmd_outp.f
449!||====================================================================
454 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
455#include "implicit_f.inc"
463#include "param_c.inc"
464#include "com01_c.inc"
466#include "scr16_c.inc"
470 INTEGER IPARG(NPARG,*),DD_IAD(NSPMD+1,*),WASZ,WASZP
478 INTEGER NGF,NGL,NN,ITY,NEL,NG,JJ,SZP0(NSPGROUP+1),RSZP0(NSPGROUP+1),
479 . p0arsz2,wasz2,iprop,nuvar,igtyp,nft,i
481 INTEGER IERROR,STATUS(MPI_STATUS_SIZE)
488 IF (outp_rs(2) == 1)
THEN
490 . mpi_integer,mpi_sum,it_spmd(1),
491 . spmd_comm_world,ierror )
494 waszp=rszp0(nspgroup+1)
497 wasz_wr =
max(wasz_wr,rszp0(i))
499 wasz_wr = wasz_wr + 6
512!||--- calls -----------------------------------------------------
515!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.f90
521 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
522#include "implicit_f.inc"
530#include "param_c.inc"
531#include "com01_c.inc"
533#include "scr16_c.inc"
537 INTEGER IPARG(NPARG,*),DD_IAD(NSPMD+1,*),WASZ,WASZP,
542 INTEGER NGF,NGL,NN,ITY,NEL,NG,JJ,SZP0(+1),RSZP0(NSPGROUP+1),
545 INTEGER IERROR,STATUS(MPI_STATUS_SIZE)
551 IF (outp_sps( 1) == 1.OR.outp_sps( 2) == 1.OR.
553 . outp_sps( 5) == 1.OR.outp_sps( 6) == 1.OR.
554 . outp_sps( 7) == 1.OR.outp_sps(25) == 1.OR.
555 . outp_sps(20) == 1.OR.outp_sps(21) == 1.OR.
556 . outp_sps(22) == 1.OR.outp_sps(23) == 1.OR.
557 . outp_sps(24) == 1 )
THEN
561 . mpi_integer,mpi_sum,it_spmd(1),
562 . spmd_comm_world,ierror )
565 waszp=rszp0(nspgroup+1)
568 wasz_wr =
max(wasz_wr,rszp0(i))
570 wasz_wr = wasz_wr + 6
592 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
593#include "implicit_f.inc"
601#include "param_c.inc"
602#include "com01_c.inc"
604#include "scr16_c.inc"
608 INTEGER (NPARG,*),DD_IAD(NSPMD+1,*),WASZ,WASZP,WASZ_WR
613 INTEGER NGF,NGL,NN,ITY,NEL,NG,JJ,SZP0(NSPGROUP+1),RSZP0(NSPGROUP+1),
616 INTEGER IERROR,STATUS(MPI_STATUS_SIZE)
622 IF (outp_spt( 1) == 1 )
THEN
624 . mpi_integer,mpi_sum,it_spmd(1),
625 . spmd_comm_world,ierror )
628 waszp=rszp0(nspgroup+1)
631 wasz_wr =
max(wasz_wr,rszp0(i))
633 wasz_wr = wasz_wr + 6
655 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
656#include "implicit_f.inc"
664#include "param_c.inc"
665#include "com01_c.inc"
667#include "scr16_c.inc"
671 INTEGER IPARG(NPARG,*),DD_IAD(NSPMD+1,*),WASZ,WASZP,WASZ_WR
676 INTEGER NGF,NGL,NN,ITY,NEL,NG,JJ,SZP0(NSPGROUP+1),RSZP0(NSPGROUP+1),
679 INTEGER IERROR,STATUS(MPI_STATUS_SIZE)
685 IF (outp_spt( 1) == 1 )
THEN
688 . mpi_integer,mpi_sum,it_spmd(1),
689 . spmd_comm_world,ierror )
697 wasz_wr =
max(wasz_wr,rszp0(i))
699 waszp = rszp0(nspgroup+1)
712!||====================================================================
717 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
718#include "implicit_f.inc"
723#include "com01_c.inc"
724#include "com04_c.inc"
732 INTEGER WEIGHT(*),NODGLOB(*),NUM,SRECBUF
737 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,MSGOFF
738 INTEGER SIZ,MSGTYP,I,K,NG,NREC,MSGOFF2
744 INTEGER IBUF(NUMNODM)
751 IF (weight(i) == 1)
THEN
753 ibuf(siz) = nodglob(i)
754 bufsr(1,siz) = v(1,i)
755 bufsr(2,siz) = v(2,i)
756 bufsr(3,siz) = v(3,i)
765 CALL mpi_send(ibuf,siz,mpi_integer,it_spmd(1),msgtyp,
766 . spmd_comm_world,ierror)
769 CALL mpi_send(bufsr,3*siz,real,it_spmd(1),msgtyp,
770 . spmd_comm_world,ierror)
776 IF (weight(i) == 1)
THEN
791 . spmd_comm_world,status,ierror)
794 CALL mpi_recv(ibuf,siz,mpi_integer,it_spmd(i),msgtyp,
795 . spmd_comm_world,status,ierror)
800 CALL mpi_recv(bufsr,3*siz,real,it_spmd(i),msgtyp,
801 . spmd_comm_world,status,ierror)
806 vgath(1,ng) = bufsr(1,k)
807 vgath(2,ng) = bufsr(2,k)
808 vgath(3,ng) = bufsr(3,k)
831 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
832#include "implicit_f.inc"
837#include "com01_c.inc"
838#include "com04_c.inc"
846 INTEGER WEIGHT(*),NODGLOB(*),NUM,SRECBUF
851 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,MSGOFF
852 INTEGER SIZ,MSGTYP,I,K,NG,NREC,MSGOFF2
858 INTEGER IBUF(NUMNODM)
865 IF (weight(i) == 1)
THEN
867 ibuf(siz) = nodglob(i)
877 CALL mpi_send(ibuf,siz,mpi_integer,it_spmd(1),msgtyp,
878 . spmd_comm_world,ierror)
881 CALL mpi_send(bufsr,siz,real,it_spmd(1),msgtyp,
882 . spmd_comm_world,ierror)
887 IF (weight(i) == 1)
THEN
899 . spmd_comm_world,status,ierror)
902 CALL mpi_recv(ibuf,siz,mpi_integer,it_spmd(i),msgtyp,
903 . spmd_comm_world,status,ierror)
908 CALL mpi_recv(bufsr,siz,real,it_spmd(i),msgtyp,
909 . spmd_comm_world,status,ierror)
936 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
937#include "implicit_f.inc"
943#include "com01_c.inc"
947 INTEGER LEN,LENP0,IAD
955 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,
956 . msgtyp,i,siz,lenp(nspmd),disp(nspmd)
960 s len ,1 ,mpi_integer,
961 r lenp ,1 ,mpi_integer,it_spmd(1),
962 g spmd_comm_world,ierror)
974 r vp0 ,lenp ,disp,real ,it_spmd(1),
975 g spmd_comm_world,ierror)
1018 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
1019#include "implicit_f.inc"
1024#include "task_c.inc"
1025#include "com01_c.inc"
1029 INTEGER LEN,LENP0,IAD
1037 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,
1038 . msgtyp,i,siz,lenp(nspmd),disp(nspmd)
1044 s len ,1 ,mpi_integer,
1045 r lenp ,1 ,mpi_integer,it_spmd(1),
1046 g spmd_comm_world,ierror)
1057 s v ,len ,mpi_double_precision,
1058 r vp0 ,lenp ,disp,mpi_double_precision,it_spmd(1),
1059 g spmd_comm_world,ierror)
1074!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.f90
1080 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
1081#include "implicit_f.inc"
1086#include
"com01_c.inc"
1087#include "com04_c.inc"
1088#include "task_c.inc"
1089#include "spmd_c.inc"
1096 INTEGER WEIGHT(*),NODGLOB(*),NUM,SRECBUF
1101 INTEGER STATUS(MPI_STATUS_SIZE),,MSGOFF
1102 INTEGER SIZ,MSGTYP,I,K,,NREC
1112 IF (weight(i) == 1)
THEN
1114 bufsr(1,siz) = nodglob(i)
1121 CALL mpi_send(bufsr,2*siz,mpi_integer,it_spmd(1),msgtyp,
1122 . spmd_comm_world,ierror)
1126 IF (weight(i) == 1)
THEN
1138 . spmd_comm_world,status,ierror)
1142 CALL mpi_recv(bufsr,siz,mpi_integer,it_spmd(i),msgtyp,
1143 . spmd_comm_world,status,ierror)
1149 vglob(ng) = bufsr(2,k)
1172!||--- calls -----------------------------------------------------
1174!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.f90
1180 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
1181#include "implicit_f.inc"
1186#include "task_c.inc"
1187#include "com01_c.inc"
1191 INTEGER LEN(NSPGROUP),SIZV,SIZV0,ADRESS(NSPGROUP+1,NSPMD)
1199 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,
1200 . msgtyp,i,siz,disp(nspmd),
1201 . lenp(nspmd*nspgroup),lenp_loc(nspmd)
1202 INTEGER IAD,J,LEN_LOC
1205 s len ,nspgroup ,mpi_integer,
1206 r lenp ,nspgroup ,mpi_integer,it_spmd(1),
1207 g spmd_comm_world,ierror)
1216 iad = iad+lenp((i-1)*nspgroup+j)
1217 lenp_loc(i) = lenp_loc(i) + lenp((i-1)*nspgroup+j)
1222 adress(1,i) = disp(i) + 1
1224 adress(j,i) = lenp((i-1)*nspgroup+j-1) + adress(j-1,i)
1231 r vp0 ,lenp_loc ,disp,real ,it_spmd(1),
1232 g spmd_comm_world,ierror)
subroutine genoutp(x, d, v, a, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, iparg, pm, igeo, ms, cont, itab, partsav, fint, fext, tani, eani, anin, ipart, vr, elbuf_tab, dd_iad, weight, ipm, kxsp, spbuf, nodglob, leng, fopt, nom_opt, npby, fncont, ftcont, geo, thke, stack, drape_sh4n, drape_sh3n, drapeg, output)
subroutine mpi_recv(buf, cnt, datatype, source, tag, comm, status, ierr)
subroutine mpi_reduce(sendbuf, recvbuf, cnt, datatype, op, root, comm, ierr)
subroutine mpi_get_count(status, datatype, cnt, ierr)
subroutine mpi_send(buf, cnt, datatype, dest, tag, comm, ierr)
subroutine mpi_probe(source, tag, comm, status, ierr)
subroutine mpi_gather(sendbuf, cnt, datatype, recvbuf, reccnt, rectype, root, comm, ierr)
subroutine mpi_gatherv(sendbuf, cnt, datatype, recvbuf, reccnt, displs, rectype, root, comm, ierr)
subroutine count_arsz_cs(iparg, ixc, ixtg, igeo, ipm, dd_iad, wasz, siz_write_loc)
subroutine count_arsz_ct(iparg, dd_iad, wasz, siz_write, elbuf_tab)
subroutine count_arsz_rs(iparg, dd_iad, wasz, siz_write_loc)
subroutine count_arsz_rt(iparg, igeo, geo, ixr, dd_iad, wasz, siz_write_loc)
subroutine count_arsz_ss(iparg, dd_iad, ipm, ixs, wasz, siz_write_loc)
subroutine outp_s_tt(nbx, key, text, elbuf_tab, iparg, dd_iad, ipm, ixs, sizloc, sizp0, siz_wr)
subroutine count_arsz_st(iparg, dd_iad, wasz, szp0)
subroutine outp_s_t(nbx, key, text, elbuf_tab, iparg, dd_iad, sizloc, sizp0, siz_wr)
subroutine count_arsz_sps(iparg, dd_iad, wasz, siz_write_loc)
subroutine count_arsz_sptt(iparg, dd_iad, wasz, siz_write_loc)
subroutine count_arsz_spt(iparg, dd_iad, wasz, siz_write_loc)
subroutine outp_arsz_ct(iparg, dd_iad, wasz, waszp, wasz_wr, elbuf_tab)
subroutine outp_arsz_sps(iparg, dd_iad, wasz, waszp, wasz_wr)
subroutine outp_arsz_rs(iparg, dd_iad, wasz, waszp, wasz_wr)
subroutine outp_arsz_rt(iparg, igeo, geo, ixr, dd_iad, wasz, waszp, wasz_wr)
subroutine outp_arsz_spt(iparg, dd_iad, wasz, waszp, wasz_wr)
subroutine outp_arsz_cs(iparg, ixc, ixtg, igeo, ipm, dd_iad, p0ars, wasz, wasz_wr)
subroutine spmd_outpitab(v, weight, nodglob, vglob)
subroutine spmd_doutp_gath(v, nodglob, weight, vgath)
subroutine outp_arsz_ss(iparg, dd_iad, ipm, ixs, p0ars, wasz, wasz_wr)
subroutine spmd_rgather9_1comm(v, sizv, len, vp0, sizv0, adress)
subroutine spmd_rgather9(v, len, vp0, lenp0, iad)
subroutine spmd_doutp_vgath(v, nodglob, weight, vgath)
subroutine outp_arsz_st(iparg, dd_iad, wasz, wasz_wr, p0ars)
subroutine spmd_rgather9_dp(v, len, vp0, lenp0, iad)
subroutine outp_arsz_sptt(iparg, dd_iad, wasz, waszp, wasz_wr)
subroutine spmd_vgath_err(x, ms, msini, nodglob, weight, num, iflag, itab, leng)
subroutine stat_c_epspf(elbuf_tab, iparg, ipm, igeo, ixc, ixtg, wa, wap0, ipartc, iparttg, ipart_state, stat_indxc, stat_indxtg, thke, sizp0)
subroutine stat_c_fail(elbuf_tab, iparg, ipm, igeo, ixc, ixtg, wa, wap0, ipartc, iparttg, ipart_state, stat_indxc, stat_indxtg, sizp0, nummat, mat_param)
subroutine stat_p_aux(elbuf_tab, iparg, ipm, igeo, ixp, wa, wap0, ipartp, ipart_state, stat_indxp, sizp0)
subroutine stat_s_auxf(elbuf_tab, iparg, ipm, igeo, ixs, wa, wap0, iparts, ipart_state, stat_indxs, ipart, sizp0)
subroutine stat_s_straf(elbuf_tab, iparg, ipm, igeo, ixs, wa, wap0, iparts, ipart_state, stat_indxs, x, iglob, ipart, sizp0)