args check and code generator
Merge remote-tracking branch 'origin/fortran-backend-and-apps' into fortran-backend-and-apps