Gfortran pre-processor directives for Different Operating systems

前端 未结 1 1451
执笔经年
执笔经年 2020-12-11 08:09

Could you tell me please how can I do the following:

#if __unix__
#define path_sep=\'/\'
#elif __windows__
#define path_sep=\'\\\'
#else
#error \"path_sep no         


        
相关标签:
1条回答
  • 2020-12-11 08:46

    This can be done in combination with conditional compilation and using the "D" option on the command line. Here is some example code:

    program test_Dopt
    character (len=1) :: pathsep
    pathsep = "?"
    #ifdef WOS
       pathsep = "\"
    #endif
    #ifdef UOS
       pathsep = "/"
    #endif
    
    write (*, '( "pathsep is >", A1, "<")' )  pathsep
    
    end program test_Dopt
    

    Name the program with filetype F90 to cause gfortran to run the preprocessor or use -cpp on the compile line. Then pass options to the prepreprocessor by including them after D on the compile line, e.g., gfortran -DWOS. (This is more general then gfortran -- most Fortran compilers will process C-style pre-processor directives.) Then you can identify the OS outside of Fortran and pass the information to the Fortran program.

    You can compile your code via using the filetype F90 or -cpp.

    0 讨论(0)
提交回复
热议问题