2011-10-20 11 views
1

これは、Fortranプログラムは、FORTRANのプログラムを構築する上でエラーを取得

subroutine selfile(name) 

    ! call Window dialog to select file 

    use dfwin 

type T_OPENFILENAME 
sequence 
real lStructSize,hwndOwner,hInstance,lpstrFilter,lpstrCustomFilter,nMaxCustFilter,nFilterIndex,lpstrFile,nMaxFile,nMaxFileTitle 
real lpstrInitialDir,lpstrTitle,Flags,lpstrDefExt,lpfnHook,lpTemplateName 
end type T_OPENFILENAME 





    type(T_OPENFILENAME):: ofn 
    character*100 filter_spec 
    character*512 file_spec 
    integer status 
    character*(*)name 

    ! set filter specification and string to return the file specification. 

    file_spec=''C 
    filter_spec = 'Data Files'C//'*.dat'C// & 
       'Text Files'C//'*.txt'C// & 
       'All files'C//'*'C//''C 
    ofn%lStructSize = SIZEOF(ofn) 
    ofn%hwndOwner = NULL 
    ofn%hInstance = NULL 
    ofn%lpstrFilter = loc(filter_spec) 
    ofn%lpstrCustomFilter = NULL 
    ofn%nMaxCustFilter = 0 
    ofn%nFilterIndex = 1 
    ofn%lpstrFile = loc(file_spec) 
    ofn%nMaxFile = sizeof(file_spec) 
    ofn%nMaxFileTitle = 0 
    ofn%lpstrInitialDir = NULL 
    ofn%lpstrTitle = loc('D Y N S I M'C) 
    ofn%Flags = OFN_PATHMUSTEXIST 
    ofn%lpstrDefExt = loc('dat'C) 
    ofn%lpfnHook = NULL 
    ofn%lpTemplateName = NULL 
    end 
    ! Call GetOpenFileName and check status 

    status = GetOpenFileName(ofn) 
    if (status == 0) then 
    name='' 
    else 
    name=file_spec 
    endif 
end subroutine selfile 

の私の1つのサブルーチンであるが、私は

 
Illegal use of constant "D Y N S I M" 
Illegal number or type of arguments to loc 
Illegal use of constant "dat" 
Unmatched ENDSUBROUTINE statement 

答えて

1

loc()関数は非標準です。..のようなエラーを取得していますが、短い検索その引数はリテラル定数ではないことを私に伝えます。

関連する問題