Bonjour à tous,

J'ai un prog fortran tout ce qu'il y a des plus classiques. Dans le but d'afficher l'adresse d'une variable (pour vérifier l'alignement correct d'un vecteur) je me suis interessé à "c_loc" et à "loc":

Si je fais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
IF(iand(loc(bw(1)),3) /= 0)write(*,*) "bw not aligned"
mon prog compile sans problème.

Par contre si je tente:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
IF(iand(c_loc(bw(1)),3) /= 0)write(*,*) "bw not aligned"
avec en haut;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
use, intrinsic :: ISO_C_binding
mon programme ne compile plus et me sort:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
The data types of the argument(s) are invalid.   [IAND]
      IF(iand(c_loc(bw(1)),3) /= 0)write(*,*) "bw not aligned"
--------------^
 
This binary operation is invalid for this data type.   [IAND]
      IF(iand(c_loc(bw(1)),3) /= 0)write(*,*) "bw not aligned"
---------^
bw est un tableau de REAL(8).
Quelqu'un peut m'expliquer ce que le compilateur (ifort) n'aime pas ? et comment y remédier ?

Merci d'avance!