OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
freiniv.F File Reference
#include "implicit_f.inc"
#include "units_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine freiniv (ikad, key0, kiniv, niniv)

Function/Subroutine Documentation

◆ freiniv()

subroutine freiniv ( integer, dimension(0:*) ikad,
character, dimension(*) key0,
integer kiniv,
integer niniv )

Definition at line 36 of file freiniv.F.

37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE message_mod
42C-----------------------------------------------
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49#include "units_c.inc"
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 INTEGER IKAD(0:*),KINIV,NINIV
54 CHARACTER KEY0(*)*5
55C-----------------------------------------------
56C E x t e r n a l F u n c t i o n s
57C-----------------------------------------------
58 INTEGER NVAR
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER I,J,M,N,NBC,K,K3,IV1(40),IKEY,JJ,IFM,IOS,IGN
63 my_real v,vtx,vty,vtz
64 CHARACTER KEY2*5, KEY3*5
65 CHARACTER(LEN=NCHARLINE100)::CARTE
66C-----------------------------------------------
67 k=0
68 ios = 0
69 ikey=kiniv
70 m = 0
71 DO n=1,niniv
72 READ(iusc1,rec=ikad(ikey)+k,fmt='(7X,A,1X,A,1X,I5,25X,I10)',
73 . err=9990)key2,key3,k3,nbc
74 k=k+1
75 IF (key2=='TRA ') THEN
76 m=1
77 IF(key3(1:1)=='X') THEN
78 jj=1
79 ELSEIF(key3(1:1)=='Y') THEN
80 jj=2
81 ELSEIF(key3(1:1)=='Z') THEN
82 jj=3
83 ELSE
84 CALL errmsg(key2)
85 ENDIF
86 ELSEIF (key2=='ROT ') THEN
87 m=1
88 IF(key3(1:1)=='X') THEN
89 jj=4
90 ELSEIF(key3(1:1)=='Y') THEN
91 jj=5
92 ELSEIF(key3(1:1)=='Z') THEN
93 jj=6
94 ELSE
95 CALL errmsg(key2)
96 ENDIF
97 ELSEIF (key2=='AXIS ') THEN
98 m=2
99 IF(key3(1:1)=='X') THEN
100 jj=-1
101 ELSEIF(key3(1:1)=='Y') THEN
102 jj=-2
103 ELSEIF(key3(1:1)=='Z') THEN
104 jj=-3
105 ELSE
106 CALL errmsg(key2)
107 ENDIF
108 ELSE
109 CALL errmsg(key2)
110 ENDIF
111C
112 IF (jj < 0) THEN
113c first line
114 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
115 k=k+1
116 READ(iusc2,*,err=9990,END=9990) ifm
117c second line
118 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
119 k=k+1
120 READ(iusc2,*,err=9990,END=9990) VTX, VTY, VTZ, v
121 ELSE
122 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
123 k=k+1
124 READ(iusc2,*,iostat=ios) v
125 ENDIF
126C
127 IF(nbc<=m .OR. ios /= 0 .OR.(k3==2.AND.nbc/=(m+1))) THEN
128 CALL ancmsg(msgid=73,anmode=aninfo,c1=key0(ikey))
129 CALL arret(2)
130 END IF
131C------
132 IF (k3==2) THEN
133 READ(iusc1,rec=ikad(ikey)+k,fmt='(A)',err=9990)carte
134 k=k+1
135 READ(carte,fmt='(I10)') ign
136 WRITE(iin,'(3I10,1PG20.13)')-ign,ign,jj,v
137 IF(jj < 0) THEN
138 WRITE(iin,'(1P3G20.13,I10)')vtx,vty,vtz,ifm
139 ENDIF
140 ELSE
141 DO i=1,nbc-m
142 READ(iusc1,rec=ikad(ikey)+k,fmt='(A)',err=9990)carte
143 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
144 k=k+1
145 READ(iusc2,*,err=9990,END=9990)(IV1(J),J=1,NVAR(CARTE))
146 DO j=1,nvar(carte),k3+1
147 WRITE(iin,'(3I10,1PG20.13)')iv1(j),iv1(j+k3),jj,v
148 IF(jj < 0) THEN
149 WRITE(iin,'(1P3G20.13,I10)')vtx,vty,vtz,ifm
150 ENDIF
151 ENDDO
152 ENDDO
153 END IF
154 ENDDO
155C
156 RETURN
157C
158 9990 CONTINUE
159 CALL ancmsg(msgid=73,anmode=aninfo,
160 . c1=key0(ikey))
161 CALL arret(0)
#define my_real
Definition cppsort.cpp:32
subroutine errmsg(key)
Definition errmsg.F:40
integer, parameter ncharline100
integer function nvar(text)
Definition nvar.F:32
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:889
subroutine arret(nn)
Definition arret.F:87
subroutine wriusc2(irec, nbc, key0)
Definition wriusc2.F:60