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

Go to the source code of this file.

Functions/Subroutines

subroutine compress_c_nnz (array, len)
subroutine compress_i_nnz (array, len)
subroutine compress_r_nnz (array, len)

Function/Subroutine Documentation

◆ compress_c_nnz()

subroutine compress_c_nnz ( integer, dimension(len), intent(in) array,
integer, intent(in) len )

Definition at line 28 of file compress_nnz.F.

29 IMPLICIT NONE
30C---------------------------------------------
31C Arguments
32C---------------------------------------------
33 INTEGER, INTENT(IN) :: LEN
34 INTEGER, INTENT(IN) :: ARRAY(LEN)
35C INTEGER, INTENT(INOUT) :: COMPR(*)
36C---------------------------------------------
37C Local Variables
38C---------------------------------------------
39 INTEGER I,J,IBEGIN, NNZ
40 LOGICAL continue_loop
41
42
43 ibegin = 1
44 j = 1
45 DO WHILE (ibegin <= len)
46 i = ibegin
47 nnz = 0
48 continue_loop = (array(i) /= ichar(' '))
49 DO WHILE(continue_loop)
50 IF(i <= len) THEN
51 IF(array(i) /= ichar(' ')) THEN
52 continue_loop = .true.
53 nnz = nnz + 1
54 i = i + 1
55 ELSE
56 continue_loop = .false.
57 ENDIF
58 ELSE
59 continue_loop = .false.
60 ENDIF
61 ENDDO
62 IF(nnz > 0) THEN
63C COMPR(J) = IBEGIN
64C COMPR(J+1) = NNZ
65 CALL write_i_c(ibegin,1)
66 CALL write_i_c(nnz,1)
67 j = j + 2
68 CALL write_i_c(array(ibegin:ibegin+nnz-1),nnz)
69 j = j + nnz
70 ENDIF
71 ibegin = i + 1
72 ENDDO
73C COMPR(J) = -1
74 i = -1
75 CALL write_i_c(i,1)
76C WRITE(6,*) LEN,"compressed into ",J, dble(J)/dble(LEN)
void write_i_c(int *w, int *len)

◆ compress_i_nnz()

subroutine compress_i_nnz ( integer, dimension(len), intent(in) array,
integer, intent(in) len )

Definition at line 90 of file compress_nnz.F.

91 IMPLICIT NONE
92C---------------------------------------------
93C Arguments
94C---------------------------------------------
95 INTEGER, INTENT(IN) :: LEN
96 INTEGER, INTENT(IN) :: ARRAY(LEN)
97C INTEGER, INTENT(INOUT) :: COMPR(*)
98C---------------------------------------------
99C Local Variables
100C---------------------------------------------
101 INTEGER I,J,IBEGIN, NNZ
102 LOGICAL continue_loop
103
104 ibegin = 1
105 j = 1
106 DO WHILE (ibegin <= len)
107 i = ibegin
108 nnz = 0
109 continue_loop = (array(i) /= 0)
110 DO WHILE(continue_loop)
111 IF(i <= len) THEN
112 IF(array(i) /= 0) THEN
113 continue_loop = .true.
114 nnz = nnz + 1
115 i = i + 1
116 ELSE
117 continue_loop = .false.
118 ENDIF
119 ELSE
120 continue_loop = .false.
121 ENDIF
122 ENDDO
123 IF(nnz > 0) THEN
124C COMPR(J) = IBEGIN
125C COMPR(J+1) = NNZ
126 CALL write_i_c(ibegin,1)
127 CALL write_i_c(nnz,1)
128 j = j + 2
129 CALL write_i_c(array(ibegin:ibegin+nnz-1),nnz)
130 j = j + nnz
131 ENDIF
132 ibegin = i + 1
133 ENDDO
134C COMPR(J) = -1
135 i = -1
136 CALL write_i_c(i,1)
137C WRITE(6,*) LEN,"I compressed into ",J, dble(J)/dble(LEN)

◆ compress_r_nnz()

subroutine compress_r_nnz ( dimension(len), intent(in) array,
integer, intent(in) len )

Definition at line 153 of file compress_nnz.F.

154#include "implicit_f.inc"
155C---------------------------------------------
156C Arguments
157C---------------------------------------------
158 INTEGER, INTENT(IN) :: LEN
159 my_real , INTENT(IN) :: array(len)
160C INTEGER, INTENT(INOUT) :: COMPR(*)
161C---------------------------------------------
162C Local Variables
163C---------------------------------------------
164 INTEGER I,J,IBEGIN, NNZ
165 LOGICAL continue_loop
166
167 ibegin = 1
168 j = 1
169 DO WHILE (ibegin <= len)
170 i = ibegin
171 nnz = 0
172 continue_loop = (array(i) /= 0)
173 DO WHILE(continue_loop)
174 IF(i <= len) THEN
175 IF(array(i) /= 0) THEN
176 continue_loop = .true.
177 nnz = nnz + 1
178 i = i + 1
179 ELSE
180 continue_loop = .false.
181 ENDIF
182 ELSE
183 continue_loop = .false.
184 ENDIF
185 ENDDO
186 IF(nnz > 0) THEN
187C COMPR(J) = IBEGIN
188C COMPR(J+1) = NNZ
189 CALL write_i_c(ibegin,1)
190 CALL write_i_c(nnz,1)
191 j = j + 2
192 CALL write_db(array(ibegin:ibegin+nnz-1),nnz)
193 j = j + nnz
194 ENDIF
195 ibegin = i + 1
196 ENDDO
197C COMPR(J) = -1
198 i = -1
199 CALL write_i_c(i,1)
200C WRITE(6,*) LEN,"R compressed into ",J, dble(J)/dble(LEN)
#define my_real
Definition cppsort.cpp:32
subroutine write_db(a, n)
Definition write_db.F:140