OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r2r_exchange.F File Reference
#include "implicit_f.inc"
#include "units_c.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "com08_c.inc"
#include "param_c.inc"
#include "scr05_c.inc"
#include "task_c.inc"
#include "rad2r_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine r2r_exchange (iexlnk, igrnod, dx, v, vr, a, ar, ms, in, stx, str, r2r_on, dd_r2r, weight, iad_elem, fr_elem, rby, xdp, x, dd_r2r_elem, sdd_r2r_elem, off_sph_r2r, numsph_glo_r2r, nloc_dmg)
subroutine send_data_spmd (idp, nng, grnod, a, ar, stx, str, v, vr, ms, in, dx, dd_r2r, nglob, weight, typ, flag_rot, flag_rby, rby, iex)
subroutine get_stiff_spmd (idp, nng, grnod, ms, in, stx, str, dd_r2r, nglob, weight, iad_elem, fr_elem, nb, iex, typ, flag_rot)
subroutine r2r_tagel (ntagel_r2r_send, id_el, id_node, ity, ofur, tagel_size)
subroutine r2r_exch_itag (iexlnk, igrnod, itag, flag)

Function/Subroutine Documentation

◆ get_stiff_spmd()

subroutine get_stiff_spmd ( integer idp,
integer nng,
integer, dimension(*) grnod,
ms,
in,
stx,
str,
integer, dimension(*) dd_r2r,
integer nglob,
integer, dimension(*) weight,
integer, dimension(2,*) iad_elem,
integer, dimension(*) fr_elem,
integer nb,
integer iex,
integer typ,
integer flag_rot )

Definition at line 365 of file r2r_exchange.F.

369C----6------------------------------------------
370C I m p l i c i t T y p e s
371C-----------------------------------------------
372#include "implicit_f.inc"
373C-----------------------------------------------
374C C o m m o n B l o c k s
375C-----------------------------------------------
376#include "com01_c.inc"
377#include "task_c.inc"
378C-----------------------------------------------
379C D u m m y A r g u m e n t s
380C-----------------------------------------------
381 INTEGER IDP, NNG, NGLOB, GRNOD(*),IEX,TYP,
382 . WEIGHT(*), DD_R2R(*), IAD_ELEM(2,*), FR_ELEM(*),NB,
383 . FLAG_ROT
384 my_real ms(*), in(*), stx(*), str(*)
385C-----------------------------------------------
386C L o c a l V a r i a b l e s
387C-----------------------------------------------
388 INTEGER LRBUF,i
389 my_real
390 . bufr1(nglob), bufr2(nglob), bufr3(nglob), bufr4(nglob)
391C
392C******************************************************************************C
393 IF(ispmd == 0) THEN
394 CALL get_stiff_spmd_c(idp,nb,bufr1,bufr2,bufr3,bufr4,
395 . typ,ncycle,iex,nglob)
396 ENDIF
397
398 IF (typ==5) THEN
399 lrbuf = 2*2*(iad_elem(1,nspmd+1)-iad_elem(1,1))+2*nspmd
400
401 IF (ncycle==0) THEN
402 CALL spmd_r2r_rset(ms ,nng ,grnod,dd_r2r,weight,
403 . bufr1,iad_elem,fr_elem,lrbuf,iex)
404 ENDIF
405 CALL spmd_r2r_rset(stx ,nng ,grnod,dd_r2r,weight,
406 . bufr2,iad_elem,fr_elem,lrbuf,iex )
407 IF(flag_rot /= 0)THEN
408 IF (ncycle==0) THEN
409 CALL spmd_r2r_rset(in ,nng ,grnod,dd_r2r,weight,
410 . bufr3,iad_elem,fr_elem,lrbuf,iex )
411 ENDIF
412 CALL spmd_r2r_rset(str ,nng ,grnod,dd_r2r,weight,
413 . bufr4,iad_elem,fr_elem,lrbuf,iex )
414 END IF
415 END IF
416
417C-----------------------------------------------------------------
418 RETURN
#define my_real
Definition cppsort.cpp:32
void get_stiff_spmd_c(int *idp, int *nng, my_real_c *bufr1, my_real_c *bufr2, my_real_c *bufr3, my_real_c *bufr4, int *typ, int *npas, int *iex, int *nglob)
Definition rad2rad_c.c:1688
subroutine spmd_r2r_rset(m, nng, grnod, dd_r2r, weight, bufr, iad_elem, fr_elem, lrbuf, iex)
Definition spmd_r2r.F:765

