Fortran 90 - переменная передачи ввода-вывода в виде пути к файлу

Кажется, это должно быть легко исправить, но после нескольких часов поиска я не могу найти решение.

Я хочу сохранить путь к файлу как символьную переменную, а затем использовать эту переменную в операторе ввода-вывода. Ниже приведен мой код для чтения из файла, определенного «путь к файлу».

character:: filepath
filepath='c:\users\chris\...\data.txt'
open(unit=1,file=filepath,status='old',action='read',form='formatted',iostat=ierror)
    if(ierror.NE.0)then
        print*,'file cannot be opened or does not exist'
        read*,
    endif
    ......

Программа компилируется (компилятор gfortran с использованием среды IDE NetBeans), но при запуске я получаю сообщение об ошибке на экране.

Примечание 1. Когда я помещаю путь к файлу непосредственно в функцию открытия, как показано ниже, он работает нормально.

open(unit=1,file='c:\\Users\\Chris\\...\\data.txt',status='old',action='read',form='formatted',iostat=ierror)

Примечание 2. Я пробовал все варианты прямой/обратной, одинарной/двойной косой черты в переменной пути к файлу, поэтому не думаю, что это проблема. Когда я распечатываю «filepath» на экране в качестве механизма отладки (до функции открытия выше), все возвращается «C». Так что по какой-то причине кажется, что я теряю остальную часть пути к файлу. (Я оставлю свои вопросы о том, какой метод косой черты подходит, пока не изучу его подробнее)

Я ценю любые предложения.

Спасибо, Крис


person ChrisO    schedule 07.11.2011    source источник


Ответы (1)


Вы объявили filepath символьной переменной длины 1. Измените объявление на что-то вроде character(80):: filepath (используйте длину, достаточную, чтобы содержать весь путь).

person eriktous    schedule 07.11.2011
comment
Конечно же. Ошибка новичка на Фортране :) Спасибо за быстрый ответ. - person ChrisO; 08.11.2011