Consider the following set of Fortran module files:

(These files are actually part of the ParaMonte library). These modules depend on each other:

• Math_mod uses Constants_mod and String_mod,
• String_mod uses Constants_mod and JaggedArray_mod,
• JaggedArray_mod uses Constants_mod,

Write a main Fortran program that uses the String_mod compiled as an external DLL library file named string. The program calls the replaceStr() function in String_mod to replace "FORTRAN" with "Fortran" in the following sentence,

sentence = "FORTRAN is a highly flexible expressive natively-parallel programming language for numerical computing."


such that the output of the main program is the following,

mainCallString.exe

Fortran, not FORTRAN, is a highly flexible expressive natively-parallel programming language for numerical computing.


Now, write a main Fortran program which calls the getDistanceSq() function of Math_mod from the math DLL (that you will have to build). Note that this Math_mod will depend on the string DLL file from the previous problem in the above.