◆ r2r_exch_itag()

subroutine r2r_exch_itag ( integer, dimension(nr2r,nr2rlnk) iexlnk,
type (group_), dimension(ngrnod), target igrnod,
integer, dimension(*) itag,
integer flag )

Definition at line 489 of file r2r_exchange.F.

490C-----------------------------------------------
491C M o d u l e s
492C-----------------------------------------------
493 USE groupdef_mod
494C-----------------------------------------------
495C I m p l i c i t T y p e s
496C-----------------------------------------------
497#include "implicit_f.inc"
498C-----------------------------------------------
499C C o m m o n B l o c k s
500C-----------------------------------------------
501#include "param_c.inc"
502#include "com04_c.inc"
503#include "rad2r_c.inc"
504C-----------------------------------------------
505C D u m m y A r g u m e n t s
506C-----------------------------------------------
507 INTEGER IEXLNK(NR2R,NR2RLNK),ITAG(*),FLAG
508 TYPE (GROUP_) , TARGET, DIMENSION(NGRNOD) :: IGRNOD
509C-----------------------------------------------
510C L o c a l V a r i a b l e s
511C-----------------------------------------------
512 INTEGER I, IEX, IDP, IDG, NNG,NMOD_R2R, OFF
513 INTEGER, DIMENSION(:), POINTER :: GRNOD
514C=======================================================================
515
516 off = 0
517
518 IF (r2r_siu==1) THEN
519C----------Echange of itag ( 0 reception / 1 emission) --------------
520 DO iex = 1, nr2rlnk
521 idp = iexlnk(2,iex)
522 idg = iexlnk(1,iex)
523 nng = igrnod(idg)%NENTITY
524 grnod => igrnod(idg)%ENTITY
525 CALL exch_itag_c(idp,nng,grnod,itag,itag(numnod+1),iex,off,flag)
526 off = off + nng
527 END DO
528 ENDIF
529C-----------------------------------------------------------------
530 RETURN
void exch_itag_c(int *idp, int *nng, int *nodbuf, int *itag, int *itag2, int *iex, int *offset, int *flag)
Definition rad2rad_c.c:2625

◆ r2r_exchange()

subroutine r2r_exchange ( integer, dimension(nr2r,nr2rlnk) iexlnk,
type (group_), dimension(ngrnod), target igrnod,
dx,
v,
vr,
a,
ar,
ms,
in,
stx,
str,
integer r2r_on,
integer, dimension(nspmd+1,*) dd_r2r,
integer, dimension(*) weight,
integer, dimension(2,*) iad_elem,
integer, dimension(*) fr_elem,
rby,
double precision, dimension(3,*) xdp,
x,
integer, dimension(*) dd_r2r_elem,
integer sdd_r2r_elem,
integer, dimension(*) off_sph_r2r,
integer numsph_glo_r2r,
type(nlocal_str_), intent(in), target nloc_dmg )

Definition at line 46 of file r2r_exchange.F.

