我正在double max = items.stream().mapToDouble(Double::doubleValue).max().getAsDouble();//16.0
double min = items.stream().mapToDouble(Double::doubleValue).min().getAsDouble();//-6.0
中的Fortran 77中初始化头结构。而我有这个* .f-文件的两个版本。一个更新了新功能,但仍应支持旧版本。
新版本看起来相似:
BLOCK DATA
在旧版本中,某些条目不存在:
Block Data INIT_HS
Implicit None
C
Include 'hdr_str.inc'
C
Data (HDR_STRUC (I, NAVA), I = 1, 5)/
& CITY , AREA,
& LAT , LONG,
& ELEV,
& END/
C
Data (HDR_STRUC (I, NAVB), I = 1, 3)/
& CITY , CUST AREA,
& NAME , END/
C
Data HDR_STRING (CODE) /'CODE'/
Data HDR_STRING (ALT ) /'ALT'/
Data HDR_STRING (LAT) /'LAT'/
Data HDR_STRING (LON) /'LON'/
Data HDR_STRING (ACCL) /'ACCL'/
END
对于其余的合并源代码,我找到了一种在调用可执行文件时移交参数的解决方案:
Block Data INIT_HS
Implicit None
C
Include 'hdr_str.inc'
C
Data (HDR_STRUC (I, NAVA), I = 1, 3)/
& LAT , LONG,
& ELEV,
& END/
C
Data (HDR_STRUC (I, NAVB), I = 1, 2)/
& CITY , CUST AREA,
& END/
C
Data HDR_STRING (CODE) /'CODE'/
Data HDR_STRING (LAT) /'LAT'/
Data HDR_STRING (LON) /'LON'/
END
或:
DUMMY.exe VERSOLD
因此,我实现了一个功能,用于设置标志的版本。对于普通的DUMMY.exe VERSNEW
等来说,这没问题,但是在此PROGRAM, SUBROUTINE
中,我不能仅仅实现BLOCK DATA
... CALL GETVERS
我将从编译器IF (VERSOLD) THEN
中获得以下错误消息(..是以前的g77 ..)
(gfortran -m32 -std=legacy -ffixed-line-length-none -c -g -fno-automatic -fno-second-underscore -finit-local-zero )
当然我可以用另一个名称实现第二个Error: Syntax error in DATA statement at (1)
。
我真的很想知道是否还有其他好的解决方案?