Patch for glu/fwrapglu.fpp


--- fwrapglu.fpp.org    2005-09-21 10:56:27.000000000 +0200
+++ fwrapglu.fpp        2005-09-17 17:54:11.000000000 +0200
@@ -957,6 +957,7 @@
    module procedure f9xgluunproject
 end interface

+character(len=1) :: tc
 contains

 #ifndef OLDNULLFUNC
@@ -970,8 +971,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fglubegincurve(temp,i)
@@ -983,11 +986,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -1000,8 +1005,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fglubeginsurface(temp,i)
@@ -1013,8 +1020,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fglubegintrim(temp,i)
@@ -1059,7 +1068,8 @@
 integer(kind=gluint), dimension(glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(data%addr(i:i))
+   tc=data%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 i = glcptr_length
 resf9x4glubuild1dmipmaps = f9y4glubuild1dmipmaps(xtarget,component,width, &
@@ -1132,7 +1142,8 @@
 integer(kind=gluint), dimension(glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(data%addr(i:i))
+   tc=data%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 i = glcptr_length
 resf9x4glubuild2dmipmaps = f9y4glubuild2dmipmaps(xtarget,component,width, &
@@ -1174,8 +1185,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(quad%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(quad%addr(2)%addr(i:i))
+   tc=quad%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=quad%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fglucylinder(temp,i,base,top,height,slices,stacks)
@@ -1187,8 +1200,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fgludeletenurbsrenderer(temp,i)
@@ -1201,8 +1216,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(quad%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(quad%addr(2)%addr(i:i))
+   tc=quad%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=quad%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fgludeletequadric(temp,i)
@@ -1215,11 +1232,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -1235,8 +1254,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(quad%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(quad%addr(2)%addr(i:i))
+   tc=quad%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=quad%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fgludisk(temp,i,inner,outer,slices,loops)
@@ -1248,8 +1269,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fgluendcurve(temp,i)
@@ -1261,11 +1284,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -1278,8 +1303,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fgluendsurface(temp,i)
@@ -1291,8 +1318,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fgluendtrim(temp,i)
@@ -1336,8 +1365,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fglugetnurbsproperty(temp,i,property,data)
@@ -1383,11 +1414,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -1403,8 +1436,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fgluloadsamplingmatrices(temp,i,model,perspective,view)
@@ -1551,11 +1586,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -1580,8 +1617,10 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call f9y1glunurbscallback(temp,i,which)
@@ -1607,8 +1646,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fglunurbscallback(temp,i,which,callbackfunc)
@@ -1636,8 +1677,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 if (myglucomparefuncs(glunullfunc,callbackfunc)==1) then
@@ -1664,8 +1707,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fglunurbscurve(temp,i,knotcount,knots,stride,control,order,xtype)
@@ -1679,8 +1724,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fglunurbsproperty(temp,i,property,value)
@@ -1701,8 +1748,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fglunurbssurface(temp,i,sknotcount,sknots,tknotcount,tknots,sstride, &
@@ -1724,8 +1773,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(quad%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(quad%addr(2)%addr(i:i))
+   tc=quad%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=quad%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fglupartialdisk(temp,i,inner,outer,slices,loops,start,sweep)
@@ -1781,8 +1832,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(nurb%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(nurb%addr(2)%addr(i:i))
+   tc=nurb%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=nurb%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fglupwlcurve(temp,i,xcount,data,stride,xtype)
@@ -1806,8 +1859,10 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(quad%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(quad%addr(2)%addr(i:i))
+   tc=quad%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=quad%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call f9y1gluquadriccallback(temp,i,which)
@@ -1833,8 +1888,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(quad%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(quad%addr(2)%addr(i:i))
+   tc=quad%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=quad%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fgluquadriccallback(temp,i,which,callbackfunc)
@@ -1862,8 +1919,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(quad%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(quad%addr(2)%addr(i:i))
+   tc=quad%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=quad%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 if (myglucomparefuncs(glunullfunc,callbackfunc)==1) then
@@ -1885,8 +1944,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(quad%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(quad%addr(2)%addr(i:i))
+   tc=quad%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=quad%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fgluquadricdrawstyle(temp,i,draw)
@@ -1899,8 +1960,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(quad%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(quad%addr(2)%addr(i:i))
+   tc=quad%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=quad%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fgluquadricnormals(temp,i,normal)
@@ -1913,8 +1976,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(quad%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(quad%addr(2)%addr(i:i))
+   tc=quad%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=quad%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fgluquadricorientation(temp,i,orientation)
@@ -1928,8 +1993,10 @@
 integer(kind=glint) :: int_texture
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(quad%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(quad%addr(2)%addr(i:i))
+   tc=quad%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=quad%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 if (glone_byte_logical) then
@@ -2035,10 +2102,12 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(datain%addr(i:i))
+   tc=datain%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do i=1,glcptr_length
-   temp(i+glcptr_length) = ichar(dataout%addr(i:i))
+   tc=dataout%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 #ifdef PURE_FUNCTIONS
@@ -2423,7 +2492,8 @@
 integer(kind=gluint), dimension(glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(datain%addr(i:i))
+   tc=datain%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 i = glcptr_length
 #ifdef PURE_FUNCTIONS
@@ -2462,7 +2532,8 @@
 integer(kind=gluint), dimension(glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(datain%addr(i:i))
+   tc=datain%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 #ifdef PURE_FUNCTIONS
 call f9y41gluscaleimage(format,win,hin,typein,temp,i,wout, &
@@ -2500,7 +2571,8 @@
 integer(kind=gluint), dimension(glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(datain%addr(i:i))
+   tc=datain%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 #ifdef PURE_FUNCTIONS
 call f9y45gluscaleimage(format,win,hin,typein,temp,i,wout, &
@@ -2539,7 +2611,8 @@
 integer(kind=gluint), dimension(glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(datain%addr(i:i))
+   tc=datain%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 #ifdef PURE_FUNCTIONS
 call f9y46gluscaleimage(format,win,hin,typein,temp,i, &
@@ -2839,8 +2912,10 @@
 integer(kind=gluint), dimension(2*glcptr_length) :: temp
 integer(kind=glint) :: i
 do i=1,glcptr_length
-   temp(i) = ichar(quad%addr(1)%addr(i:i))
-   temp(i+glcptr_length) = ichar(quad%addr(2)%addr(i:i))
+   tc=quad%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
+   tc=quad%addr(2)%addr(i:i)
+   temp(i+glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call fglusphere(temp,i,radius,slices,stacks)
@@ -2854,11 +2929,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -2875,11 +2952,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -2893,11 +2972,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -2916,11 +2997,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -2958,11 +3041,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -2997,11 +3082,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3034,11 +3121,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3071,11 +3160,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3108,11 +3199,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3144,11 +3237,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3181,11 +3276,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3220,11 +3317,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3259,11 +3358,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3297,11 +3398,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3335,11 +3438,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3373,11 +3478,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3410,11 +3517,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3448,11 +3557,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3488,11 +3599,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3526,11 +3639,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3564,11 +3679,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3602,11 +3719,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3639,11 +3758,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3677,11 +3798,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3718,11 +3841,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3760,11 +3885,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3796,11 +3923,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3832,11 +3961,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3868,11 +3999,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3904,11 +4037,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3940,11 +4075,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -3976,11 +4113,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4012,11 +4151,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4048,11 +4189,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4084,11 +4227,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4120,11 +4265,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4156,11 +4303,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4192,11 +4341,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4228,11 +4379,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4264,11 +4417,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4300,11 +4455,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4336,11 +4493,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4372,11 +4531,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4408,11 +4569,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4444,11 +4607,13 @@
 if (callbackfunc == glunullfunc) then
 #endif
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4476,11 +4641,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4493,11 +4660,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4511,11 +4680,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4530,11 +4701,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4553,11 +4726,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4572,11 +4747,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4591,15 +4768,18 @@
 integer(kind=gluint), dimension((num_tess_cb+2)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 do i=1,glcptr_length
-   temp(i+(num_tess_cb+1)*glcptr_length) = ichar(vertex_data%addr(i:i))
+   tc=vertex_data%addr(i:i)
+   temp(i+(num_tess_cb+1)*glcptr_length) = ichar(tc)
 end do
 i = glcptr_length
 call f9y4glutessvertex(temp,i,location)
@@ -4613,11 +4793,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4632,11 +4814,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length
@@ -4651,11 +4835,13 @@
 integer(kind=gluint), dimension((num_tess_cb+1)*glcptr_length) :: temp
 integer(kind=glint) :: i,j
 do i=1,glcptr_length
-   temp(i) = ichar(tess%addr(1)%addr(i:i))
+   tc=tess%addr(1)%addr(i:i)
+   temp(i) = ichar(tc)
 end do
 do j=1,num_tess_cb
    do i=1,glcptr_length
-      temp(i+j*glcptr_length) = ichar(tess%addr(j+1)%addr(i:i))
+      tc=tess%addr(j+1)%addr(i:i)
+      temp(i+j*glcptr_length) = ichar(tc)
    end do
 end do
 i = glcptr_length


None: F90glPatch2 (last edited 2008-01-10 19:38:38 by localhost)