<html>
<head>
</head>
<body class='hmmessage'><div dir='ltr'>

<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style>
<div dir="ltr">Hi all,<br><br>I need to read a Geotiff (DEM) file in one of my fortran 
programs. GDAL has been extremely useful so far, I managed to open and 
read the file and this all seems to go well. However, when I try to get 
information on the file, I run into problems. I know that 
GDALExtractRPCInfo expects a C pointer as its first input argument, but 
I'm a bit lost on how to define such a pointer in fortran (I'm 
embarrassed to admit, but I have never used C before). I had a look at 
the fortranc functions, but could only find functions to define 
c_ptr_ptr types, which didn't solve the problem.<br><br>I assume there 
is a very basic solution to this, but after half a day of browsing the 
web, I'm still stuck. Your help would be very much appreciated. My code 
is below.<br><br>PROGRAM DEM_test<br>USE,INTRINSIC :: iso_c_binding<br>USE fortranc<br>USE gdal<br><br>IMPLICIT none<br>character*200 :: infile<br>character(kind=c_char), target:: c_infile<br>TYPE(GDALRPCInfo) :: info<br>TYPE(gdaldataseth) :: ds<br>TYPE(gdalrasterbandh) :: band<br>TYPE(c_ptr) ptr1<br><br>INTEGER(kind=c_int) :: i2,j2,ierr,nraster<br>REAL,ALLOCATABLE :: z(:,:)<br><br> CALL gdalallregister()<br><br> infile='/windows/C/Users/bertw/Desktop/Data/DEMS/Canada/aster_gdem_50m_ncaa.tif'//CHAR(0)<br><br><br> ds = gdalopen(TRIM(infile)//CHAR(0), GA_ReadOnly)<br> IF (.NOT.gdalassociated(ds)) THEN<br>   PRINT*,'Error opening dataset on file ',TRIM(infile)<br>   STOP 1<br> ENDIF<br><br> i2=gdalgetrasterxsize(ds)<br> j2=gdalgetrasterysize(ds)<br> nraster=gdalgetrastercount(ds)<br> allocate(z(i2,j2))<br><br> band = gdalgetrasterband(ds, 1)<br> ierr = gdalrasterio_f(band, GF_Read, 0, 0, z)<br> write(6,*) 'ok' !<---- runs fine up to here<br><br> c_infile=infile <br> write(6,*) c_infile  ! <--- part of the problem seems to be that only  the first character is copied to c_infile<br> ptr1=c_loc(c_infile)<br> ierr=GDALExtractRPCInfo( ptr1,info)<br> write(6,*) info</div>
                                          </div></body>
</html>