Bonjour,

Je cherche à adapter à Fortran une bibliothèque que j'ai écrite en C.
J'ai le problème suivant : je dois adapter la fonction suivante

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
int my_write(const char* name, int dimensions, 
                    uint64_t* sizes, void* data)
cette fonction permet d'écrire dans un fichier un tableau caractérisé par un nom, un nombre de dimensions, la taille suivant chaque dimension (sizes est supposé être un tableau ayant autant d'éléments qu'il y a de dimensions), data est le pointeur sur les données.

Un exemple d'utilisation en C :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
char name[] = "mytab";
int data[2][2] = {{1,2},{3,4}};
uint64_t size[] = {2*sizeof(int),2*sizeof(int)};
 
my_write(name,2,size,data);
Je sais déjà que pour adapter une fonction prenant en paramètre une chaîne de caractères, il faut ajouter en argument la taille de cette chaîne, à la fin, mais pour les tableaux (notamment pour sizes) je ne sais pas comment faire...

Voici l'équivalent Fortran que j'aimerai être capable de faire :
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
 
integer*8, dimension(2) sizes
integer, dimension(2,2) data
character name*32
integer ierr
 
name = "mytab"
 
data(1,1) = 1
data(1,2) = 2
data(2,1) = 3
data(2,2) = 4
 
sizes(1) = 4
sizes(2) = 4
 
call my_write(name,2,sizes,data,ierr)
Comment faire ?