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

Go to the source code of this file.

Functions/Subroutines

subroutine orthrg (vect, mas, nddl, nb_modes)
subroutine orthsr (vects, vectr, mas, nddl, nms, nmr)
subroutine orthst (vects, mas, nddl, nms, nmsf, tole)
program __ortho_normalization_f__
subroutine wsum (v1, v2, a1, a2, nddl)

Function/Subroutine Documentation

◆ __ortho_normalization_f__()

program __ortho_normalization_f__

Definition at line 186 of file ortho_normalization.F.

◆ orthrg()

subroutine orthrg ( vect,
mas,
integer nddl,
integer nb_modes )

Definition at line 31 of file ortho_normalization.F.

32C-----------------------------------------------
33C I m p l i c i t T y p e s
34C-----------------------------------------------
35#include "implicit_f.inc"
36C-----------------------------------------------
37C D u m m y A r g u m e n t s
38C-----------------------------------------------
39 INTEGER NDDL, NB_MODES
41 . vect(nddl,*), mas(nddl,nddl)
42C-----------------------------------------------
43C L o c a l V a r i a b l e s
44C-----------------------------------------------
45 INTEGER I, II
47 . vt(nddl), s, ms, uns
48C
50 . prscal
51 EXTERNAL prscal
52C
53 DO i=1,nddl
54 vt(i)=zero
55 ENDDO
56 DO i=1,nb_modes
57 CALL wsum(vt, vect(1,i), zero, one, nddl)
58 DO ii=1,i-1
59 s=prscal(vt, vect(1,ii), nddl, mas)
60 ms=-s
61 CALL wsum(vect(1,i), vect(1,ii), one, ms, nddl)
62 ENDDO
63 s=prscal(vect(1,i), vect(1,i), nddl, mas)
64 uns=one/sqrt(s)
65 CALL wsum(vect(1,i), vt, uns, zero, nddl)
66 ENDDO
67C
68 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine wsum(v1, v2, a1, a2, nddl)

◆ orthsr()

subroutine orthsr ( vects,
vectr,
mas,
integer nddl,
integer nms,
integer nmr )

Definition at line 79 of file ortho_normalization.F.

80C-----------------------------------------------
81C I m p l i c i t T y p e s
82C-----------------------------------------------
83#include "implicit_f.inc"
84C-----------------------------------------------
85C D u m m y A r g u m e n t s
86C-----------------------------------------------
87 INTEGER NDDL, NMS, NMR
89 . vects(nddl,*), vectr(nddl,*), mas(nddl,nddl)
90C-----------------------------------------------
91C L o c a l V a r i a b l e s
92C-----------------------------------------------
93 INTEGER I, II
95 . vt(nddl), s, ms
96C
97 my_real
98 . prscal
99 EXTERNAL prscal
100C
101 DO i=1,nddl
102 vt(i)=zero
103 ENDDO
104 DO i=1,nms
105 CALL wsum(vt, vects(1,i), zero, one, nddl)
106 DO ii=1,nmr
107 s=prscal(vt, vectr(1,ii), nddl, mas)
108 ms=-s
109 CALL wsum(vects(1,i), vectr(1,ii), one, ms, nddl)
110 ENDDO
111 ENDDO
112C
113 RETURN

◆ orthst()

subroutine orthst ( vects,
mas,
integer nddl,
integer nms,
integer nmsf,
tole )

Definition at line 124 of file ortho_normalization.F.

125C-----------------------------------------------
126C I m p l i c i t T y p e s
127C-----------------------------------------------
128#include "implicit_f.inc"
129C-----------------------------------------------
130C D u m m y A r g u m e n t s
131C-----------------------------------------------
132 INTEGER NDDL, NMS, NMSF
133 my_real
134 . vects(nddl,*), mas(nddl,nddl), tole
135C-----------------------------------------------
136C L o c a l V a r i a b l e s
137C-----------------------------------------------
138 INTEGER I, II
139 my_real
140 . s, ms, norm, unsn, ref, vt(nddl)
141C
142 my_real
143 . prscal,maxi
144C-----------------------------------------------
145 EXTERNAL prscal
146C-----------------------------------------------
147C
148 DO i=1,nddl
149 vt(i)=zero
150 ENDDO
151
152 maxi = zero
153 DO i=1,nms
154 norm=prscal(vects(1,i), vects(1,i), nddl, mas)
155 IF (sqrt(norm)>maxi) maxi = max(maxi,sqrt(norm))
156 ENDDO
157 ref = maxi
158 nmsf=0
159C
160 DO i=1,nms
161C
162 CALL wsum(vt, vects(1,i), zero, one, nddl)
163 DO ii=1,nmsf
164 s=prscal(vt, vects(1,ii), nddl, mas)
165 ms=-s
166 CALL wsum(vects(1,i), vects(1,ii), one, ms, nddl)
167 ENDDO
168 norm=prscal(vects(1,i), vects(1,i), nddl, mas)
169 IF (sqrt(norm)>tole*ref) THEN
170 nmsf=nmsf+1
171 unsn=one/sqrt(norm)
172 CALL wsum(vects(1,nmsf), vects(1,i), zero, unsn, nddl)
173 ENDIF
174 ENDDO
175C
176 RETURN
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
#define max(a, b)
Definition macros.h:21

◆ wsum()

subroutine wsum ( v1,
v2,
a1,
a2,
integer nddl )

Definition at line 222 of file ortho_normalization.F.

223C-----------------------------------------------
224C I m p l i c i t T y p e s
225C-----------------------------------------------
226#include "implicit_f.inc"
227C-----------------------------------------------
228C D u m m y A r g u m e n t s
229C-----------------------------------------------
230 INTEGER NDDL
231 my_real
232 . v1(*), v2(*), a1, a2
233C-----------------------------------------------
234C L o c a l V a r i a b l e s
235C-----------------------------------------------
236 INTEGER I
237C
238 DO i=1,nddl
239 v1(i)=a1*v1(i)+a2*v2(i)
240 ENDDO
241C
242 RETURN