While using the Modern Fortran extension, is it possible to disable warnings such as “Wunused-variable” via some comment at the top of the file?
If you are using a build tool like make(1) you can give different rules to different files; but there is not a standard method for reading options from the files themselves.
People do make their own aliases for the compiler command that look for such options; look up options in sqlite3 data files and so on but I know of no standardized method to do what you ask.
I would not recommend it myself, but the most common method is using the cpp/fpp preprocessor and then calling the compiler from the bash shell with something like this syntax
gfortran $(cpp -P -DGFORTRAN -DDEBUG xx.F90) xx.F90 gfortran $(cpp -P -DGFORTRAN xx.F90) xx.F90 ifort $(cpp -P -DIFORT -DDEBUG xx.F90) xx.F90 ifort $(cpp -P -DIFORT xx.F90) xx.F90
#ifdef GFORTRAN #ifdef DEBUG -Wall -Wextra -Wimplicit-interface -fPIC -fmax-errors=1 -g -fcheck=bounds -fcheck=array-temps -fbacktrace -fcoarray=single #else -O3 -funroll-loops -Wimplicit-interface -fPIC -fmax-errors=1 -fcoarray=single #endif # #elif IFORT #ifdef DEBUG -warn all -check all -error-limit 1 -O0 -g -assume byterecl -traceback #else -fp-model precise -pc64 -align all -error-limit 1 -reentrancy threaded -nogen-interfaces -assume byterecl # #else program demo_clip implicit none integer :: ii(2,3), i data ii/10,20,30,40,50,60/ write(*,*)'shape=',shape(ii) write(*,*)(ii(i,:),new_line('a'),i=1,size(ii,dim=1)) end program demo_clip #endif
but using something like Makefiles is much much more common.
Short answer is no, since the linter options are defined globally (on a oer project basis).
Long answer, there are probably ways to “hack” vscode and gfortran by passing environmental settings but I would not recommend it.
The long term plan to address this is to integrate with fpm and cmake serving lint diagnostics based on the build system options.