Removed direct usage of BOAST state
Added function declarations
Prevent possible out-of-bounds write.

LINE_MAX may be system defined to something greater than the string
length defined in Fortran. Of course, someone would also have to write a
Par_file with an extremely long line too, but better safe than sorry.
Fix unused variable warning without CEM.
Hard fail if resolution is set to invalid value.
Stop if doubling elements cannot be determined.

This should fix a couple "possibly uninitialized variable" warnings.
Fix a couple type-conversion warnings.
Fix some set-but-unused variables.

In some cases, this involved removing the assignments. Others were
changing code to make use of the variables. Some cases I did not change,
since it appeared the unused assignments had value to give context to
other parts.
Fix an unnecessarily inverted condition.
Move force_ftz to the solver directory.

It's not used by xcreate_header_file or xmeshfem3D even though they link
with it.
Move make_gravity into specfem3D directory.

It's linked, but really unused by, the mesher. So it's really only
necessary for the solver.
Remove extra shared object from mesher compile.
Re-factor band_instrument_code to be clearer.
Remove euler_angles from specfem3d compile.
Remove memory_eval from specfem3D.
Remove unnecessary consistency check.

The code no longer uses the ceiling function, so there's no need to
verify that the result is correct. The code as it's now written will be
guaranteed to never fail this test.
Print solver initialization errors to stdout.

While the master node is supposed to print this information to the log
file, the exit_MPI call might come from any node. So the run could be
terminated from some other node, which kills the master node before it
writes anything to the log.
Fix intent of get_global arguments.

The [xyz]p arrays are sorted by this subroutine, so they should not be
just intent(in).