| 1 | C$Id: testMemSizef.f 466 2005-10-03 10:37:50Z vmp $
|
|---|
| 2 | program testmemsize
|
|---|
| 3 | external countsetbits
|
|---|
| 4 | integer countsetbits
|
|---|
| 5 | integer i, j, ti(10), ci0(10), ci1(10)
|
|---|
| 6 | integer*8 i8, ti8(10), ci80(10), ci81(10)
|
|---|
| 7 | real r, tr(10), cr0(10), cr1(10)
|
|---|
| 8 | real*4 r4, tr4(10), cr40(10), cr41(10)
|
|---|
| 9 | real*8 r8, tr8(10), cr80(10), cr81(10)
|
|---|
| 10 | c real*16 r16, tr16(10), cr160(10), cr161(10)
|
|---|
| 11 | double precision d, td(10), cd0(10), cd1(10)
|
|---|
| 12 | complex cx, tcx(10), ccx0(10), ccx1(10)
|
|---|
| 13 | complex*8 cx8, tcx8(10), ccx80(10), ccx81(10)
|
|---|
| 14 | complex*16 cx16, tcx16(10), ccx160(10), ccx161(10)
|
|---|
| 15 | double complex cxd, tcxd(10), ccxd0(10), ccxd1(10)
|
|---|
| 16 | logical l, tl(10), cl0(10), cl1(10)
|
|---|
| 17 | character c, tc(10), cc0(10), cc1(10)
|
|---|
| 18 | c
|
|---|
| 19 | integer tci0(10000)
|
|---|
| 20 | common /cbuf0/ tci0
|
|---|
| 21 | equivalence (tci0(1),ci0(1))
|
|---|
| 22 | equivalence (tci0(1),ci80(1))
|
|---|
| 23 | equivalence (tci0(1),cr0(1))
|
|---|
| 24 | equivalence (tci0(1),cr40(1))
|
|---|
| 25 | equivalence (tci0(1),cr80(1))
|
|---|
| 26 | c equivalence (tci0(1),cr160(1))
|
|---|
| 27 | equivalence (tci0(1),cd0(1))
|
|---|
| 28 | equivalence (tci0(1),ccx0(1))
|
|---|
| 29 | equivalence (tci0(1),ccx80(1))
|
|---|
| 30 | equivalence (tci0(1),ccx160(1))
|
|---|
| 31 | equivalence (tci0(1),ccxd0(1))
|
|---|
| 32 | equivalence (tci0(1),cl0(1))
|
|---|
| 33 | equivalence (tci0(1),cc0(1))
|
|---|
| 34 | c
|
|---|
| 35 | integer tci1(10000)
|
|---|
| 36 | common /cbuf1/ tci1
|
|---|
| 37 | equivalence (tci1(1),ci1(1))
|
|---|
| 38 | equivalence (tci1(1),ci81(1))
|
|---|
| 39 | equivalence (tci1(1),cr1(1))
|
|---|
| 40 | equivalence (tci1(1),cr41(1))
|
|---|
| 41 | equivalence (tci1(1),cr81(1))
|
|---|
| 42 | c equivalence (tci1(1),cr161(1))
|
|---|
| 43 | equivalence (tci1(1),cd1(1))
|
|---|
| 44 | equivalence (tci1(1),ccx1(1))
|
|---|
| 45 | equivalence (tci1(1),ccx81(1))
|
|---|
| 46 | equivalence (tci1(1),ccx161(1))
|
|---|
| 47 | equivalence (tci1(1),ccxd1(1))
|
|---|
| 48 | equivalence (tci1(1),cl1(1))
|
|---|
| 49 | equivalence (tci1(1),cc1(1))
|
|---|
| 50 | c
|
|---|
| 51 | integer nb
|
|---|
| 52 | c
|
|---|
| 53 | do i = 1,10
|
|---|
| 54 | ti(i) = (i-1)*i*i*i*i*i*i*i*i*i
|
|---|
| 55 | ti8(i) = (i-1)*i*i*i*i*i*i*i*i*i
|
|---|
| 56 | tr(i) = (i-1)*i*exp(2.0*i+0.001)
|
|---|
| 57 | tr4(i) = (i-1)*i*exp(2.0*i+0.001)
|
|---|
| 58 | tr8(i) = (i-1)*i*exp(2.0*i+0.001)
|
|---|
| 59 | c tr16(i) = (i-1)*i*exp(2.0*i+0.001)
|
|---|
| 60 | td(i) = (i-1)*i*exp(2.d0*i+1.d-3)
|
|---|
| 61 | tcx(i) = cmplx(tr(i),tr(i)+12.3)
|
|---|
| 62 | tcx8(i) = cmplx(tr8(i),tr(i)+12.3)
|
|---|
| 63 | tcx16(i) = cmplx(tr8(i),tr(i)+12.3)
|
|---|
| 64 | tcxd(i) = cmplx(td(i),td(i)+12.3d0)
|
|---|
| 65 | tl(i) = (((i/3)*3).eq.i)
|
|---|
| 66 | enddo
|
|---|
| 67 | tc(1) = 'a'
|
|---|
| 68 | tc(2) = 'b'
|
|---|
| 69 | tc(3) = 'c'
|
|---|
| 70 | tc(4) = 'd'
|
|---|
| 71 | tc(5) = 'e'
|
|---|
| 72 | tc(6) = 'f'
|
|---|
| 73 | tc(7) = 'g'
|
|---|
| 74 | tc(8) = 'h'
|
|---|
| 75 | tc(9) = 'i'
|
|---|
| 76 | tc(10) = 'j'
|
|---|
| 77 |
|
|---|
| 78 | i = 12345
|
|---|
| 79 | i8 = 12345
|
|---|
| 80 | r = sqrt(12345.0)
|
|---|
| 81 | r4 = sqrt(12345.0)
|
|---|
| 82 | r8 = sqrt(12345.0)
|
|---|
| 83 | c r16 = sqrt(12345.0)
|
|---|
| 84 | d = sqrt(12345.d0)
|
|---|
| 85 | cx = cmplx(-12.34,56.78)
|
|---|
| 86 | cx8 = cmplx(-12.34,56.78)
|
|---|
| 87 | cx16 = cmplx(-12.34,56.78)
|
|---|
| 88 | cxd = cmplx(-12.34d0,56.78d0)
|
|---|
| 89 | l = .true.
|
|---|
| 90 | c = 'z'
|
|---|
| 91 | c
|
|---|
| 92 | call allzero(tci0(1))
|
|---|
| 93 | call allones(tci1(1))
|
|---|
| 94 | c call displaybits(tci0(1), 3)
|
|---|
| 95 | c call displaybits(tci1(1), 3)
|
|---|
| 96 | print *, ' '
|
|---|
| 97 | c
|
|---|
| 98 | call allzero(tci0(1))
|
|---|
| 99 | call allones(tci1(1))
|
|---|
| 100 | do j=1,8
|
|---|
| 101 | ci0(j) = ti(j+2)
|
|---|
| 102 | ci1(j) = ti(j+2)
|
|---|
| 103 | enddo
|
|---|
| 104 | nb = countsetbits(tci0(1), tci1(1), 8, 100)
|
|---|
| 105 | print 100, 'INTEGER:', nb, ' bytes'
|
|---|
| 106 | c
|
|---|
| 107 | call allzero(tci0(1))
|
|---|
| 108 | call allones(tci1(1))
|
|---|
| 109 | do j=1,8
|
|---|
| 110 | ci80(j) = ti8(j+2)
|
|---|
| 111 | ci81(j) = ti8(j+2)
|
|---|
| 112 | enddo
|
|---|
| 113 | nb = countsetbits(tci0(1), tci1(1), 8, 100)
|
|---|
| 114 | print 100, 'INTEGER*8:', nb, ' bytes'
|
|---|
| 115 | c
|
|---|
| 116 | call allzero(tci0(1))
|
|---|
| 117 | call allones(tci1(1))
|
|---|
| 118 | do j=1,8
|
|---|
| 119 | cr0(j) = tr(j+2)
|
|---|
| 120 | cr1(j) = tr(j+2)
|
|---|
| 121 | enddo
|
|---|
| 122 | nb = countsetbits(tci0(1), tci1(1), 8, 100)
|
|---|
| 123 | print 100, 'REAL:', nb, ' bytes'
|
|---|
| 124 | c
|
|---|
| 125 | call allzero(tci0(1))
|
|---|
| 126 | call allones(tci1(1))
|
|---|
| 127 | do j=1,8
|
|---|
| 128 | cr40(j) = tr4(j+2)
|
|---|
| 129 | cr41(j) = tr4(j+2)
|
|---|
| 130 | enddo
|
|---|
| 131 | nb = countsetbits(tci0(1), tci1(1), 8, 100)
|
|---|
| 132 | print 100, 'REAL*4:', nb, ' bytes'
|
|---|
| 133 | c
|
|---|
| 134 | call allzero(tci0(1))
|
|---|
| 135 | call allones(tci1(1))
|
|---|
| 136 | do j=1,8
|
|---|
| 137 | cr80(j) = tr8(j+2)
|
|---|
| 138 | cr81(j) = tr8(j+2)
|
|---|
| 139 | enddo
|
|---|
| 140 | nb = countsetbits(tci0(1), tci1(1), 8, 100)
|
|---|
| 141 | print 100, 'REAL*8:', nb, ' bytes'
|
|---|
| 142 | c
|
|---|
| 143 | call allzero(tci0(1))
|
|---|
| 144 | call allones(tci1(1))
|
|---|
| 145 | do j=1,8
|
|---|
| 146 | cd0(j) = td(j+2)
|
|---|
| 147 | cd1(j) = td(j+2)
|
|---|
| 148 | enddo
|
|---|
| 149 | nb = countsetbits(tci0(1), tci1(1), 8, 100)
|
|---|
| 150 | print 100, 'DOUBLE PRECISION:', nb, ' bytes'
|
|---|
| 151 | c
|
|---|
| 152 | call allzero(tci0(1))
|
|---|
| 153 | call allones(tci1(1))
|
|---|
| 154 | do j=1,8
|
|---|
| 155 | ccx0(j) = tcx(j+2)
|
|---|
| 156 | ccx1(j) = tcx(j+2)
|
|---|
| 157 | enddo
|
|---|
| 158 | nb = countsetbits(tci0(1), tci1(1), 8, 100)
|
|---|
| 159 | print 100, 'COMPLEX:', nb, ' bytes'
|
|---|
| 160 | c
|
|---|
| 161 | call allzero(tci0(1))
|
|---|
| 162 | call allones(tci1(1))
|
|---|
| 163 | do j=1,8
|
|---|
| 164 | ccx80(j) = tcx8(j+2)
|
|---|
| 165 | ccx81(j) = tcx8(j+2)
|
|---|
| 166 | enddo
|
|---|
| 167 | nb = countsetbits(tci0(1), tci1(1), 8, 100)
|
|---|
| 168 | print 100, 'COMPLEX*8:', nb, ' bytes'
|
|---|
| 169 | c
|
|---|
| 170 | call allzero(tci0(1))
|
|---|
| 171 | call allones(tci1(1))
|
|---|
| 172 | do j=1,8
|
|---|
| 173 | ccx160(j) = tcx16(j+2)
|
|---|
| 174 | ccx161(j) = tcx16(j+2)
|
|---|
| 175 | enddo
|
|---|
| 176 | nb = countsetbits(tci0(1), tci1(1), 8, 100)
|
|---|
| 177 | print 100, 'COMPLEX*16:', nb, ' bytes'
|
|---|
| 178 | c
|
|---|
| 179 | call allzero(tci0(1))
|
|---|
| 180 | call allones(tci1(1))
|
|---|
| 181 | do j=1,8
|
|---|
| 182 | ccxd0(j) = tcxd(j+2)
|
|---|
| 183 | ccxd1(j) = tcxd(j+2)
|
|---|
| 184 | enddo
|
|---|
| 185 | nb = countsetbits(tci0(1), tci1(1), 8, 100)
|
|---|
| 186 | print 100, 'DOUBLE COMPLEX:', nb, ' bytes'
|
|---|
| 187 | c
|
|---|
| 188 | call allzero(tci0(1))
|
|---|
| 189 | call allones(tci1(1))
|
|---|
| 190 | do j=1,8
|
|---|
| 191 | cl0(j) = tl(j+2)
|
|---|
| 192 | cl1(j) = tl(j+2)
|
|---|
| 193 | enddo
|
|---|
| 194 | nb = countsetbits(tci0(1), tci1(1), 8, 100)
|
|---|
| 195 | print 100, 'LOGICAL:', nb, ' bytes'
|
|---|
| 196 | c
|
|---|
| 197 | call allzero(tci0(1))
|
|---|
| 198 | call allones(tci1(1))
|
|---|
| 199 | do j=1,8
|
|---|
| 200 | cc0(j) = tc(j+2)
|
|---|
| 201 | cc1(j) = tc(j+2)
|
|---|
| 202 | enddo
|
|---|
| 203 | nb = countsetbits(tci0(1), tci1(1), 8, 100)
|
|---|
| 204 | print 100, 'CHARACTER:', nb, ' bytes'
|
|---|
| 205 | c
|
|---|
| 206 | 100 format(a18,i3,a6)
|
|---|
| 207 | end
|
|---|