Bonjour,
Alors voici mon problème. Je définis une interface pour une fonction à l'intérieur d'un module ainsi:
Cette fonction transforme une liste de 7 ou ben 16 nombre en une matrice 4x4. Bien sur les instructions ne sont pas les même selon la taille de la liste, j'ai donc opté pour cette solution d'une interface avec 2 fonctions à l'intérieur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 module utils use blablabla1 use blablabla2 implicit none contains [plusieurs fonctions et sous-routines] interface function convert2matrX(tab) real,dimension(:,:,:,:,16):: tab real,dimension(:,:,:,:,4,4):: conv_scat [... instruction 1 ...] end function convert2matrX function convert2matrX(tab) real,dimension(:,:,7):: tab real,dimension(:,:,4,4):: conv_ext [...instructions 2...] end function convert2matrX end interface
Cependant, il semblerait que g95 n'aime pas beaucoup car j'ai le droit à:
Pourquoi ce problème? L,interface est-elle mal déclarée? Me conseillez-vous une autre solution (par exemple un case dans la fonction) qui serait plus rapide à l'exécution (car cette fonction risque d'être utilisée de nombreuses fois) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 In file utils.f90:573 interface 1 Error: Unexpected INTERFACE statement in CONTAINS section at (1) In file utils.f90:579 real,dimension(:,:,:,:,16):: tab 1 Error: Bad specification for deferred shape array at (1) In file utils.f90:580 real,dimension(:,:,:,:,4,4):: conv_scat 1
merci beaucoup pour votre précieuse aide![]()
Partager