OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i25main_free.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "macro.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "param_c.inc"
#include "timeri_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine i25main_free (timers, itask, ipari, intbuf_tab, intlist25, isendto, irecvfrom)

Function/Subroutine Documentation

◆ i25main_free()

subroutine i25main_free ( type(timer_) timers,
integer itask,
integer, dimension(npari,ninter) ipari,
type(intbuf_struct_), dimension(ninter) intbuf_tab,
integer, dimension(*) intlist25,
integer, dimension(nspmd+1,*) isendto,
integer, dimension(nspmd+1,*) irecvfrom )

Definition at line 39 of file i25main_free.F.

42C-----------------------------------------------
43C M o d u l e s
44C-----------------------------------------------
45 USE timer_mod
46 USE intbufdef_mod
47 USE tri7box
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51#include "implicit_f.inc"
52#include "comlock.inc"
53#include "macro.inc"
54C-----------------------------------------------
55C C o m m o n B l o c k s
56C-----------------------------------------------
57#include "com01_c.inc"
58#include "com04_c.inc"
59#include "param_c.inc"
60#include "timeri_c.inc"
61C-----------------------------------------------
62C D u m m y A r g u m e n t s
63C-----------------------------------------------
64 TYPE(TIMER_) :: TIMERS
65 INTEGER IPARI(NPARI,NINTER),ITASK,INTLIST25(*)
66 INTEGER ISENDTO(NSPMD+1,*),IRECVFROM(NSPMD+1,*)
67C REAL
68 TYPE(INTBUF_STRUCT_),DIMENSION(NINTER) :: INTBUF_TAB
69C-----------------------------------------------
70C L o c a l V a r i a b l e s
71C-----------------------------------------------
72 INTEGER N, NIN, NRTM, IEDGE, NEDGE
73C REAL
75 . startt, stopt
76C-----------------------------------------------
77 DO n = 1,ninter25
78 nin = intlist25(n)
79
80 nrtm = ipari(4,nin)
81 iedge = ipari(58,nin)
82 nedge = ipari(68,nin)
83C
84 IF(iedge/=0)THEN
85 CALL i25edge_switch(
86 . itask+1,intbuf_tab(nin)%STFM,intbuf_tab(nin)%STFE,intbuf_tab(nin)%MVOISIN,iedge,
87 . nedge,intbuf_tab(nin)%LEDGE)
88C
89 CALL my_barrier
90C
91 END IF
92C
93!$OMP SINGLE
94 CALL i25free_bound(
95 1 nrtm,intbuf_tab(nin)%MVOISIN,intbuf_tab(nin)%IRECTM,intbuf_tab(nin)%STFM,
96 . intbuf_tab(nin)%NRTM_FREE,
97 2 intbuf_tab(nin)%FREE_IRECT_ID)
98!$OMP END SINGLE
99 END DO
100C-----------------------------------------------------------
101 IF (imon>0 .AND. itask==0) THEN
102 CALL startime(timers,macro_timer_t25stfe)
103 ENDIF
104C
105!$OMP SINGLE
106 DO n = 1,ninter25
107 nin = intlist25(n)
108 IF(ipari(macro_iedge,nin) > 0) THEN
109C
110C Also needed in SMP for resetting STFE !
112 . intbuf_tab(nin)%STFE, ipari(macro_nedge,nin), intbuf_tab(nin)%LEDGE,
113 . nin , isendto, irecvfrom, intbuf_tab(nin)%MPI_COMM, intbuf_tab(nin)%RANK,
114 . intbuf_tab(nin)%NSPMD)
115 ENDIF
116 ENDDO
117!$OMP END SINGLE
118C
119 IF (imon>0 .AND. itask==0) THEN
120 CALL stoptime(timers,macro_timer_t25stfe)
121 ENDIF
122C-----------------------------------------------------------
123 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine i25edge_switch(jtask, stifm, stfe, mvoisin, iedge, nedge, ledge)
subroutine i25free_bound(nrtm, mvoisin, irect, stifm, nrtm_free, free_irect_id)
subroutine spmd_get_stif25_edg(stfe, nedge, ledge, nin, isendto, ircvfrom, comm, rank, comsize)
subroutine my_barrier
Definition machine.F:31
subroutine startime(event, itask)
Definition timer.F:93
subroutine stoptime(event, itask)
Definition timer.F:135