OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i23pwr3.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| i23pwr3 ../starter/source/interfaces/inter3d1/i23pwr3.F
25!||--- called by ------------------------------------------------------
26!|| inint3 ../starter/source/interfaces/inter3d1/inint3.F
27!||--- uses -----------------------------------------------------
28!|| format_mod ../starter/share/modules1/format_mod.F90
29!|| message_mod ../starter/share/message_module/message_mod.F
30!||====================================================================
31 SUBROUTINE i23pwr3(ITAB,INACTI,CAND_E,CAND_N,STFN,
32 1 X ,I_STOK,NSV ,IWPENE,PENE,
33 2 NOINT,NTY ,GAP_S ,MSR ,
34 3 IRECT,GAPMIN,GAPMAX ,FPENMAX,
35 4 NSN ,ITAG ,CAND_EN,CAND_NN,
36 5 CAND_P,STF ,IFPEN ,IFPENN,GAPV)
37 USE message_mod
38 USE format_mod , ONLY : fmw_5i
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C D u m m y A r g u m e n t s
45C-----------------------------------------------
46 INTEGER ITAB(*),CAND_E(*),CAND_N(*), IRECT(4,*),
47 . ITAG(*),CAND_NN(*),CAND_EN(*), IFPEN(*),
48 . IFPENN(*)
49 INTEGER I_STOK,NSV(*),MSR(*),IWPENE,INACTI,NOINT,NTY,NSN,JWARN
50 my_real
51 . stfn(*),x(3,*),pene(*),cand_p(*),gap_s(*),
52 . gapmin,gapmax,stf(*),gapv(*),fpenmax
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "scr03_c.inc"
57#include "units_c.inc"
58C-----------------------------------------------
59C L o c a l V a r i a b l e s
60C-----------------------------------------------
61 INTEGER I, J, L
62 INTEGER IX1, IX2, IX3, IX4, NSVG
63 my_real PENMAX
64C-----------------------------------------------
65 JWARN = 0
66 DO 100 i=1,i_stok
67 j=cand_n(i)
68 l=cand_e(i)
69
70 ix1=irect(1,l)
71 ix2=irect(2,l)
72 ix3=irect(3,l)
73 ix4=irect(4,l)
74 nsvg=nsv(j)
75 IF(pene(i)>zero)THEN
76 IF(ipri>=1)THEN
77 WRITE(iout,fmt=fmw_5i) itab(nsvg), itab(ix1),itab(ix2), itab(ix3),itab(ix4)
78 END IF
79 WRITE(iout,1000)pene(i)
80C
81 penmax=fpenmax*gapv(i)
82 IF(inacti==1) THEN
83C DESACTIVATION DES NOEUDS
84 WRITE(iout,'(A)')'NODE STIFFNESS IS SET TO ZERO'
85 stfn(j) = zero
86 ELSE IF(inacti==2) THEN
87C DESACTIVATION DES ELEMENTS
88 WRITE(iout,'(A)')'ELEMENT STIFFNESS IS SET TO ZERO'
89 stf(cand_e(i)) = zero
90 ELSE IF(inacti==3) THEN
91C CHANGE LES COORDONNEES DES NOEUDS SECND
92 WRITE(iout,'(A)')
93 . 'INACTI=3 IS NOT AVAILABLE FOR INTERFACE TYPE23'
94 ELSE IF(inacti==4) THEN
95C CHANGE LES COORDONNEES DES NOEUDS MAIN
96 WRITE(iout,'(A)')
97 . 'INACTI=4 IS NOT AVAILABLE FOR INTERFACE TYPE23'
98 ELSEIF(fpenmax /= zero .AND. pene(i) > penmax) THEN
99C DESACTIVATION DES NOEUDS
100 WRITE(iout,'(A,1PG20.13,A)')
101 . ' MAX INITIAL PENETRATION ',penmax,' IS REACHED'
102 WRITE(iout,'(A)')'NODE STIFFNESS IS SET TO ZERO'
103 stfn(j) = zero
104 ELSE IF(inacti==5) THEN
105C REDUCTION DU GAP
106 jwarn = 1
107 pene(i)=pene(i)+em08*pene(i)
108 ELSE
109C INACTI==6
110C REDUCTION DU GAP
111 jwarn = 1
112 pene(i)=pene(i)+zep05*(gapv(i)-pene(i))
113 END IF
114 cand_p(iwpene+1) = pene(i)
115 cand_nn(iwpene+1) = cand_n(i)
116 cand_en(iwpene+1) = cand_e(i)
117 ifpenn(iwpene+1) = ifpen(i)
118 iwpene=iwpene+1
119 ENDIF
120 100 CONTINUE
121 IF (jwarn /= 0) WRITE(iout,'(A)')'REDUCE INITIAL GAP'
122C
123 1000 FORMAT(2x,'** INITIAL PENETRATION =',1pg20.13)
124 RETURN
125 END
subroutine i23pwr3(itab, inacti, cand_e, cand_n, stfn, x, i_stok, nsv, iwpene, pene, noint, nty, gap_s, msr, irect, gapmin, gapmax, fpenmax, nsn, itag, cand_en, cand_nn, cand_p, stf, ifpen, ifpenn, gapv)
Definition i23pwr3.F:37