Re: Reference to derived type element by index?



Hi Gary - thanks for your reply. I think my initial explanation may have been unclear, as this is not the solution to my problem. The problem reduces to the following: I don't know explicitly which variable (I incorrectly referred to this variable as an element previously, hence the confusion) I want to update, so I can't say

circle%radius = <something>

All I have is an index that tells me I need to update the i^th variable within the derived type. So say I need to update circle%z, the index would have value 4. But I know that I can't do

circle%(4) = <something>

but hoped there was some syntax that might allow this procedure? Any help appreciated --Rob

Gary Scott wrote:
Rob Crain wrote:

I have a derived type, e.g.

type circle_datatype
real :: radius
real :: x
real :: y
real :: z
character(len=*) :: circle_label
endtype circle_datatype
type(circle_datatype) :: circle


and want to refer to the individual elements via some indexing scheme, say in this example I want to change the value of circle%radius I would use index #1, or the z-coordinate I would use #4. Is there some method by which this is possible?

I think IDL has a system for this, such that circle.radius can be referenced by circle.(0), but I really need Fortran's horsepower for this code!
type circle_datatype
real :: radius(100)
real :: x(100)
real :: y(100)
real :: z(100)
character(len=256) :: circle_label(100)
endtype circle_datatype
type(circle_datatype) :: circle

circle%radius(1) = <something>


.



Relevant Pages

  • Re: Reference to derived type element by index?
    ... endtype circle_datatype ... type(circle_datatype):: circle ... Support the Original G95 Project: http://www.g95.org ... Support the GNU GFortran Project: http://gcc.gnu.org/fortran/index.html ...
    (comp.lang.fortran)
  • Re: Reference to derived type element by index?
    ... Gary Scott wrote: ... endtype circle_datatype ... type(circle_datatype):: circle ... Support the Original G95 Project: http://www.g95.org ...
    (comp.lang.fortran)
  • Re: Reference to derived type element by index?
    ... type(circle_datatype):: circle ... and want to refer to the individual elements via some indexing scheme, ...
    (comp.lang.fortran)
  • Reference to derived type element by index?
    ... I have a derived type, ... and want to refer to the individual elements via some indexing scheme, say in this example I want to change the value of circle%radius I would use index #1, or the z-coordinate I would use #4. ...
    (comp.lang.fortran)