OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fredamp.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!|| fredamp ../engine/source/input/fredamp.F
25!||--- called by ------------------------------------------------------
26!|| freform ../engine/source/input/freform.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../engine/source/output/message/message.F
29!|| arret ../engine/source/system/arret.F
30!|| wriusc2 ../engine/source/input/wriusc2.F
31!||--- uses -----------------------------------------------------
32!|| message_mod ../engine/share/message_module/message_mod.F
33!||====================================================================
34 SUBROUTINE fredamp(IKAD,KEY0,KDAMP,NDAMP)
35C-----------------------------------------------
36C M o d u l e s
37C-----------------------------------------------
38 USE message_mod
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 IKAD(0:*),KDAMP,NDAMP
47 CHARACTER KEY0(*)*5
48C-----------------------------------------------
49C C o m m o n B l o c k s
50C-----------------------------------------------
51#include "units_c.inc"
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER K, NN, ID, IKEY, IGR, NBC, KORTH
56 my_real DAMPA, DAMPB
57
58C=======================================================================
59 K=0
60 IKEY = KDAMP
61 IGR = 0
62 IF (NDAMP == 1) THEN
63 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(6X,I10,85X,I10)',ERR=9990)
64 . ID,NBC
65
66.AND. IF (ID/=1NBC==1) THEN
67 KORTH=0
68 K=K+1
69 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
70 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
71 WRITE(IIN,'(I10,1P2G20.13,2I10)') ID,DAMPA,DAMPB,IGR,KORTH
72 ELSEIF(ID==1) THEN
73 IF(NBC==2) THEN
74 K=K+1
75 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
76 READ(IUSC2,*,ERR=9990,END=9990) IGR
77 ENDIF
78 IF(NBC/=6)THEN
79 KORTH=0
80 K=K+1
81 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
82 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
83 WRITE(IIN,'(I10,1P2G20.13,2I10)') ID,DAMPA,DAMPB,IGR,KORTH
84 ELSE
85 KORTH=1
86C dampax, dampbx
87 K=K+1
88 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
89 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
90 WRITE(IIN,'(I10,1P2G20.13,2I10)') ID,DAMPA,DAMPB,IGR,KORTH
91C dampay, dampby
92 K=K+1
93 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
94 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
95 WRITE(IIN,'(1P2G20.13)') DAMPA,DAMPB
96C dampaz, dampbz
97 K=K+1
98 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
99 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
100 WRITE(IIN,'(1P2G20.13)') DAMPA,DAMPB
101C damparx, dampbrx
102 K=K+1
103 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
104 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
105 WRITE(IIN,'(1P2G20.13)') DAMPA,DAMPB
106C dampary, dampbry
107 K=K+1
108 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
109 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
110 WRITE(IIN,'(1P2G20.13)') DAMPA,DAMPB
111C damparz, damprbz
112 K=K+1
113 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
114 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
115 WRITE(IIN,'(1P2G20.13)') DAMPA,DAMPB
116 END IF
117 ELSE
118 GOTO 9990
119 ENDIF
120 ELSE
121 DO NN=1,NDAMP
122 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(6X,I10,85X,I10)',ERR=9990)
123 . ID,NBC
124
125 IF(NBC/=6)THEN
126 KORTH=0
127 K=K+1
128 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
129 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
130 WRITE(IIN,'(I10,1P2G20.13,10X,I10)') ID,DAMPA,DAMPB,KORTH
131 ELSE
132 KORTH=1
133C dampax, dampbx
134 K=K+1
135 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
136 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
137 WRITE(IIN,'(I10,1P2G20.13,10X,I10)') ID,DAMPA,DAMPB,KORTH
138C dampay, dampby
139 K=K+1
140 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
141 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
142 WRITE(IIN,'(1P2G20.13)') DAMPA,DAMPB
143C dampaz, dampbz
144 K=K+1
145 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
146 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
147 WRITE(IIN,'(1P2G20.13)') DAMPA,DAMPB
148C damparx, dampbrx
149 K=K+1
150 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
151 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
152 WRITE(IIN,'(1P2G20.13)') DAMPA,DAMPB
153C dampary, dampbry
154 K=K+1
155 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
156 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
157 WRITE(IIN,'(1P2G20.13)') DAMPA,DAMPB
158C damparz, damprbz
159 K=K+1
160 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
161 READ(IUSC2,*,ERR=9990,END=9990) DAMPA,DAMPB
162 WRITE(IIN,'(1P2G20.13)') DAMPA,DAMPB
163 END IF
164 K=K+1
165 ENDDO
166 ENDIF
167C---
168 RETURN
169 9990 CONTINUE
170 CALL ANCMSG(MSGID=73,ANMODE=ANINFO,
171 . C1=KEY0(IKEY))
172 CALL ARRET(0)
173 END
subroutine fredamp(ikad, key0, kdamp, ndamp)
Definition fredamp.F:35