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:
mon prog compile sans problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 IF(iand(loc(bw(1)),3) /= 0)write(*,*) "bw not aligned"
Par contre si je tente:
avec en haut;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 IF(iand(c_loc(bw(1)),3) /= 0)write(*,*) "bw not aligned"
mon programme ne compile plus et me sort:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 use, intrinsic :: ISO_C_binding
bw est un tableau de REAL(8).
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" ---------^
Quelqu'un peut m'expliquer ce que le compilateur (ifort) n'aime pas ? et comment y remédier ?
Merci d'avance!
Partager