CMake generate Fortran from template
CMake configure_file can serve to generate source code files including Fortran. For templates beyond a few lines of code, it may be useful to read the template from a file. This requires setting CMake directory property CMAKE_CONFIGURE_DEPENDS to have CMake regenerate the file if the template file changes as in the example below.
file(READ my_template.in.f90 template_code)
configure_file(example.in.f90 example.f90 @ONLY)
set_property(DIRECTORY PROPERTY CMAKE_CONFIGURE_DEPENDS my_template.in.f90)
#example use
add_executable(main ${CMAKE_CURRENT_BINARY_DIR}/example.f90)