首页 > 解决方案 > fortran77中MAX(a1, a2, a3)的输出为0

问题描述

我尝试针对迭代输出 3 个残差 ( RESU, RESV, RESM) 及其最大残差 ( MAXRES=MAX(RESU, RESV, RESM)),但所有最大值均为零。这是我的输出数据文件的一部分:

 TITLE = "Residuals (UDS) for Re=   100.000000     "
 VARIABLES = "IT", "RESU", "RESV", "RESM", "MAXRES"
 ZONE F=POINT, I=           1 , J=        5000
           1   0.00000000       0.00000000       0.00000000               0
           2   1.67488301       5.27476184E-02  0.374938786               1
           3  0.985122621      0.343204975      0.322845399               0
           4  0.757116914      0.445723385      0.239837810               0
           5  0.615567148      0.445041806      0.234413743               0
           6  0.528972685      0.421907485      0.229439482               0
           7  0.474238336      0.426455706      0.225041553               0
           8  0.442271680      0.426399827      0.220125377               0
           9  0.422069281      0.420389742      0.214744285               0
          10  0.405965954      0.410645813      0.214734986               0
          11  0.400569707      0.401357681      0.216470540               0
          12  0.395709157      0.398527116      0.217513978               0
          13  0.389140487      0.395864725      0.217501149               0

我这部分的代码是:

      open(50,file='residual.dat')
      WRITE(50,*)'TITLE = "Residuals (UDS) for Re=',Re,'"'
      WRITE(50,*)'VARIABLES = "IT", "RESU", "RESV", "RESM", "MAXRES"'
c      
      IMAX=1
      JMAX=MAXIT
C
      WRITE(50,*)'ZONE F=POINT, I=',IMAX, ', J=',JMAX
      DO I=1,MAXIT
      MAXRES=MAX(RESU(I),RESV(I),RESM(I))
      WRITE(50,*)I,RESU(I),RESV(I),RESM(I),MAXRES
      END DO
      close(50)

我尝试识别 MAX 函数的每个自变量的变量类型,例如MAXRES=MAX(real(RESU(I)),real(RESV(I)),real(RESM(I))),但输出仍然为零。我在 fortran77 中使用 MAX FUNCTION 时做错了吗?如果有人能给我一些建议,我将不胜感激!谢谢!

标签: fortrangfortranfortran77

解决方案


推荐阅读