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 40 of file i25main_free.F.

43C-----------------------------------------------
44C M o d u l e s
45C-----------------------------------------------
46 USE timer_mod
47 USE intbufdef_mod
48 USE tri7box
49 USE tri25ebox , ONLY : nedge_remote
50C-----------------------------------------------
51C I m p l i c i t T y p e s
52C-----------------------------------------------
53#include "implicit_f.inc"
54#include "comlock.inc"
55#include "macro.inc"
56C-----------------------------------------------
57C C o m m o n B l o c k s
58C-----------------------------------------------
59#include "com01_c.inc"
60#include "com04_c.inc"
61#include "param_c.inc"
62#include "timeri_c.inc"
63C-----------------------------------------------
64C D u m m y A r g u m e n t s
65C-----------------------------------------------
66 TYPE(TIMER_) :: TIMERS
67 INTEGER IPARI(NPARI,NINTER),ITASK,INTLIST25(*)
68 INTEGER ISENDTO(NSPMD+1,*),IRECVFROM(NSPMD+1,*)
69C REAL
70 TYPE(INTBUF_STRUCT_),DIMENSION(NINTER) :: INTBUF_TAB
71C-----------------------------------------------
72C L o c a l V a r i a b l e s
73C-----------------------------------------------
74 INTEGER N, NIN, NRTM, IEDGE, NEDGE
75C REAL
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 nedge_remote = ipari(69,nin)
109 IF(ipari(macro_iedge,nin) > 0) THEN
110C
111C Also needed in SMP for resetting STFE !
113 . intbuf_tab(nin)%STFE, ipari(macro_nedge,nin), intbuf_tab(nin)%LEDGE,
114 . nin , isendto, irecvfrom, intbuf_tab(nin)%MPI_COMM, intbuf_tab(nin)%RANK,
115 . intbuf_tab(nin)%NSPMD)
116 ENDIF
117 ENDDO
118!$OMP END SINGLE
119C
120 IF (imon>0 .AND. itask==0) THEN
121 CALL stoptime(timers,macro_timer_t25stfe)
122 ENDIF
123C-----------------------------------------------------------
124 RETURN
subroutine i25edge_switch(jtask, stifm, stfe, mvoisin, iedge, nedge, ledge)
subroutine i25free_bound(nrtm, mvoisin, irect, stifm, nrtm_free, free_irect_id)
integer nedge_remote
Definition tri25ebox.F:75
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