Je le FORTRAN suivantLEN_TRIM de FORTRAN se comporte-t-il différemment avec les paramètres transmis?
SUBROUTINE SETPATHS(INPUT)
!DEC$ ATTRIBUTES DLLEXPORT::SetPaths
CHARACTER*20 INPUT
CHARACTER*20 DIRECTORY
DIRECTORY = 'ABCDEFG'
WRITE(6, *) 'INPUT LEN_TRIM = ', LEN_TRIM(INPUT)
WRITE(6, *) 'DIRECTORYLEN_TRIM = ', LEN_TRIM(DIRECTORY)
END SUBROUTINE
Et j'appelle la fonction de C#, en passant 'ABCDEFG'.
Lorsque je définis un point d'arrêt sur mon débogueur, INPUT et DIRECTORY ont exactement les mêmes caractères. Les deux ont 'ABCDEFG' suivi du même nombre d'espaces de fin.
Cependant, les résultats du programme
INPUT LEN_TRIM = 20
DIRECTORYLEN_TRIM = 7
Est-ce un comportement correct? Si les deux chaînes ont les mêmes valeurs, pourquoi LEN_TRIM donne-t-il des résultats différents?
Mise à jour: J'ai trouvé ce problème documenté (bien que ce ne soit pas mon compilateur Intel 8.1). http://support.microsoft.com/kb/89131
complètement irréalisé, mais cela vous dérangerait-il si je vous demande pourquoi vous appelez une fonction dans FORTRAN de C#? –
Le FORTRAN fait le calcul du nombre. C# est ma langue la plus productive pour toute la plomberie. – Larsenal
@Mitch: malheureusement, vous ne pouvez pas battre Lapack. –