52C-----------------------------------------------
53C M o d u l e s
54C-----------------------------------------------
55 USE rad2r_mod
56 USE groupdef_mod
58C-----------------------------------------------
59C I m p l i c i t T y p e s
60C-----------------------------------------------
61#include "implicit_f.inc"
62C-----------------------------------------------
63C C o m m o n B l o c k s
64C-----------------------------------------------
65#include "units_c.inc"
66#include "com01_c.inc"
67#include "com04_c.inc"
68#include "com08_c.inc"
69#include "param_c.inc"
70#include "scr05_c.inc"
71#include "task_c.inc"
72#include "rad2r_c.inc"
73C-----------------------------------------------------------------
74C D u m m y A r g u m e n t s
75C-----------------------------------------------
76 INTEGER IEXLNK(NR2R,NR2RLNK),
77 . WEIGHT(*), DD_R2R(NSPMD+1,*), IAD_ELEM(2,*), FR_ELEM(*),
78 . DD_R2R_ELEM(*),SDD_R2R_ELEM,OFF_SPH_R2R(*),NUMSPH_GLO_R2R
79 INTEGER R2R_ON,NGLOB,NB
80C REAL
82 . v(3,*), vr(3,*), a(3,*) , ar(3,*), dx(3,*),
83 . ms(*) , in(*) , stx(*) , str(*), rby(*), x(3,*)
84 DOUBLE PRECISION XDP(3,*)
85!
86 TYPE (GROUP_) , TARGET, DIMENSION(NGRNOD) :: IGRNOD
87 TYPE(NLOCAL_STR_), TARGET, INTENT(IN) :: NLOC_DMG
88C-----------------------------------------------
89C L o c a l V a r i a b l e s
90C-----------------------------------------------
91 INTEGER I,IEX,IDP,IDG,NNG,OLD_ACTIV,BID,LENR,SIZE,NTOP
92C
93 INTEGER, DIMENSION(:), POINTER :: GRNOD
94 my_real, POINTER, DIMENSION(:) :: msnl,vnl,fnl
95C=======================================================================
96
97C------------------------------------------------------
98C------------ Stock force and stifness for exch -------
99C------------------------------------------------------
100
101 IF ((r2r_siu==1).OR.(nspmd==1)) THEN
102 DO iex = 1, nr2rlnk
103 idg = iexlnk(1,iex)
104 idp = iexlnk(2,iex)
105 nng = igrnod(idg)%NENTITY
106 grnod => igrnod(idg)%ENTITY
107 IF (nllnk(iex)==1) THEN
108C----------Non local coupling interface--------------------------
109 msnl => nloc_dmg%MASS(1:nloc_dmg%L_NLOC)
110 vnl => nloc_dmg%VNL(1:nloc_dmg%L_NLOC)
111 fnl => nloc_dmg%FNL(1:nloc_dmg%L_NLOC,1)
112 CALL send_data_nl_c(idp,nbdof_nl(iex),iadd_nl,fnl,vnl ,
113 . msnl,ncycle ,iex)
114 ELSEIF (iresp==1) THEN
115C----------simple precision : DX is replaced by XDP--------------
116 CALL send_data_c(
117 . idp ,nng ,grnod ,a ,ar ,
118 . stx ,str ,v ,vr ,ms ,in ,
119 . xdp ,x ,typlnk(iex),ncycle,rby,tag_rby,
120 . add_rby(iex) ,rbylnk(iex),kinlnk(iex),r2r_kine,dt1,iex,
121 . off_sph_r2r ,numsph_glo_r2r, nrby)
122 ELSE
123C---------double precision---------------------------------------
124 CALL send_data_c(
125 . idp ,nng ,grnod ,a ,ar ,
126 . stx ,str ,v ,vr ,ms ,in ,
127 . dx ,x ,typlnk(iex),ncycle,rby,tag_rby,
128 . add_rby(iex) ,rbylnk(iex),kinlnk(iex),r2r_kine,dt1,iex,
129 . off_sph_r2r ,numsph_glo_r2r, nrby)
130 ENDIF
131 END DO
132 ELSE
133 DO iex = 1, nr2rlnk
134 idg = iexlnk(1,iex)
135 idp = iexlnk(2,iex)
136 nng = igrnod(idg)%NENTITY
137 grnod => igrnod(idg)%ENTITY
138 IF (iresp==1) THEN
139C----------simple precision : DX is replaced by XDP--------------
140 CALL send_data_spmd(
141 . idp,nng,grnod ,a ,ar ,
142 . stx,str,v ,vr ,ms ,
143 . in ,xdp ,dd_r2r(1,iex),dd_r2r(nspmd+1,iex),weight,
144 . typlnk(iex),rotlnk(iex),rbylnk(iex),rby,iex)
145 ELSE
146C----------double precision -------------------------------------
147 CALL send_data_spmd(
148 . idp,nng,grnod ,a ,ar ,
149 . stx,str,v ,vr ,ms ,
150 . in ,dx ,dd_r2r(1,iex),dd_r2r(nspmd+1,iex),weight,
151 . typlnk(iex),rotlnk(iex),rbylnk(iex),rby,iex)
152 ENDIF
153 END DO
154 ENDIF
155
156C------------------------------------------------------
157 IF ((r2r_siu==1).OR.(ispmd==0)) CALL r2r_sem_c()
158
159C------------------------------------------------------
160!$OMP PARALLEL
161!$OMP MASTER
162C------------------------------------------------------
163C-------------- Exch flag activation--- ---------------
164C------------------------------------------------------
165
166 IF(nspmd==1.OR.ispmd==0)THEN
167 CALL check_dtnoda_c(i7kglo)
168 old_activ = r2r_activ
169 r2r_on = 0
170C----- Check activation flag of current subdomain
171 CALL get_ibuf_c(r2r_activ,1)
172
173 IF (old_activ == 1 .AND. r2r_activ == 0) THEN
174 WRITE(iout,*)' PROCESS DEACTIVATION'
175 ENDIF
176C------------------------------------------------------
177 IF (r2r_activ /= -1) THEN
178 DO WHILE (r2r_activ == 0)
179 CALL get_ibuf_c(r2r_activ,1)
180 ENDDO
181 IF (old_activ == 0 .AND. r2r_activ == 1) THEN
182 WRITE(iout,*)' PROCESS ACTIVATION'
183 ENDIF
184 END IF
185C------------------------------------------------------
186 IF (r2r_activ == 1) THEN
187 CALL get_ibuf_c(r2r_on,1)
188C---------infos for th---------------------------------
189 IF (r2r_siu==1) THEN
190 CALL send_ibuf_c(r2r_th_flag,10)
191 IF (iddom==0) CALL send_ibuf_c(r2r_th_main,10)
192 ENDIF
193 ENDIF
194 END IF
195C------------------------------------------------------
196 IF(nspmd>1)THEN
197 CALL spmd_ibcast(r2r_activ,r2r_activ,1,1,0,2)
198 CALL spmd_ibcast(i7kglo,i7kglo,1,1,0,2)
199 IF (r2r_activ == 1) CALL spmd_ibcast(r2r_on,r2r_on,1,1,0,2)
200 END IF
201 IF (r2r_activ == -1) THEN
202 tt = tstop
203C RETURN
204 ENDIF
205
206C------------------------------------------------------
207C-------------- Rad2rad activation----- ---------------
208C------------------------------------------------------
209 IF ((r2r_siu==1).OR.(ispmd==0)) THEN
210 CALL r2r_sem_c()
211 CALL get_ibuf_c(bid,1)
212 IF (r2r_siu==1) ntop = nthread
213 IF (r2r_siu==0) ntop = nthread*nspmd
214 CALL r2r_unlock_threads_c(ntop)
215 ENDIF
216C------------------------------------------------------
217C------------------------------------------------------
218!$OMP END MASTER
219 CALL r2r_block_c()
220!$OMP END PARALLEL
221
222C------------------------------------------------------
223C------------ Get stifness from shared memory ---------
224C------------------------------------------------------
225
226 IF ((r2r_siu==1).OR.(nspmd==1)) THEN
227 DO iex = 1, nr2rlnk
228 idg = iexlnk(1,iex)
229 idp = iexlnk(2,iex)
230 nng = igrnod(idg)%NENTITY
231 grnod => igrnod(idg)%ENTITY
232!
233 CALL get_stiff_c(
234 . idp ,nng ,grnod,ms ,in ,
235 . stx ,str, typlnk(iex),ncycle,iex)
236 END DO
237
238C-------New rad2rad HMPP - synchro SPMD- (not needed for NL coupling) -----
239 IF ((sdd_r2r_elem>0).AND.(nspmd>1)) THEN
240 SIZE = 1 + iroddl*1
241 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
242 IF (ncycle==0) THEN
243 CALL spmd_exch_r2r(
244 1 a ,ar ,ms,in ,ms ,
245 2 iad_elem,fr_elem,SIZE ,
246 3 lenr ,dd_r2r,dd_r2r_elem,1)
247 ENDIF
248 CALL spmd_exch_r2r(
249 1 a ,ar ,stx,str ,ms ,
250 2 iad_elem,fr_elem,SIZE ,
251 3 lenr ,dd_r2r,dd_r2r_elem,1)
252 ENDIF
253
254 ELSE
255C--------------------------------------------------------------------
256 DO iex = 1, nr2rlnk
257 idg = iexlnk(1,iex)
258 idp = iexlnk(2,iex)
259 nng = igrnod(idg)%NENTITY
260 grnod => igrnod(idg)%ENTITY
261 nb = dd_r2r(nspmd+1,iex)
262 IF (ispmd==0) THEN
263 nglob=dd_r2r(nspmd+1,iex)+dbno(iex)
264 ELSE
265 nglob=nng
266 ENDIF
267 CALL get_stiff_spmd(
268 . idp ,nng ,grnod ,ms ,in ,
269 . stx ,str ,dd_r2r(1,iex),nglob,weight,
270 3 iad_elem,fr_elem,nb,iex,typlnk(iex),rotlnk(iex))
271
272 END DO
273 ENDIF
274
275C-----------------------------------------------------------------
276 RETURN
integer, dimension(:), allocatable nllnk
Definition rad2r.F:53
integer, dimension(:), allocatable rbylnk
Definition rad2r.F:53
integer, dimension(:), allocatable nbdof_nl
Definition rad2r.F:53
integer, dimension(:), allocatable rotlnk
Definition rad2r.F:53
integer, dimension(:), allocatable tag_rby
Definition rad2r.F:53
integer, dimension(:), allocatable iadd_nl
Definition rad2r.F:53
integer, dimension(:), allocatable add_rby
Definition rad2r.F:53
integer, dimension(:), allocatable typlnk
Definition rad2r.F:53
double precision, dimension(:,:), allocatable r2r_kine
Definition rad2r.F:61
integer, dimension(:), allocatable kinlnk
Definition rad2r.F:53
integer, dimension(:), allocatable dbno
Definition rad2r.F:53
subroutine send_data_spmd(idp, nng, grnod, a, ar, stx, str, v, vr, ms, in, dx, dd_r2r, nglob, weight, typ, flag_rot, flag_rby, rby, iex)
subroutine get_stiff_spmd(idp, nng, grnod, ms, in, stx, str, dd_r2r, nglob, weight, iad_elem, fr_elem, nb, iex, typ, flag_rot)
void r2r_unlock_threads_c(int *nthr)
Definition rad2rad_c.c:369
void r2r_block_c()
Definition rad2rad_c.c:406
void check_dtnoda_c(int *i7kglo)
Definition rad2rad_c.c:1389
void get_stiff_c(int *idp, int *nng, int *nodbuf, my_real_c *ms, my_real_c *ir, my_real_c *stx, my_real_c *str, int *typ, int *npas, int *iex)
Definition rad2rad_c.c:1632
void r2r_sem_c()
Definition rad2rad_c.c:430
void send_data_c(int *idp, int *nng, int *nodbuf, my_real_c *fx, my_real_c *fr, my_real_c *stx, my_real_c *str, my_real_c *vx, my_real_c *vr, my_real_c *ms, my_real_c *in, double *dx, my_real_c *x, int *typ, int *npas, my_real_c *rby, int *tag_rby, int *add_rby, int *rbylnk, int *kin, double *dr, my_real_c *dt2, int *iex, int *off_sph, int *numsph_glo, int *nrby)
Definition rad2rad_c.c:1411
void send_data_nl_c(int *idp, int *nng, int *iadd_nl, my_real_c *fx, my_real_c *vx, my_real_c *ms, int *npas, int *iex)
Definition rad2rad_c.c:1521
void send_ibuf_c(int *ibuf, int *len)
Definition rad2rad_c.c:940
void get_ibuf_c(int *ibuf, int *len)
Definition rad2rad_c.c:1031
subroutine spmd_ibcast(tabi, tabr, n1, n2, from, add)
Definition spmd_ibcast.F:57
subroutine spmd_exch_r2r(a, ar, stifn, stifr, ms, iad_elem, fr_elem, size, lenr, dd_r2r, dd_r2r_elem, flag)
Definition spmd_r2r.F:1180

