强烈推荐你使用fortran90 free格式,并行效率更高。fortran77 fixed格式已是old-fashion。你可以在这方面做些功课。
每行限度为72列,一般都不够用的,不过在编译时加上,-extend-source选项就可以把72列的限制扩展到132列,你查查看。非并行的程序使用使用普通的编译器如ifort、gfortran等,不过既然是使用OMP,编译时就应该用mpiifort。
程序中声明private变量迟指手时,应该是用到时再声明,一般不会太长吧。
!$OMP PARALLEL DO PRIVATE (K,J,I)
DO K = 1,KM
DO J = 1,JMT
DO I = 1,IMT
variables (I,J,K)= 0.0
END DO
END DO
END DO
3)linux下,你这是一个主程序调用多个F90程序,推荐你使用make编译、链逗游接,这里是一个例子,比如你有main.F90 其中使用MOD模块mymod,并调用了test1.F90和 test2.F90,那么你的make文件(Makefile)可以这样写:
INCLDIR = -I. -I/usr/include -I/码嫌your/mpi/include
CPPFLAGS = -P -traditional
CPP = /usr/bin/cpp $(CPPFLAGS) $(INCLDIR)
NLIB = -L/your/mpi/bin64
###your mpi compile options
FFLAGS = -O2 -no-vec -r8 -i4 -convert big_endian -assume byterecl -save
FC = /your/mpi/bin64/mpiifort $(FFLAGS)
OBJS = mymod.o test1.o test2.o main.o
##########################################################################
###the executive file---run.exe will be created
run.exe: $(OBJS)
$(FC) -o ./run.exe $(OBJS) $(NLIB)
.SUFFIXES : .F90
.F90.o:
$(CPP) $<>$*.f90 $(FC) -c $*.f90
clean:
rm -f *.o *.il *.f90 *.f *.mod *.d run.exe
依次执行
$ make clean
$ make
即可编译成可执行文件run.exe,运行之即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)