1*734e90feSThilina Rathnayake #ifndef _ceed_fortran_name_h 2*734e90feSThilina Rathnayake #define _ceed_fortran_name_h 3*734e90feSThilina Rathnayake 4*734e90feSThilina Rathnayake /* establishes some macros to establish 5*734e90feSThilina Rathnayake * the FORTRAN naming convention 6*734e90feSThilina Rathnayake default gs_setup, etc. 7*734e90feSThilina Rathnayake -DUPCASE GS_SETUP, etc. 8*734e90feSThilina Rathnayake -DUNDERSCORE gs_setup_, etc. 9*734e90feSThilina Rathnayake * a prefix for all external (non-FORTRAN) function names 10*734e90feSThilina Rathnayake for example, -DPREFIX=jl_ transforms fail -> jl_fail 11*734e90feSThilina Rathnayake * a prefix for all external FORTRAN function names 12*734e90feSThilina Rathnayake for example, -DFPREFIX=jlf_ transforms gs_setup_ -> jlf_gs_setup_ 13*734e90feSThilina Rathnayake */ 14*734e90feSThilina Rathnayake 15*734e90feSThilina Rathnayake /* the following macro functions like a##b, 16*734e90feSThilina Rathnayake but will expand a and/or b if they are themselves macros */ 17*734e90feSThilina Rathnayake #define TOKEN_PASTE_(a,b) a##b 18*734e90feSThilina Rathnayake #define TOKEN_PASTE(a,b) TOKEN_PASTE_(a,b) 19*734e90feSThilina Rathnayake 20*734e90feSThilina Rathnayake #ifdef PREFIX 21*734e90feSThilina Rathnayake # define PREFIXED_NAME(x) TOKEN_PASTE(PREFIX,x) 22*734e90feSThilina Rathnayake #else 23*734e90feSThilina Rathnayake # define PREFIXED_NAME(x) x 24*734e90feSThilina Rathnayake #endif 25*734e90feSThilina Rathnayake 26*734e90feSThilina Rathnayake #ifdef FPREFIX 27*734e90feSThilina Rathnayake # define FPREFIXED_NAME(x) TOKEN_PASTE(FPREFIX,x) 28*734e90feSThilina Rathnayake #else 29*734e90feSThilina Rathnayake # define FPREFIXED_NAME(x) x 30*734e90feSThilina Rathnayake #endif 31*734e90feSThilina Rathnayake 32*734e90feSThilina Rathnayake #if defined(UPCASE) 33*734e90feSThilina Rathnayake # define FORTRAN_NAME(low,up) FPREFIXED_NAME(up) 34*734e90feSThilina Rathnayake # define FORTRAN_UNPREFIXED(low,up) up 35*734e90feSThilina Rathnayake #elif defined(UNDERSCORE) 36*734e90feSThilina Rathnayake # define FORTRAN_NAME(low,up) FPREFIXED_NAME(TOKEN_PASTE(low,_)) 37*734e90feSThilina Rathnayake # define FORTRAN_UNPREFIXED(low,up) TOKEN_PASTE(low,_) 38*734e90feSThilina Rathnayake #else 39*734e90feSThilina Rathnayake # define FORTRAN_NAME(low,up) FPREFIXED_NAME(low) 40*734e90feSThilina Rathnayake # define FORTRAN_UNPREFIXED(low,up) low 41*734e90feSThilina Rathnayake #endif 42*734e90feSThilina Rathnayake 43*734e90feSThilina Rathnayake #endif 44