◆ r2r_tagel()

subroutine r2r_tagel ( integer ntagel_r2r_send,
integer id_el,
integer id_node,
integer ity,
integer ofur,
integer tagel_size )

Definition at line 428 of file r2r_exchange.F.

429C-----------------------------------------------
430C M o d u l e s
431C-----------------------------------------------
432 USE rad2r_mod
433C-----------------------------------------------
434C I m p l i c i t T y p e s
435C-----------------------------------------------
436#include "implicit_f.inc"
437C-----------------------------------------------
438C D u m m y A r g u m e n t s
439C-----------------------------------------------
440 INTEGER NTAGEL_R2R_SEND,ID_EL,ID_NODE,ITY,OFUR,TAGEL_SIZE
441C-----------------------------------------------
442C L o c a l V a r i a b l e s
443C-----------------------------------------------
444 INTEGER I,N,TAGEL_SIZE_OLD
445 INTEGER, DIMENSION(:),ALLOCATABLE :: TAGEL_TEMP
446C=======================================================================
447
448 n = 3*ntagel_r2r_send
449 ntagel_r2r_send = ntagel_r2r_send + 1
450
451C----------Reallocation of tagel----------------------------------
452 IF (3*ntagel_r2r_send>tagel_size) THEN
453C
454 IF (tagel_size>0) THEN
455 ALLOCATE(tagel_temp(tagel_size))
456 DO i=1,tagel_size
457 tagel_temp(i) = tagel_r2r_send(i)
458 END DO
459 ENDIF
460C
461 tagel_size_old = tagel_size
462 tagel_size = tagel_size + 150
463 IF (ALLOCATED(tagel_r2r_send)) DEALLOCATE(tagel_r2r_send)
464 ALLOCATE(tagel_r2r_send(tagel_size))
465 DO i=1,tagel_size_old
466 tagel_r2r_send(i) = tagel_temp(i)
467 END DO
468C
469 ENDIF
470C------------------------------------------------------------------
471
472 tagel_r2r_send(n+1) = id_el
473 tagel_r2r_send(n+2) = id_node
474 tagel_r2r_send(n+3) = ity
475
476C-----------------------------------------------------------------
477 RETURN
integer, dimension(:), allocatable tagel_r2r_send
Definition rad2r.F:53

