la définition de chemin pour le fichier en FORTRAN
En bash, je pourrais écrire un script simple comme ci-dessous; pour lire le contenu d'un fichier dans le dossier que je définir le chemin d'accès au fichier à l'aide de la variable d'environnement "fileplace"
#!/bin/bash
fileplace="/home/vijay/data1/process-folder1/"
cat $file/file1.dat
J'aimerais réaliser le même que ci-dessus en FORTRAN 90, en définissant le chemin à l'aide de la variable. Je veux faire comme ça parce que mon dossier emplacement de chemin est long et je voulais éviter d'utiliser & et le symbole + pour les lignes longues en FORTRAN 90.
J'ai essayé d'écrire simple FORTRAN 90 code comme ci-dessous pour les tests.
program test_read
implicit none
open (unit=10, status="old",file="/home/vijay/data1/process-folder1/file1.dat")
read(10,*) junk
write(*,*) junk
stop
end
Si je veux éviter d'utiliser la voie longue (/home/vijay/data1/processus-dossier1/) dans le code FORTRAN.
Est-il possible de réaliser cela? Si oui quelqu'un peut-il aider à corriger ce code FORTRAN? D'apprécier l'aide à l'avance.
Merci
Vijay
OriginalL'auteur Vijay | 2013-04-22
Vous devez vous connecter pour publier un commentaire.
Fortran n'est pas un bon langage pour travailler avec des chaînes, mais cela est encore possible.
Vous avez besoin d'une variable, où vous pouvez stocker le chemin d'accès. Si ce chemin est une constante et déjà connus au moment de la compilation, vous pouvez simplement écrire
Le fichier peut être ouvert avec
Si vous souhaitez modifier le chemin d'accès lors de l'exécution, vous devez définir une longueur appropriée pour
fileplace
et l'ajuster en conséquence, lorsque vous souhaitez l'utiliser:Les fonctions
ADJUSTL()
etTRIM()
déplacer le contenu de la chaîne vers la gauche pour supprimer tous les premiers espaces, puis couper tous fuite des espaces.Sry... j'ai oublié le
PARAMETER
.L'utilisation d'une liste dirigée interne écrire pour définir une variable de caractère avec la valeur d'un caractère constante littérale est inutilement compliquée. Une simple instruction d'affectation serait mieux (cela peut permettre aussi de la référence à ADJUSTL être retiré).
OriginalL'auteur Stefan
Vous pouvez utiliser certains Fortran comme ceci:
Remarque:
//
.Vous devrez déclarer le caractère variable
fileplace
, quelque chose commecharacter(len=:), allocatable :: fileplace
devrait le faire.
Fortran 2003 a introduit la procédure standard
GET_ENVIRONMENT_VARIABLE
qui peut aussi être d'intérêt pour vous si votre compilateur qu'il implémente.OriginalL'auteur High Performance Mark