40 use element_mod ,
only : nixs
41 USE spmd_comm_world_mod,
ONLY :
42#include "implicit_f.inc"
57 INTEGER IPARG(NPARG,*),DD_IAD(NSPMD+1,*),P0ARS(2),WASZ(2),WASZ_WR(2),
58 . IXS(NIXS,*),IPM(NPROPMI,*)
63 INTEGER SZP0(2*NSPGROUP+2), RSZP0(2*NSPGROUP+2),
73 IF ( outp_ss(1) == 1.OR.outp_ss(2) == 1.OR.outp_ss(3) == 1
74 . .OR.outp_ss(4) == 1.OR.outp_ss(5) == 1.OR.outp_ss(6) == 1
75 . .OR.outp_ss(7) == 1.OR.outp_ss(25) == 1.OR.outp_ss(20) == 1
76 . .OR.outp_ss(21) == 1.OR.outp_ss(22) == 1.OR.outp_ss(23) == 1
77 . .OR.outp_ss(24) == 1.OR.outp_ss(26) == 1 )
THEN
80 . mpi_integer,mpi_sum,it_spmd(1),
81 . spmd_comm_world,ierror )
85 p0ars(1) =rszp0(2*nspgroup+1)
86 p0ars(2) =rszp0(2*nspgroup+2)
89 wasz_wr(1) =
max(wasz_wr(1),rszp0(i))
90 wasz_wr(2) =
max(wasz_wr(2),rszp0(nspgroup+i))
92 wasz_wr(1) = wasz_wr(1)+6
93 wasz_wr(2) = wasz_wr(2)+6
115 . P0ARS,WASZ,WASZ_WR)
119 use element_mod ,
only : nixc,nixtg
120 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
121#include "implicit_f.inc"
129#include "com01_c.inc"
130#include "scr16_c.inc"
131#include "param_c.inc"
136 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),DD_IAD(NSPMD+1,*) ,
137 . iparg(nparg,*),ipm(npropmi,*),wasz(2),igeo(npropgi,*),
138 , p0ars(2),iuser_full,j,wasz_wr(2)
146 . szp0(2*nspgroup+2),rszp0(2*nspgroup+2)
158 IF(outp_cs(26 + j) == 1) iuser_full = 1
161 IF ( outp_cs( 1) == 1.OR.outp_cs( 2) == 1.OR.outp_cs( 3) == 1
162 . .OR.outp_cs( 4) == 1.OR.outp_cs( 7) == 1.OR.outp_cs(25) == 1
163 . .OR.outp_cs(20) == 1.OR.outp_cs(21) == 1.OR.outp_cs(22) == 1
164 . .OR.outp_cs(23) == 1.OR.outp_cs(24) == 1.OR.outp_cs(26) == 1
165 . .OR.iuser_full == 1)
THEN
169 . mpi_integer,mpi_sum,it_spmd(1),
170 . spmd_comm_world,ierror )
173 p0ars(1:2) = rszp0(2*nspgroup+1:2*nspgroup+2)
176 wasz_wr(1) =
max(wasz_wr(1),rszp0(i))
177 wasz_wr(2) =
max(wasz_wr(2),rszp0(nspgroup+i))
179 wasz_wr(1) = wasz_wr(1)+6
180 wasz_wr(2) = wasz_wr(2)+6
198!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.f90
208 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
209#include "implicit_f.inc"
217#include "com01_c.inc"
218#include "scr16_c.inc"
220#include "param_c.inc"
224 INTEGER IPARG(NPARG,*), DD_IAD(NSPMD+1,*),WASZ(3),WASZ_WR(3),P0ARS(3)
231 . szp0(3*nspgroup+3),rszp0(3*nspgroup+3)
237 IF (outp_st(1)==1.OR.outp_st(2)==1.OR.outp_st(3)==1)
THEN
241 . mpi_integer,mpi_sum,it_spmd(1),
242 . spmd_comm_world,ierror )
245 p0ars(1:3) = rszp0(3*nspgroup+1:3*nspgroup+3)+8
248 wasz_wr(1) =
max(wasz_wr(1),rszp0(i))
249 wasz_wr(2) =
max(wasz_wr(2),rszp0(nspgroup+i))
250 wasz_wr(3) =
max(wasz_wr(3),rszp0(2*nspgroup+i))
262!||====================================================================
280 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
281#include "implicit_f.inc"
289#include "param_c.inc"
291#include "com01_c.inc"
292#include "scr16_c.inc"
296 INTEGER IPARG(,*),DD_IAD(NSPMD+1,*),WASZ(3),WASZP(3),WASZ_WR(3)
297 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
303 . szp0(3*nspgroup+3),rszp0(3*nspgroup+3)
314 count = count + outp_ct(10+i)+outp_ct(50+i)+outp_ct(100+i)
317 IF ( outp_ct( 1) == 1.OR.outp_ct( 2) == 1.OR.outp_ct( 3) == 1
318 . .OR.outp_ct( 4) == 1.OR.outp_ct( 5) == 1.OR.outp_ct( 6) == 1
319 . .OR.outp_ct( 7) == 1.OR.outp_ct( 8) == 1.OR.outp_ct(91) == 1
320 . .OR.outp_ct(92) == 1.OR.outp_ct(93) == 1.OR.outp_ct(94) == 1
321 . .OR.count>0.OR.outp_ct(95)==1.OR.outp_ct(96)==1)
THEN
325 . mpi_integer,mpi_sum,it_spmd(1),
326 . spmd_comm_world,ierror )
329 IF ( outp_ct(95) == 1)
THEN
331 waszp(2) = rszp0(3*nspgroup+2)
333 wasz_wr(2) =
max(wasz_wr(2),rszp0(nspgroup+i))
341 IF ( outp_ct(96) == 1)
THEN
343 waszp(3) = rszp0(3*nspgroup+3)
345 wasz_wr(3) =
max(wasz_wr(3),rszp0(nspgroup+i))
353 IF ( outp_ct( 1) == 1.OR.outp_ct( 2) == 1.OR.outp_ct( 3) == 1
354 . .OR.outp_ct( 4) == 1.OR.outp_ct( 5) == 1.OR.outp_ct( 6) == 1
355 . .OR.outp_ct( 7) == 1.OR.outp_ct( 8) == 1.OR.outp_ct(91) == 1
356 . .OR.outp_ct(92) == 1.OR.outp_ct(93) == 1.OR.outp_ct(94) == 1
359 waszp(1) = rszp0(3*nspgroup+1)
361 wasz_wr(1) =
max(wasz_wr(1),rszp0(i))
363 wasz_wr(1) = wasz_wr(1) + 6
391 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
392#include "implicit_f.inc"
400#include "param_c.inc"
401#include "com01_c.inc"
403#include "scr16_c.inc"
407 INTEGER IPARG(NPARG,*),DD_IAD(NSPMD+1,*),WASZ,WASZP,WASZ_WR
412 INTEGER SZP0(NSPGROUP+1), RSZP0(NSPGROUP+1),
422 IF (outp_rs(1) == 1)
THEN
424 . mpi_integer,mpi_sum,it_spmd(1),
425 . spmd_comm_world,ierror )
428 waszp=rszp0(nspgroup+1)
431 wasz_wr =
max(wasz_wr,rszp0(i))
433 wasz_wr = wasz_wr + 6
450!|| element_mod ../common_source/modules/elements/element_mod.f90
457 use element_mod ,
only : nixr
458 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
459#include "implicit_f.inc"
467#include "param_c.inc"
468#include "com01_c.inc"
470#include "scr16_c.inc"
474 INTEGER IPARG(NPARG,*),DD_IAD(NSPMD+1,*),WASZ,WASZP,
475 . ixr(nixr,*),igeo(npropgi,*),wasz_wr
482 INTEGER SZP0(NSPGROUP+1), RSZP0(NSPGROUP+1),
492 IF (outp_rs(2) == 1)
THEN
494 . mpi_integer,mpi_sum,it_spmd(1),
495 . spmd_comm_world,ierror )
498 waszp=rszp0(nspgroup+1)
501 wasz_wr =
max(wasz_wr,rszp0(i))
503 wasz_wr = wasz_wr + 6
525 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
526#include "implicit_f.inc"
534#include "param_c.inc"
535#include "com01_c.inc"
537#include "scr16_c.inc"
541 INTEGER IPARG(NPARG,*),DD_IAD(NSPMD+1,*),WASZ,WASZP,WASZ_WR
546 INTEGER SZP0(NSPGROUP+1), RSZP0(+1),
555 IF (outp_sps( 1) == 1.OR.outp_sps( 2) == 1.OR.
556 . outp_sps( 3) == 1.OR.outp_sps( 4) == 1.OR.
557 . outp_sps( 5) == 1.OR.outp_sps( 6) == 1.OR.
558 . outp_sps( 7) == 1.OR.outp_sps(25) == 1.OR.
559 . outp_sps(20) == 1.OR.outp_sps(21) == 1.OR.
560 . outp_sps(22) == 1.OR.outp_sps(23) == 1.OR.
561 . outp_sps(24) == 1 )
THEN
565 . mpi_integer,mpi_sum,it_spmd(1),
566 . spmd_comm_world,ierror )
569 waszp=rszp0(nspgroup+1)
572 wasz_wr =
max(wasz_wr,rszp0(i))
574 wasz_wr = wasz_wr + 6
596 USE spmd_comm_world_mod,
ONLY
597#include "implicit_f.inc"
605#include "param_c.inc"
606#include "com01_c.inc"
608#include "scr16_c.inc"
612 INTEGER IPARG(NPARG,*),DD_IAD(NSPMD+1,*),WASZ,WASZP,WASZ_WR
617 INTEGER SZP0(NSPGROUP+1), RSZP0(NSPGROUP+1),
626 IF (outp_spt( 1) == 1 )
THEN
628 . mpi_integer,mpi_sum,it_spmd(1),
629 . spmd_comm_world,ierror )
632 waszp=rszp0(nspgroup+1)
635 wasz_wr =
max(wasz_wr,rszp0(i))
637 wasz_wr = wasz_wr + 6
659 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
660#include "implicit_f.inc"
668#include "param_c.inc"
669#include "com01_c.inc"
671#include "scr16_c.inc"
675 INTEGER IPARG(NPARG,*),DD_IAD(NSPMD+1,*),WASZ,WASZP,WASZ_WR
680 INTEGER SZP0(NSPGROUP+1), RSZP0(+1),
689 IF (outp_spt( 1) == 1 )
THEN
692 . mpi_integer,mpi_sum,it_spmd(1),
693 . spmd_comm_world,ierror )
701 wasz_wr =
max(wasz_wr,rszp0(i))
703 waszp = rszp0(nspgroup+1)
721 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
722#include "implicit_f.inc"
727#include "com01_c.inc"
728#include "com04_c.inc"
736 INTEGER WEIGHT(*), NODGLOB(*)
741 INTEGER STATUS(MPI_STATUS_SIZE),,MSGOFF
742 INTEGER SIZ,MSGTYP,I,K,NG,NREC,MSGOFF2
748 INTEGER IBUF(NUMNODM)
755 IF (weight(i) == 1)
THEN
757 ibuf(siz) = nodglob(i)
758 bufsr(1,siz) = v(1,i)
759 bufsr(2,siz) = v(2,i)
760 bufsr(3,siz) = v(3,i)
769 CALL mpi_send(ibuf,siz,mpi_integer,it_spmd(1),msgtyp,
770 . spmd_comm_world,ierror)
773 CALL mpi_send(bufsr,3*siz,real,it_spmd(1),msgtyp,
774 . spmd_comm_world,ierror)
780 IF (weight(i) == 1)
THEN
795 . spmd_comm_world,status,ierror)
798 CALL mpi_recv(ibuf,siz,mpi_integer,it_spmd(i),msgtyp,
799 . spmd_comm_world,status,ierror)
804 CALL mpi_recv(bufsr,3*siz,real,it_spmd(i),msgtyp,
805 . spmd_comm_world,status,ierror)
810 vgath(1,ng) = bufsr(1,k)
811 vgath(2,ng) = bufsr(2,k)
812 vgath(3,ng) = bufsr(3,k)
835 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
836#include "implicit_f.inc"
841#include "com01_c.inc"
842#include "com04_c.inc"
850 INTEGER WEIGHT(*), NODGLOB(*)
855 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,MSGOFF
856 INTEGER SIZ,MSGTYP,I,K,NG,NREC,MSGOFF2
862 INTEGER IBUF(NUMNODM)
869 IF (weight(i) == 1)
THEN
871 ibuf(siz) = nodglob(i)
881 CALL mpi_send(ibuf,siz,mpi_integer,it_spmd(1),msgtyp,
882 . spmd_comm_world,ierror)
885 CALL mpi_send(bufsr,siz,real,it_spmd(1),msgtyp,
886 . spmd_comm_world,ierror)
891 IF (weight(i) == 1)
THEN
903 . spmd_comm_world,status,ierror)
906 CALL mpi_recv(ibuf,siz,mpi_integer,it_spmd(i),msgtyp,
907 . spmd_comm_world,status,ierror)
912 CALL mpi_recv(bufsr,siz,real,it_spmd(i),msgtyp,
913 . spmd_comm_world,status,ierror)
930!||====================================================================
940 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
941#include "implicit_f.inc"
947#include "com01_c.inc"
951 INTEGER LEN,LENP0,IAD
960 . i,lenp(nspmd),disp(nspmd)
964 s len ,1 ,mpi_integer,
965 r lenp ,1 ,mpi_integer,it_spmd(1),
966 g spmd_comm_world,ierror)
978 r vp0 ,lenp ,disp,real ,it_spmd(1),
979 g spmd_comm_world,ierror)
1022 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
1023#include "implicit_f.inc"
1028#include "task_c.inc"
1029#include "com01_c.inc"
1033 INTEGER LEN,LENP0,IAD
1042 . i,lenp(nspmd),disp(nspmd)
1048 s len ,1 ,mpi_integer,
1049 r lenp ,1 ,mpi_integer,it_spmd(1),
1050 g spmd_comm_world,ierror)
1061 s v ,len ,mpi_double_precision,
1062 r vp0 ,lenp ,disp,mpi_double_precision,it_spmd(1),
1063 g spmd_comm_world,ierror)
1070!||--- called by ------------------------------------------------------
1078!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.f90
1079!||====================================================================
1084 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
1085#include "implicit_f.inc"
1090#include "com01_c.inc"
1091#include "com04_c.inc"
1092#include "task_c.inc"
1093#include "spmd_c.inc"
1100 INTEGER WEIGHT(*), NODGLOB(*)
1105 INTEGER STATUS(),IERROR,MSGOFF
1106 INTEGER SIZ,MSGTYP,I,K,NG,NREC
1110 INTEGER BUFSR(2,NUMNODM)
1116 IF (weight(i) == 1)
THEN
1118 bufsr(1,siz) = nodglob(i)
1125 CALL mpi_send(bufsr,2*siz,mpi_integer,it_spmd(1),msgtyp,
1126 . spmd_comm_world,ierror)
1130 IF (weight(i) == 1)
THEN
1142 . spmd_comm_world,status,ierror)
1146 CALL mpi_recv(bufsr,siz,mpi_integer,it_spmd(i),msgtyp,
1147 . spmd_comm_world,status,ierror)
1176!||--- calls -----------------------------------------------------
1184 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
1185#include "implicit_f.inc"
1190#include "task_c.inc"
1191#include "com01_c.inc"
1195 INTEGER LEN(NSPGROUP),SIZV,SIZV0,(NSPGROUP+1,NSPMD)
1205 . lenp(nspmd*nspgroup),lenp_loc(nspmd)
1209 s len ,nspgroup ,mpi_integer,
1210 r lenp ,nspgroup ,mpi_integer,it_spmd(1),
1211 g spmd_comm_world,ierror)
1220 iad = iad+lenp((i-1)*nspgroup+j)
1221 lenp_loc(i) = lenp_loc(i) + lenp((i-1)*nspgroup+j)
1226 adress(1,i) = disp(i) + 1
1228 adress(j,i) = lenp((i-1)*nspgroup+j-1) + adress(j-1,i)
1235 r vp0 ,lenp_loc ,disp,real ,it_spmd(1),
1236 g spmd_comm_world,ierror)
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 count_arsz_st(iparg, dd_iad, wasz, szp0)
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 stat_c_orth_loc(elbuf_tab, iparg, ipm, igeo, ixc, ixtg, wa, wap0, ipartc, iparttg, ipart_state, stat_indxc, stat_indxtg, x, idel, sizp0)