⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fc

📁 把fortran语言编的程序转为c语言编的程序, 运行环境linux
💻
字号:
#!/bin/shPATH=/v/bin:/bin:/usr/bin# f77-style shell script to compile and load fortran, C, and assembly codes#	usage:	f77 [options] files [-l library]#	Options:#		-o objfile	Override default executable name a.out.#		-c		Do not call linker, leave relocatables in *.o.#		-C		Check that subscripts are in bounds.#		-S		leave assembler output on file.s#		-l library	(passed to ld).#		-u		complain about undeclared variables#		-w		omit all warning messages#		-w66		omit Fortran 66 compatibility warning messages#		files		FORTRAN source files ending in .f .#				FORTRAN with cpp preprocessor directives#					ending in .F .#				C source files ending in .c .#				Assembly language files ending in .s .#				efl source files ending in .e .#				RATFOR files ending in .r .#		-D def		passed to C compiler (for .c files)#				or to cpp (for .F files)#		-I includepath	passed to C compiler (for .c files)#				or to cpp (for .F files), and to f2c#		-Ntnnn		allow nnn entries in table ts=/tmp/stderr_$$t=/tmp/f77_$$.oCC=${CC_f2c:-'/usr/bin/cc -common'}EFL=${EFL:-/v/bin/efl}EFLFLAGS=${EFLFLAGS:-'system=portable deltastno=10'}RATFOR=${RATFOR:-/usr/bin/ratfor}RFLAGS=${RFLAGS:-'-6&'}F2C=${F2C:-/v/bin/f2c}F2CFLAGS=${F2CFLAGS:='-ARw8 -Nn802'}CPP=${CPP:-/lib/cpp}rc=0trap "rm -f $s $t; exit \$rc" 0lib=/lib/num/lib.loOUTF=a.outcOPT=1set -- `getopt cCD:gI:N:Oo:Suw6 "$@"`case $? in 0);; *) rc=$?; exit;; esacCPPFLAGS=while	test X"$1" != X--do	case "$1"	in	-C)	F2CFLAGS="$F2CFLAGS -C"		shift;;	-c)	cOPT=0		shift		;;	-D)	CPPFLAGS="$CPPFLAGS -D$2"		shift 2		;;	-g)	CFLAGS="$CFLAGS -g"		F2CFLAGS="$F2CFLAGS -g"		shift;;	-I)	CPPFLAGS="$CPPFLAGS -I$2"		F2CFLAGS="$F2CFLAGS -I$2"		shift 2		;;	-o)	OUTF=$2		shift 2		;;	-O)	case $2 in -1) O=-O1;; -2) O=-O2;; -3) O=-O3;; *) O=-O;; esac		case $O in -O);; *) shift;; esac		CFLAGS="$CFLAGS $O"		shift		;;	-u)	F2CFLAGS="$F2CFLAGS -u"		shift		;;	-w)	F2CFLAGS="$F2CFLAGS -w"		case $2 in -6) F2CFLAGS="$F2CFLAGS"66; shift			case $2 in -6) shift;; esac;; esac		shift		;;	-N)	F2CFLAGS="$F2CFLAGS $1""$2"		shift 2		;;	-S)	CFLAGS="$CFLAGS -S"		cOPT=0		shift		;;	*)		echo "invalid parameter $1" 1>&2		shift		;;	esacdoneshiftwhile	test -n "$1"do	case "$1"	in	*.[fF])		case "$1" in *.f) f=".f";; *.F) f=".F";; esac		case "$1" in			*.f)	b=`basename $1 .f`				$F2C $F2CFLAGS $1				rc=$?				;;			*.F)	b=`basename $1 .F`				$CPP $CPPFLAGS $1 >$b.i				rc=$?				case $rc in 0)					$F2C $F2CFLAGS <$b.i >$b.c					rc=$?					;;esac				rm $b.i				;;			esac		case $rc in 0);; *) exit;; esac                $CC -c $CFLAGS $b.c 2>$s		rc=$?		sed '/parameter .* is not referenced/d;/warning: too many parameters/d' $s 1>&2		case $rc in 0);; *) exit;; esac		OFILES="$OFILES $b.o"		rm $b.c		case $cOPT in 1) cOPT=2;; esac		shift		;;	*.e)		b=`basename $1 .e`		$EFL $EFLFLAGS $1 >$b.f		case $? in 0);; *) rc=$?; exit;; esac		$F2C $F2CFLAGS $b.f		case $? in 0);; *) rc=$?; exit;; esac                $CC -c $CFLAGS $b.c		case $? in 0);; *) rc=$?; exit;; esac		OFILES="$OFILES $b.o"		rm $b.[cf]		case $cOPT in 1) cOPT=2;; esac		shift		;;	*.r)		b=`basename $1 .r`		$RATFOR $RFLAGS $1 >$b.f		case $? in 0);; *) rc=$?; exit;; esac		$F2C $F2CFLAGS $b.f		case $? in 0);; *) rc=$?; exit;; esac		$CC -c $CFLAGS $b.c		case $? in 0);; *) rc=$?; exit;; esac		OFILES="$OFILES $b.o"		rm $b.[cf]		case $cOPT in 1) cOPT=2;; esac		shift		;;	*.s)		echo $1: 1>&2		OFILE=`basename $1 .s`.o		${AS:-/usr/bin/as} -o $OFILE $AFLAGS $1		case $? in 0);; *) rc=$?; exit;; esac		OFILES="$OFILES $OFILE"		case $cOPT in 1) cOPT=2;; esac		shift		;;	*.c)		echo $1: 1>&2		OFILE=`basename $1 .c`.o                $CC -c $CPPFLAGS $CFLAGS $1		rc=$?; case $rc in 0);; *) rc=$?; exit;; esac		OFILES="$OFILES $OFILE"		case $cOPT in 1) cOPT=2;; esac		shift		;;	*.o)		OFILES="$OFILES $1"		case $cOPT in 1) cOPT=2;; esac		shift		;;	-l)		OFILES="$OFILES -l$2"		shift 2		case $cOPT in 1) cOPT=2;; esac		;;	-l*)		OFILES="$OFILES $1"		shift		case $cOPT in 1) cOPT=2;; esac		;;	-o)		OUTF=$2; shift 2;;	*)		OFILES="$OFILES $1"		shift		case $cOPT in 1) cOPT=2;; esac		;;	esacdonecase $cOPT in 2) $CC -o $OUTF -u MAIN__ $OFILES -lf2c -lm;; esacrc=$?exit $rc

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -