OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
frebcs.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!|| frebcs ../engine/source/input/frebcs.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!|| errmsg ../engine/source/input/errmsg.F
31!|| ixyz ../engine/source/input/ixyz.F
32!|| wciusc2 ../engine/source/input/wciusc2.F
33!||--- uses -----------------------------------------------------
34!|| message_mod ../engine/share/message_module/message_mod.F
35!||====================================================================
36 SUBROUTINE frebcs(IKAD,KEY0,KBCS,KBCSR,NBCS1,NBCS2,BCS_SK_FR)
37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE message_mod
41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER IKAD(0:*),
49 . KBCS,KBCSR,NBCS1,NBCS2,BCS_SK_FR(*)
50 CHARACTER KEY0(*)*5
51C-----------------------------------------------
52C C o m m o n B l o c k s
53C-----------------------------------------------
54#include "units_c.inc"
55C-----------------------------------------------
56C E x t e r n a l F u n c t i o n s
57C-----------------------------------------------
58 INTEGER IXYZ
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER I, J, N, NBC, K, KK, NN, NS, K4,IV1(40),IKEY,NBCS
63 CHARACTER *80, KEY2*5, KEY3*5
64C
65 k=0
66 nbcs = 0
67 ikey = kbcs
68 DO nn=1,nbcs1
69 nbcs = nbcs + 1
70 READ(iusc1,rec=ikad(ikey)+k,fmt='(7X,A,1X,A,1X,I5,25X,I10)',
71 . err=9990)key2,key3,k4,nbc
72 IF ( bcs_sk_fr(nbcs)>99999) k4 = bcs_sk_fr(nbcs)
73 k=k+1
74 kk=k
75 ns=0
76 DO i=1,nbc
77 CALL wciusc2(ikad(ikey)+k,1,n,key0(ikey))
78 READ(iusc2,*,err=9990,END=9990)(IV1(J),J=1,N)
79 k=k+1
80 IF(key2=='TRA ')THEN
81 WRITE(iin,'(I10,1X,I3.3,4X,4X,4X,I10)')
82 . (iv1(j),ixyz(key3),k4,j=1,n)
83 ELSEIF(key2=='ROT ')THEN
84 WRITE(iin,'(I10,4X,1X,I3.3,4X,4X,I10)')
85 . (iv1(j),ixyz(key3),k4,j=1,n)
86 ELSEIF(key2=='ALE ')THEN
87 WRITE(iin,'(I10,4X,4X,1X,I3.3,4X,I10)')
88 . (iv1(j),ixyz(key3),k4,j=1,n)
89 ELSEIF(key2=='LAG ')THEN
90 WRITE(iin,'(I10,4X,4X,4X,1X,I3.3,I10)')
91 . (iv1(j),ixyz(key3),k4,j=1,n)
92 ELSE
93 CALL errmsg(key2)
94 ENDIF
95 ENDDO
96 ENDDO
97C
98 k=0
99 ikey=kbcsr
100 DO nn=1,nbcs2
101 READ(iusc1,rec=ikad(ikey)+k,fmt='(7X,A,1X,A,1X,I5,25X,I10)',
102 . err=9990)key2,key3,k4,nbc
103 k=k+1
104 kk=k
105 ns=0
106 DO i=1,nbc
107 CALL wciusc2(ikad(ikey)+k,1,n,key0(ikey))
108 READ(iusc2,*,err=9990,END=9990)(IV1(J),J=1,N)
109 k=k+1
110 IF(key2=='TRA ')THEN
111 WRITE(iin,'(I10,1X,I3.3,4X,4X,4X,I10)')
112 . (iv1(j),2*ixyz(key3),k4,j=1,n)
113 ELSEIF(key2=='ROT ')THEN
114 WRITE(iin,'(I10,4X,1X,I3.3,4X,4X,I10)')
115 . (iv1(j),2*ixyz(key3),k4,j=1,n)
116 ELSEIF(key2=='ALE ')THEN
117 WRITE(iin,'(I10,4X,4X,1X,I3.3,4X,I10)')
118 . (iv1(j),2*ixyz(key3),k4,j=1,n)
119 ELSEIF(key2=='LAG ')THEN
120 WRITE(iin,'(I10,4X,4X,4X,1X,I3.3,I10)')
121 . (iv1(j),2*ixyz(key3),k4,j=1,n)
122 ELSE
123 CALL errmsg(key2)
124 ENDIF
125 ENDDO
126 ENDDO
127C
128 RETURN
129C
130 9990 CONTINUE
131 CALL ancmsg(msgid=73,anmode=aninfo,
132 . c1=key0(ikey))
133 CALL arret(0)
134 END
subroutine errmsg(key)
Definition errmsg.F:40
subroutine frebcs(ikad, key0, kbcs, kbcsr, nbcs1, nbcs2, bcs_sk_fr)
Definition frebcs.F:37
integer function ixyz(chr)
Definition ixyz.F:34
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:895
subroutine arret(nn)
Definition arret.F:86
subroutine wciusc2(irec, nbc, n, key0)
Definition wciusc2.F:38