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 KEYA*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 wciusc2(irec, nbc, n, key0)
Definition wciusc2.F:38