On Thu, 7 Nov 2013, at 14:24, Svetlana Tkachenko wrote: > > > On Thu, 7 Nov 2013, at 14:22, Svetlana Tkachenko wrote: > > > > > > On Thu, 7 Nov 2013, at 14:15, Jed Brown wrote: > > > Svetlana Tkachenko <svetlana.tkache...@fastmail.fm> writes: > > > > > > > On Thu, 7 Nov 2013, at 13:59, Jed Brown wrote: > > > >> Svetlana Tkachenko <svetlana.tkache...@fastmail.fm> writes: > > > >> > What do you mean? (I don't think the program name has to be 'main'.). > > > >> > > > >> No, it doesn't. The name is meaningless in Fortran, but you need to > > > >> use > > > >> the keyword "program". > > > >> > > > >> > ~/dev/test/petsc $ cat myexample.F90 > > > >> > program myexample > > > >> > > > > >> > call solver > > > >> > end > > > >> > ~/dev/test/petsc $ > > > >> > > > >> Add myexample.o to the makefile so it gets compiled. > > > > > > > > Already did, please, see: > > > > > > > > ~/dev/test/petsc $ cat makefile > > > > myexample: myexample.o solver.o > > > > ${CLINKER} -o $@ $^ ${PETSC_LIB} > > > > > > > > include ${PETSC_DIR}/conf/variables > > > > include ${PETSC_DIR}/conf/rules > > > > ~/dev/test/petsc $ > > > > > > Run make clean; make. If you get the same error, check > > > > > > $ nm myexample.o > > > U _gfortran_set_args > > > U _gfortran_set_options > > > U _GLOBAL_OFFSET_TABLE_ > > > 0000000000000000 T main > > > 0000000000000000 r options.0.1881 > > > U solver_ > > > > > > > ~/dev/test/petsc $ make clean > > ~/dev/test/petsc $ make > > gfortran -c -fPIC -Wall -Wno-unused-variable -g -fopenmp > > -I/home/<username>/petsc/include > > -I/home/<username>/petsc/linux-amd64/include > > -I/home/<username>/petsc/include/mpiuni -o myexample.o myexample.F90 > > gfortran -c -fPIC -Wall -Wno-unused-variable -g -fopenmp > > -I/home/<username>/petsc/include > > -I/home/<username>/petsc/linux-amd64/include > > -I/home/<username>/petsc/include/mpiuni -o solver.o solver.F90 > > gcc -fopenmp -fopenmp -fPIC -Wall -Wwrite-strings -Wno-strict-aliasing > > -Wno-unknown-pragmas -g3 -fno-inline -O0 -fopenmp -o myexample myexample.o > > solver.o -Wl,-rpath,/home/<username>/petsc/linux-amd64/lib > > -L/home/<username>/petsc/linux-amd64/lib -lpetsc > > -Wl,-rpath,/home/<username>/petsc/linux-amd64/lib -lflapack -lfblas -lX11 > > -lpthread -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/4.4.7 > > -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -lgfortran -lm -lm -lstdc++ > > -lstdc++ -ldl -lgcc_s -ldl > > /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crt1.o: In > > function `_start': > > (.text+0x20): undefined reference to `main' > > collect2: ld returned 1 exit status > > make: *** [myexample] Error 1 > > ~/dev/test/petsc $ nm myexample.o > > 0000000000000000 T MAIN__ > > U _GLOBAL_OFFSET_TABLE_ > > U _gfortran_set_options > > 0000000000000000 r options.0.1516 > > U solver_ > > ~/dev/test/petsc $ > > > > Using FLINKER instead of CLINKER in the makefile gets it to compile without > errors. However, the previous behaviour persists (?). > > ~/dev/test/petsc $ make > gfortran -c -fPIC -Wall -Wno-unused-variable -g -fopenmp > -I/home/<username>/petsc/include -I/home/<username>/petsc/linux-amd64/include > -I/home/<username>/petsc/include/mpiuni -o myexample.o myexample.F90 > gfortran -c -fPIC -Wall -Wno-unused-variable -g -fopenmp > -I/home/<username>/petsc/include -I/home/<username>/petsc/linux-amd64/include > -I/home/<username>/petsc/include/mpiuni -o solver.o solver.F90 > gfortran -fopenmp -fopenmp -fPIC -Wall -Wno-unused-variable -g -fopenmp > -o myexample myexample.o solver.o > -Wl,-rpath,/home/<username>/petsc/linux-amd64/lib > -L/home/<username>/petsc/linux-amd64/lib -lpetsc > -Wl,-rpath,/home/<username>/petsc/linux-amd64/lib -lflapack -lfblas -lX11 > -lpthread -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/4.4.7 > -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -lgfortran -lm -lm -lstdc++ -lstdc++ > -ldl -lgcc_s -ldl > ~/dev/test/petsc $ ./myexample > Entered petsc. > Init done. > WARNING! There are options you set that were not used! > WARNING! could be spelling mistake, etc! > Option left: name:-threadcomm_nthreads value: 8 > Option left: name:-threadcomm_type value: openmp > Finalized. > ~/dev/test/petsc $
Correction: Not previous behaviour, rather, new behaviour...