Michael, You should always test your toolchain first. Compilers are often buggy or may not fully support a language feature. But yes, requiring F2003 should address your concern.
-kt -----Original Message----- From: Michael Jackson [mailto:mike.jack...@bluequartz.net] Sent: Monday, January 11, 2016 12:11 PM To: Thompson, KT <k...@lanl.gov> Cc: cmake@cmake.org Subject: Re: [CMake] FORTRAN name mangling So if I require Fortran 2003 for our fortran codes then this whole “fortran name-mangling” thing becomes a moot point, i.e. I do not have to actually worry about it at all for our project. Just have to keep the C header consistent with the FORTRAN functions, but that part is on our devs. -- Michael A. Jackson BlueQuartz Software, LLC [e]: mike.jack...@bluequartz.net > On Jan 11, 2016, at 2:06 PM, Thompson, KT <k...@lanl.gov> wrote: > > "bind(c)" is a part of the Fortran 2003 standard. Any compiler that claims > to support this standard should work for you. > > I use Intel Fortran on Linux (v13-16) with bind(c) w/o issue. FWIW - I also > use the Portland Group (12+) and IBM Fortran (v14) compilers this way. > > -kt > > -----Original Message----- > From: CMake [mailto:cmake-boun...@cmake.org] On Behalf Of Michael Jackson > Sent: Monday, January 11, 2016 11:48 AM > To: Bill Somerville <b...@classdesign.com> > Cc: cmake@cmake.org > Subject: Re: [CMake] FORTRAN name mangling > > Actually, > If we just use the following: > > SingleEBSDPattern(ipar, fpar, ebsdPattern, quats, accum_e, mLPNH, mLPSH); > > and the same declaration in a .h file then we can link and execute just fine. > My question now would be: > > Do other FORTRAN compilers support this “bind(C)” thing, such as Intel > Fortran? If so then I can really NOT worry about figuring out the mangling > that is needed and just declare the functions in a C style header like > normal. No macros needed. > -- > Michael A. Jackson > BlueQuartz Software, LLC > [e]: mike.jack...@bluequartz.net > >> On Jan 11, 2016, at 1:13 PM, Bill Somerville <b...@classdesign.com> wrote: >> >> On 11/01/2016 17:58, Michael Jackson wrote: >>> and we call the function from our C code like the following: >>> >>> >>> SingleEBSDPattern_(ipar, fpar, ebsdPattern, quats, accum_e, mLPNH, mLPSH); >>> >> You need to use the macros here too. >> >> Regards >> Bill Somerville. >> -- >> -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake