Fortran

C calling Fortran where an argument is a derived type

I have a Fortran subroutine which I want to call from C.  One of the arguments is a derived type such as:

type :: pprop
  real*8 :: x1
  real*8 :: x2
  real*8 :: x3
  real*8 :: x4
end type pprop

On the C side, what can I map this to?  Will an array work as all the components are of the same type?  Or do I have to map to a struct?

What VS displays when I hover over or click on a variable name

When I click on a variable name, the name is conveniently highlighted. I like this very much and have come to depend on it. But it doesn't always do this. It seems stop suddenly and randomly; for example when I change from one source file to another, or after a debug run. Sometimes it works on some tokens but not others; other times it works on all of them even in the same file. Sometimes I can close VS, fire it up again, and it will be working. But not always.

Feature request: Compiler Version Notes

ifort currently generates comment sections in compiler-generated assembler files (built with "-s") that contain a lot of useful information, such as the compiler version and flags used when compiling; however, since these are comments, they do not find their way into the compiled object files.  Would it be possible to have the compiler mimic gcc's behavior and put this information instead in a ".note" section?  GCC uses ".note.GNU-stack" and places just the compiler version, which alone would be nice, but if there are no restrictions on data length, the compile flags would be nice too.  Or

Cycling block-do-construct with inner block-construct

Hi, I'm wondering if there exists a way (other than branching) for exiting or cycling within a inner block in a do block:

...
do i=1,10
    block
        integer :: k
        ...
        if (...) then
            ...
            cycle !not possible
        end if
        ...
    end block
end do

More general, the question is, if its possible to terminate the execution of a block-construct without using IF/GOTO? I've looked into the standard but I've found no other possibilities...

Use of unlimited polymorphic object and performance question

I'm still learning how to do OO programing and have several doubts.  Although this could be a question better suited for a FORTRAN forum, I want to ask you about the performance of an executable created with polymorphic entities.

The attached code (tes_polymorphism.f90)  works.  It defines a upoly entity called "electron", which can be described (actually, the velocity distribution function) either by Maxwell-Boltzmann or by kappa (non-additive) statistics.

Possible bug in ifort version 14.0.1

Hi,

I have encountered some strange behaviour in the ifort version 14.0.1 by deliberately forcing an overflow of a 32 bit integer on my computer. Here is how to reproduce it

% ifort -v
ifort version 14.0.1

% cat main.f90
program main
  implicit none
  integer i

  i=2**31-10
  do while(.true.)
     i=i+1
     if (i.le.0) then
        exit
     end if
  end do
  print *,'i',i
end program main

% ifort -O0 -std03 -o main main.f90
% ./main
 i -2147483648

Assine o Fortran