◆ send_data_spmd()

subroutine send_data_spmd ( integer idp,
integer nng,
integer, dimension(*) grnod,
a,
ar,
stx,
str,
v,
vr,
ms,
in,
double precision, dimension(3,*) dx,
integer, dimension(*) dd_r2r,
integer nglob,
integer, dimension(*) weight,
integer typ,
integer flag_rot,
integer flag_rby,
rby,
integer iex )

Definition at line 290 of file r2r_exchange.F.

295C-----------------------------------------------
296C I m p l i c i t T y p e s
297C-----------------------------------------------
298#include "implicit_f.inc"
299C-----------------------------------------------
300C C o m m o n B l o c k s
301C-----------------------------------------------
302#include "com01_c.inc"
303#include "task_c.inc"
304C-----------------------------------------------
305C D u m m y A r g u m e n t s
306C-----------------------------------------------
307 INTEGER IDP, NNG, NGLOB,i,TYP,
308 . GRNOD(*),FLAG_ROT, FLAG_RBY,
309 . WEIGHT(*), DD_R2R(*), IEX
310C REAL
311 my_real
312 . a(3,*), ar(3,*), stx(*), str(*), v(3,*), vr(3,*),
313 . ms(*), in(*), rby(*)
314 DOUBLE PRECISION DX(3,*)
315C-----------------------------------------------
316C L o c a l V a r i a b l e s
317C-----------------------------------------------
318 INTEGER II,J
319 my_real
320 . bufr1(3,nglob), bufr2(3,nglob), bufr3(nglob),
321 . bufr4(nglob), bufr5(3,nglob), bufr6(3,nglob),
322 . bufr8(nglob), bufr9(nglob),buf_rby(9,nglob)
323 DOUBLE PRECISION BUFR7(3,NGLOB)
324C
325C******************************************************************************C
326
327 IF (typ/=7) THEN
328 CALL spmd_r2r_rget3(a,nng,grnod,dd_r2r,weight,bufr1)
329 CALL spmd_r2r_rget3(ar,nng,grnod,dd_r2r,weight,bufr2)
330 IF (typ==5) THEN
331 CALL spmd_r2r_rget3_dp(dx,nng,grnod,dd_r2r,weight,bufr7)
332 CALL spmd_r2r_rget(stx,nng,grnod,dd_r2r,weight,bufr3)
333 IF(flag_rot /= 0)
334 . CALL spmd_r2r_rget(str,nng,grnod,dd_r2r,weight,bufr4)
335 ENDIF
336 IF ((typ<=4).OR.(ncycle==0)) THEN
337 CALL spmd_r2r_rget3(v,nng,grnod,dd_r2r,weight,bufr5)
338 IF(flag_rot /= 0)
339 . CALL spmd_r2r_rget3(vr,nng,grnod,dd_r2r,weight,bufr6)
340 ENDIF
341 CALL spmd_r2r_rget(ms,nng,grnod,dd_r2r,weight,bufr8)
342 IF(flag_rot /= 0)
343 . CALL spmd_r2r_rget(in,nng,grnod,dd_r2r,weight,bufr9)
344 IF (flag_rby==1)
345 . CALL spmd_r2r_rby(rby,nng,grnod,dd_r2r,weight,iex,buf_rby)
346 ENDIF
347
348 IF(ispmd==0) THEN
349 CALL send_data_spmd_c(idp ,nglob,bufr1,bufr2,bufr3,
350 2 bufr4,bufr5,bufr6,bufr7,bufr8,
351 3 bufr9,buf_rby,flag_rby,typ,ncycle,iex)
352 ENDIF
353C-----------------------------------------------------------------
354 RETURN
void send_data_spmd_c(int *idp, int *nng, my_real_c *bufr1, my_real_c *bufr2, my_real_c *bufr3, my_real_c *bufr4, my_real_c *bufr5, my_real_c *bufr6, double *bufr7, my_real_c *bufr8, my_real_c *bufr9, my_real_c *buf_rby, int *flg_rby, int *typ, int *npas, int *iex)
Definition rad2rad_c.c:1560
subroutine spmd_r2r_rget3(x, nng, grnod, dd_r2r, weight, bufr)
Definition spmd_r2r.F:34
subroutine spmd_r2r_rby(rby, nng, grnod, dd_r2r, weight, iex, bufr)
Definition spmd_r2r.F:251
subroutine spmd_r2r_rget(m, nng, grnod, dd_r2r, weight, bufr)
Definition spmd_r2r.F:180
subroutine spmd_r2r_rget3_dp(x, nng, grnod, dd_r2r, weight, bufr)
Definition spmd_r2r.F:106