[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::fortran

Title:Digital Fortran
Notice:Read notes 1.* for important information
Moderator:QUARK::LIONEL
Created:Thu Jun 01 1995
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:1333
Total number of notes:6734

1252.0. "Fortran 77 V7.1 compiler ACCVIO with /optimize=level=5" by UTRTSC::BOOR () Tue Apr 08 1997 05:54

Hello,

the program below will generate an ACCVIO when the /optimize=level=5
is used. If /optimize=level=4 is used there's no problem.
Used versions:	Digital Fortran 77 V7.1-107 on
		OpenVMS Alpha V6.2 and V7.1


Generated ACCVIO:
UTURBO > fort/opt=level=5 ACCVIO_OPTIM_V71
%SYSTEM-F-ACCVIO, access violation, reason mask=00,
virtual address=0000000000000100, PC=00000000003712B0, PS=0000001B

  Improperly handled condition, image exit forced.
    Signal arguments:   Number = 0000000000000005
                        Name   = 000000000000000C
                                 0000000000010000
                                 0000000000000100
                                 00000000003712B0
                                 000000000000001B

    Register dump:
    R0  = FFFFFFFFFFFFFFFF  R1  = 0000000000000001  R2  = 000000000003C928
    R3  = 0000000000906000  R4  = 0000000000E54620  R5  = 0000000000E54620
    R6  = 0000000000663938  R7  = 0000000000000000  R8  = 00000000008E5ED0
    R9  = 0000000000900E40  R10 = 0000000000906550  R11 = 0000000000000000
    R12 = 0000000000000F43  R13 = 0000000000668160  R14 = 00000000001212E0
    R15 = 00000000000C14A8  R16 = 0000000000000000  R17 = 00000000000000A4
    R18 = 0000000000000001  R19 = 0000000000000000  R20 = 0000000000000077
    R21 = 0000000000000001  R22 = 0000000000000141  R23 = 0000000000000001
    R24 = 0000000000000136  R25 = 0000000000000000  R26 = 0000000000371578
    R27 = 000000000003C908  R28 = 0000000000000000  R29 = 000000007AE375B0
    SP  = 000000007AE375B0  PC  = 00000000003712B0  PS  = 300000000000001B
regards,
	Rob Boor, Off-Site Services, Utrecht - The Netherlands.
================================================================================
C PROBLEM FORTRAN 7.1  ACCESS VIOLATION with /OPT=(LEVEL=5)
C OK with /OPT=(LEVEL=4) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
C
CKNST --117 ***CITATION*** EQ. CONSTANTS FOR 3-D/ CF-EIGN
C
      SUBROUTINE KNST(NRGNE, SCAC,DCONBE,DCONRE, DCONBK,F1,SIG,PTSAE,
     > NCOMP,PVOL,BBND,BND, IVX,JVX,KBVX,KVX,LVX, MVX,IVXP1,JVXP1,
     > KBVXP1,IVZ,KVZ, JIVX,JIP1VX,JP1IXZ,IOVX,IOVZ,A, MEMORY,AIO,
     > IX3738)
C
      REAL*8 TPTSA,D1,D2,D3,D4,D5,D6,D7,D8,D9,DU
C
      COMMON/ALSUB/BLSUB(30),TITL1(18),TITL2(18),IMAX,JMAX,KBMAX,KMAX,
     > LMAX,MMAX, NMAX,IMXP1,JMXP1,KBMXP1,NSETMX,NTO,MM1VX,KM1VX,IOIN,
     > IOUT,IOSIG,IOFLX,IO1,IO2,IO3,IO4,IO7,NER(100), IX(200),INNO(100),
     >  NGC(24),IEDG(24),ITMX(24),TIMX(6), GLIM(6),NDPL(24),IEDP1(24),
     > IEDP2(24),IEDP3(24), DPLH(6),NUAC(24),EPI(6),XMIS(6),NSRH(24),
     > XSRH1(6), XTR1(100),XTR2(100),NXTR1(100),NXTR2(100),SPARE(200),
     > IXPUT(9999),XPUT(9999)
      COMMON/AMESH/BMESH(30),NREGI,NREGJ,NREGKB,XSHI(100),XSHJ(100),
     > XSHKB(100), MSHI(100),MSHJ(100),MSHKB(100),Y(211),YY(211), X(211)
     >  ,XX(211),Z(211),ZZ(211), ZONVOL(9999),AVZPD(9999),PDI(211),
     > PDJ(211) , PDK(211)
      COMMON/AFLUX/BFLUX(30),KXMN8,NIT,NIIT,NIIIT,JXP1,KSCT1,KSCT2,
     > ISTART,IEP, VRGP1,VRGP2,VRGP3,VRG1,VRG2,VRGK1,VRGK2,XABS,PROD,
     > XLEK,RMX,RMN,XKEF1,XKEF2,XKEF3,EXFC1,EXFC2,EXFC3, NI3,IEXTR,
     > IRECV,VRGABS,LO3,LO4,XLAMDA,EPI1,EPI2, BETTA,SUMXI,IX25,IX28,I,J,
     >  KB,K,ITMAX,ITIME, BET(211),DEL(211)
      COMMON/ABURN/BBURN(30),NSIG1(50),NSIG2(50),NSIG3(50),N1N2R(2,9999)
     >, NSIG4(50),NSIG5(50),NSIG6(50),NJM(50),NJMM(50),NJNQ(50),NCH(50),
     >  NZON(9999),NXSET(9999),NXODR(9999),IDXSET(9999),NCLASS(9999),NDP
     >(9999),XNAME(3,9999)
      COMMON /UI8/ DU(4),D2
      COMMON /UI/ DUM(373),KKK,MH,MR,MB,ML,MT,DELHT,TAH,DELHB,MBK,MF
C
      DIMENSION NRGNE(JVX,IVX,KBVX), SCAC(KVX,MVX,KVX),DCONBE(JIP1VX ,
     > KBVX,IOVX),DCONRE(JP1IXZ , KBVX, IOVZ),DCONBK(JIVX ,KBVXP1,IOVX),
     >  F1(KVX ,MVX),SIG(KVX, MVX,10), PTSAE(JIVX ,KBVX,IOVX)
      DIMENSION NCOMP(LVX),PVOL(LVX)
      DIMENSION BBND(KVX),BND(6,KVX)
      DIMENSION A(MEMORY)
      DIMENSION AIO(IX3738)
C
CCCCC ********* SUBSCRIPT DEFINITIONS (KNST E-010) ********* CCCCC
C    NEW         OLD            NEW         OLD
C     N1         J,I             N5 *       J,I+1
C     N2         J,I+1           N6         J,I
C     N3 *       J,I             N7         M,L
C     N4 *     J+1,I             N8         I,J
C     N9 *       1,I             N10 *  JVX+1,I
C     N11 *  JVXP1,IVXP1-I       N12 *  JVXP1,I
C     N14        J,IVXP1         N15 *      1,I
C     N2       J-1,I+1 FOR TRIANGULAR ONLY
C
C  THE * ABOVE REFERS TO INDEXING IN ARRAYS LARGER THAN JVX X IVX
C
C     INRB = 1  ORDINARY
C     INRB = 2  PERIODIC(REPEATING)
C     INRB = 3  90 DEGREE ROTATIONAL
C     INRB = 4  180 DEGREE ROTATIONAL
C
C  HIER WIRD DIE BEHRENSKORREKTUR GEMACHT
      DIMENSION B(3,15,9999)
C  B(1,..,..) ENTSPRICHT X-RICHTUNG UND INDEX J
C  B(2,..,..) ENTSPRICHT Y-RICHTUNG UND INDEX I
C  B(3,..,..) ENTSPRICHT Z-RICHTUNG UND INDEX KB
C  B(..,K,L) IST D(BEHRENSKORRIGIERT))/D(UNKORR.) IN GRUPPE K UND ZONE L
      IF(KMAX.GT.15) WRITE (IOUT,1002) KMAX
      IF(MMAX.GT.9999) WRITE (IOUT,1003) MMAX
      IF(KMAX.GT.15) STOP
      IF(MMAX.GT.9999) STOP
      DO 300 I=1,3
      DO 300 K=1,KMAX
      DO 300 M=1,MMAX
 300  B(I,K,M)=1.0
C  EINLESEN VON B
C  IRICHT  IRIC
C    0           EIN WERT FUER X UND Y UND Z
C    1       1   NUR X
C    1       2         ERST X DANN Y
C    2       2   NUR Y
C    1       3   ERST X , DANN Y , DANN Z
C    2       3   ERST Y , DANN Z , X BLEIBT MIT FAKTOR 1.0
C    ETC...  ETC...
C
      ISCHR=1
      IF(NGC(24)) 305,320,320
 305  READ(IOIN,1004) JZMI,JZMA,IRICHT,IRIC
      IF(JZMI) 310,320,330
 330  IF(IRICHT.GT.3 .OR. IRICHT.LT.0) GO TO 310
      IF(IRIC.GT.3 .OR. IRIC.LT.0) GO TO 310
      IF(IRIC.LT.IRICHT) GO TO 310
      IF(JZMI.LE.JZMA) GO TO 331
 310  WRITE (IOUT,1005) JZMI,JZMA,IRICHT,IRIC
      STOP
 331  IF(IRICHT.GT.0) GO TO 401
      READ (IOIN,1006) (B(1,K,JZMI),K=1,KMAX)
      GO TO 402
 401  DO 335 I=IRICHT,IRIC
 335  READ (IOIN,1006) (B(I,K,JZMI),K=1,KMAX)
 402  DO 340 I=1,3
      II=I
      IF(IRICHT.EQ.0) II=1
      DO 340 J=JZMI,JZMA
      DO 340 K=1,KMAX
 340  B(I,K,J)=B(II,K,JZMI)
      IF(ISCHR.EQ.1) WRITE (IOUT,1007)
      ISCHR=0
      WRITE (IOUT,1008) JZMI,JZMA
      DO 350 K=1,KMAX
 350  WRITE (IOUT,1009) K,B(1,K,JZMI),B(2,K,JZMI),B(3,K,JZMI)
      GO TO 305
 320  CONTINUE
      IF (NUAC(5).NE.13.AND.NUAC(5).NE.14) GOTO 500
      DO 510 K=1,KMAX
      DO 510 M=1,MMAX
      IF (B(1,K,M).EQ.B(2,K,M)) GOTO 510
      WRITE (IOUT,1101)NUAC(5)
      STOP
 510  CONTINUE
 500  CONTINUE
      INRB=IX(72)+1
      KMAXP1 = KMAX + 1
      IX37 = IX(37)
      IX38 = IX(38)
      IO15 = IX(82)
      IOADJ = IO15
      IF (IX(71).GT.0) IOADJ = IO2
      IF (IX37.GT.0) REWIND IOADJ
      IF (IX(71).GT.0) IX(5) = IX(17)
      IO14 = IX(81)
      REWIND IO14
      GO TO (107,107,102,100),INRB
  100 I=IVX/2
      DO 101J=1,I
      K=IVX+1-J
      TAL=(YY(J)-Y(J))/(Y(K)-YY(K+1))
      IF (NUAC(5).EQ.14) TAL=(PDI(I)-YY(I))/(YY(K+1)-Y(K))
      EPICH = ABS(TAL-1.0)
      IF (EPICH.GT.1.0E-4) GO TO 103
  101 CONTINUE
      GO TO 107
  102 CONTINUE
      IDA = IVX
      IF (NUAC(5).EQ.14) IDA = 2*IVX
      IF (JVX.EQ.IDA) GO TO 104
  103 CONTINUE
      JB = 32
      WRITE(IOUT,1000)JB,I,J
      CALL EXIT
  104 CONTINUE
      J = 1
      DO 106 I = 1,IVX
      TAL = Y(I)/X(I)
      IF ((NUAC(5).NE.14).OR.(I.EQ.1)) GO TO 105
      J = J+2
      TAL = (Y(I)-PDI(I-1))/(X(J)-X(J-1))
  105 CONTINUE
      EPICH = ABS(TAL-1.0)
      IF (EPICH.GT.1.0E-4) GO TO 103
  106 CONTINUE
  107 CONTINUE
      EPICH=1.0E-5
      SPARE(51) = -1.0E+30
      SPARE(57) = -1.0E+30
      N17 = NUAC(17)
      SQUIRE=1.1547005
      IF (N17) 114,114,108
  108 IF (XMIS(2)) 114,109,109
  109 DO 113 K = 1,KMAX
      IF (XMIS(2)) 113,110,111
  110 T1 = 0.4692
      GO TO 112
  111 T1 = XMIS(2)
  112 BBND(K) = T1
  113 CONTINUE
  114 CONTINUE
      NGEM = IX(26)
      IF (IX37.GT.0) GO TO 116
C**** ZERO DCONBE,DCONRE,DCONBK,PTSAE IF NO I/O
      NL = IX(169)
      NU = IX(170)
      DO 115 NIO=NL,NU
      A(NIO) = 0.0
  115 CONTINUE
C****
  116 CONTINUE
      SPARE(98) = 0.0
      DO 129 K = 1,KMAX
      READ(IO14) ((F1(KK,M),KK=1,KMAX),M=1,MMAX)
      DO 128 M=1,MMAX
      IF (M-N17) 123,118,123
  118 IF (XMIS(2)) 119,120,120
  119 IF (BBND(K)) 120,123,120
  120 DO 121 L=1,10
      SIG(K,M,L) = 0.0
  121 CONTINUE
      DO 122 KK = 1,KMAX
      SCAC(K,M,KK) = 0.0
  122 CONTINUE
      GO TO 128
  123 CONTINUE
      SIG(K,M,9) = SIG(K,M,1)*SIG(K,M,6)
      SPARE(98) = SPARE(98) + SIG(K,M,8)
C***************************SEARCH OPTIONS******************************
      IF (IX(5).NE.-2) GO TO 126
      IF ((IX(44).EQ.0).AND.(IX(49).EQ.0)) GO TO 125
      IF (IX(49).GT.0) GO TO 124
      IF ((M.EQ.IX(44)).OR.(M.EQ.IX(45)).OR.(M.EQ.IX(46))
     > .OR.(M.EQ.IX(47)).OR.(M.EQ.IX(48))) GO TO 125
      GO TO 126
  124 IF (IX(49).NE.NCLASS(M)) GO TO 126
  125 SIG(K,M,5) = SIG(K,M,9)
      SIG(K,M,9) = 0.0
  126 CONTINUE
      DO 127 KK = 1,KMAX
      SCAC(K,M,KK) = F1(KK,M)
  127 CONTINUE
  128 CONTINUE
  129 CONTINUE
      REWIND IO14
      T1 = 0.0
      DO 136 K = 1,KMAX
      DO 135 M=1,MMAX
      TPTSA=0.D+0
      DO 130 KK = 1,KMAX
      TPTSA = TPTSA + SCAC(K,M,KK)
  130 CONTINUE
      SIG(K,M,2) = TPTSA
      TPTSA = TPTSA + SIG(K,M,3) + SIG(K,M,9)
      SIG(K,M,10) = TPTSA
      SIG(K,M,3) = SIG(K,M,10) - SIG(K,M,2) - SIG(K,M,9)
      IF ((SIG(K,M,10).EQ.0.0).OR.(SIG(K,M,5).EQ.0.0)) GO TO 131
      SPARE(51) = AMAX1(SPARE(51),SIG(K,M,5)/SIG(K,M,10))
C****************************SEARCH OPTIONS*****************************
  131 CONTINUE
      IF (IX(5).EQ.(-5)) GO TO 134
      IF ((IX(5).EQ.0).OR.(IX(5).GE.2)) GO TO 134
      IF ((IX(44).EQ.0).AND.(IX(49).EQ.0)) GO TO 133
      IF (IX(49).GT.0) GO TO 132
      IF ((M.EQ.IX(44)).OR.(M.EQ.IX(45)).OR.(M.EQ.IX(46))
     > .OR.(M.EQ.IX(47)).OR.(M.EQ.IX(48))) GO TO 133
      GO TO 134
  132 IF (IX(49).NE.NCLASS(M)) GO TO 134
  133 T1 = T1 + SIG(K,M,5)
  134 CONTINUE
  135 CONTINUE
  136 CONTINUE
C****************************SEARCH OPTIONS*****************************
      IF (IX(5).EQ.(-5)) GO TO 138
      IF ((IX(5).EQ.0).OR.(IX(5).GE.2)) GO TO 138
      IF (T1.NE.0.0) GO TO 138
      JB = 16
      WRITE(IOUT,1000) JB
      CALL EXIT
  138 CONTINUE
      NEM = NGEM-10
      DO 250 KT1=1,KMAX
      K = KT1
      N = KT1
      IF (IX37.EQ.0) GO TO 140
      N = 1
      IF (IX(71).GT.0) K = KMAXP1 - KT1
C**** ZERO DCONBE,DCONRE,DCONBK,PTSAE IF I/O
      DO 139 NIO=IX37,IX38
      A(NIO) = 0.0
  139 CONTINUE
C****
  140 CONTINUE
      DO 233 KB = 1,KBMAX
      L = KB
      TB = ZZ(KB+1)-ZZ(KB)
      DELFR = 0.0
      IF (KB-1) 142,142,141
  141 DELFR = ZZ(KB)-ZZ(KB-1)
  142 DELF = Z(KB)-ZZ(KB)
      DELK = ZZ(KB+1)-Z(KB)
      DELBK = 0.0
      IF (KB-KBMAX) 143,144,144
  143 DELBK = Z(KB+1)-ZZ(KB+1)
  144 CONTINUE
      DO 232 I = 1,IMAX
      NN1= (I-1)*JVX
      NN2= (I-1)*JVXP1
      N12 = I*JVXP1
      T1 = YY(I+1)-YY(I)
      DELTT = 0.0
      IF (I-1) 146,146,145
  145 DELTT = YY(I)-Y(I-1)
      IF (NEM.EQ.4) DELTT = YY(I)-PDI(I-1)
  146 DELT = Y(I)-YY(I)
      DELB = YY(I+1)-Y(I)
      IF (NEM.EQ.4) DELB = YY(I+1)-PDI(I)
      DELBB = 0.0
      IF (I-IMAX) 147,148,148
  147 DELBB = Y(I+1)-YY(I+1)
  148 CONTINUE
      DO 231 J = 1,JMAX
      NRN = NRGNE(J,I,KB)
      NOE = J-(J/2)*2
      N1= NN1 + J
      N2 = N1 + JVX
      N3= NN2 + J
      N4 = N3 + 1
      N5 = N3 + JVXP1
      DELLL = 0.0
      IF (J-1) 150,150,149
  149 DELLL = XX(J)-X(J-1)
      IF (NEM.EQ.4) N2 = N2-1
  150 DELL = X(J)-XX(J)
      DELR = XX(J+1)-X(J)
      DELRR = 0.0
      IF (J-JMAX) 151,152,152
  151 DELRR = X(J+1)-XX(J+1)
  152 CONTINUE
      GO TO (159,158,153,160),NEM
  153 TAT=SQUIRE*DELT*TB
      TAL=SQUIRE*DELL*TB
      TAR=DELR+DELL
      TAB=DELB+DELT
      TD1 = X(J+1)-X(J)
      TD2 = Y(I)-Y(I-1)
      IF (I.EQ.1) TD2 = 2*Y(I)
      IF (J.EQ.JMAX) TD1 = TD2
      DELHT = 0.5*SQRT(TD1**2+TD2**2-TD1*TD2)
      DELHB = DELHT
      TAR=TAL
      TAB=TAT
      TAH=SQUIRE*DELHT*TB
      TABK=SQUIRE*(DELT**2+DELL**2+DELHT**2)
      TAF = TABK
      MH=0
      IF (J-JMAX) 155,157,157
  155 IF (I-1) 157,157,156
  156 NHN=NRGNE(J+1,I-1,KB)
      MH=NCOMP(NHN)
  157 GO TO 162
  158 T2 = XX(J+1)-XX(J)
      TAL = TB*T1
      TAR = TAL
      TAT = YY(I)*T2*TB
      TAB = YY(I+1)*T2*TB
      TAF = 0.5*(YY(I+1)**2-YY(I)**2)*T2
      TABK = TAF
      DELR = DELR*Y(I)
      DELRR = DELRR*Y(I)
      DELL = DELL*Y(I)
      DELLL = DELLL*Y(I)
      GO TO 162
  159 TAL = T1*TB
      TAR = TAL
      TAT = (XX(J+1)-XX(J))*TB
      TAB = TAT
      TAF = (XX(J+1)-XX(J))*T1
      TABK = TAF
      GO TO 162
  160 CONTINUE
      TAL = 3.46410*(X(J)-XX(J))*TB
C     2*SQRT(3) = 3.46410
      TAR = 3.46410*(XX(J+1)-X(J))*TB
      TAF = PVOL(NRN)/TB
      TABK = TAF
      IF (NOE.EQ.0) GO TO 161
      TAT = 3.46410*(Y(I)-YY(I))*TB
      TAB = 0.0
      GO TO 162
  161 CONTINUE
      TAB = 3.46410*(YY(I+1)-PDI(I))*TB
      TAT = 0.0
  162 CONTINUE
      M = NCOMP(NRN)
      IF (KB.EQ.1) GO TO 163
      NRNF = NRGNE(J,I,KB-1)
      MF = NCOMP(NRNF)
  163 IF (I.EQ.1) GO TO 164
      NRNT = NRGNE(J,I-1,KB)
      IF ((NEM.EQ.4).AND.(J.LT.JMAX)) NRNT = NRGNE(J+1,I-1,KB)
      MT = NCOMP(NRNT)
  164 IF (J.EQ.1) GO TO 165
      NRNL = NRGNE(J-1,I,KB)
      ML = NCOMP(NRNL)
      GO TO 166
  165 IF (INRB.NE.2) GO TO 166
      NRNL = NRGNE(JMAX,I,KB)
      ML = NCOMP(NRNL)
  166 IF (KB.EQ.KBMAX) GO TO 167
      NRNBK = NRGNE(J,I,KB+1)
      MBK = NCOMP(NRNBK)
  167 IF (I.EQ.IMAX) GO TO 168
      NRNB = NRGNE(J,I+1,KB)
      IF ((NEM.EQ.4).AND.(J.GT.1)) NRNB = NRGNE(J-1,I+1,KB)
      MB = NCOMP(NRNB)
      GO TO 169
  168 IF (INRB.NE.3) GO TO 169
      NRNB = NRGNE(JVX,J,KB)
      IF (NGEM.EQ.14) NRNB = NRGNE(JVX,J/2,KB)
      MB = NCOMP(NRNB)
      DELB = XX(JVXP1) - X(JVX)
  169 IF (J.EQ.JMAX) GO TO 170
      NRNR = NRGNE(J+1,I,KB)
      MR = NCOMP(NRNR)
      GO TO 174
  170 GO TO (174,171,172,173),INRB
  171 CONTINUE
      NRNR = NRGNE(1,I,KB)
      MR = NCOMP(NRNR)
      DELRR = X(1)
      IF(NGEM.EQ.2) DELRR = DELRR*Y(I)
      GO TO 174
  172 CONTINUE
      NRNR = NRGNE(I,IVX,KB)
      IF (NGEM.EQ.14) NRNR = NRGNE(2*I,IVX,KB)
      MR = NCOMP(NRNR)
      DELRR = YY(IVXP1) - Y(IVX)
      IF (NGEM.EQ.14) DELRR = YY(IVXP1)-PDI(IVX)
      GO TO 174
  173 CONTINUE
      NRNR = NRGNE(JVX,IVXP1-I,KB)
      MR = NCOMP(NRNR)
      DELRR = DELR
  174 CONTINUE
      IF (M.NE.N17) GO TO 175
      IF (XMIS(2).GE.0.0) GO TO 198
      IF (BBND(K).NE.0.0) GO TO 198
  175 IF (KB.GT.1) GO TO 176
C     DCONBK(N1 ,KB,N) = BND(5,K)*TAF/(1.0+DELF*BND(5,K)/SIG(K,M,1))
      DCONBK(N1 ,KB,N) = BND(5,K)*TAF/
     1   (1.0+DELF*BND(5,K)/SIG(K,M,1)/B(3,K,M))
  176 IF (I.GT.1) GO TO 177
C     DCONBE(N1 ,KB,N) = BND(2,K)*TAT/(1.0+DELT*BND(2,K)/SIG(K,M,1))
      DCONBE(N1 ,KB,N) = BND(2,K)*TAT/
     1   (1.0+DELT*BND(2,K)/SIG(K,M,1)/B(2,K,M))
  177 IF (J.GT.1) GO TO 178
      IF (INRB.EQ.2) GO TO 178
C     DCONRE(N3 ,KB,N) = BND(1,K)*TAL/(1.0+DELL*BND(1,K)/SIG(K,M,1))
      DCONRE(N3 ,KB,N) = BND(1,K)*TAL/
     1 (1.0+DELL*BND(1,K)/SIG(K,M,1)/B(1,K,M))
  178 IF (KB.LT.KBMAX) GO TO 179
C     DCONBK(N1 ,KB+1,N) = BND(6,K)*TABK/(1.0+DELK*BND(6,K)/SIG(K,M,1))
      DCONBK(N1 ,KB+1,N) = BND(6,K)*TABK/
     1  (1.0+DELK*BND(6,K)/SIG(K,M,1)/B(3,K,M))
      IF (DCONBK(N1,KB+1,N).EQ.0.0) DCONBK(N1 ,KB+1,N) = 4096.0E-13
  179 IF (I.LT.IMAX) GO TO 180
C     DCONBE(N2 ,KB,N) = BND(4,K)*TAB/(1.0+DELB*BND(4,K)/SIG(K,M,1))
      DCONBE(N2 ,KB,N) = BND(4,K)*TAB/
     1 (1.0+DELB*BND(4,K)/SIG(K,M,1)/B(2,K,M))
      IF (DCONBE(N2,KB,N).EQ.0.0) DCONBE(N2 ,KB,N) = 4096.0E-13
  180 IF (J.LT.JMAX) GO TO 181
      IF (INRB.GT.1) GO TO 181
C     DCONRE(N4 ,KB,N) = BND(3,K)*TAR/(1.0+DELR*BND(3,K)/SIG(K,M,1))
      DCONRE(N4 ,KB,N) = BND(3,K)*TAR/
     1 (1.0+DELR*BND(3,K)/SIG(K,M,1)/B(1,K,M))
      IF (DCONRE(N4,KB,N).EQ.0.0) DCONRE(N4 ,KB,N) = 4096.0E-13
      GO TO 182
C 181 DCONRE(N4 ,KB,N) = TAR*SIG(K,MR,1)/(DELRR+DELR*SIG(K,MR,1)/ SIG(K,
C    >  M,1))
 181  DCONRE(N4,KB,N)=TAR*SIG(K,MR,1)*B(1,K,MR)/
     >(DELRR+DELR*SIG(K,MR,1)*B(1,K,MR)/(SIG(K,M,1)*B(1,K,M)))
      IF (DCONRE(N4,KB,N).EQ.0.0) DCONRE(N4 ,KB,N) = 4096.0E-13
  182 IF (I.GE.IMAX) GO TO 183
C     DCONBE(N2 ,KB,N) = TAB*SIG(K,MB,1)/(DELBB+DELB*SIG(K,MB,1)/ SIG(K,
C    >  M,1))
      DCONBE(N2,KB,N)=TAB*SIG(K,MB,1)*B(2,K,MB)/
     >(DELBB+DELB*SIG(K,MB,1)*B(2,K,MB)/(SIG(K,M,1)*B(2,K,M)))
      IF (DCONBE(N2,KB,N).EQ.0.0) DCONBE(N2 ,KB,N) = 4096.0E-13
  183 IF (KB.GE.KBMAX) GO TO 184
C     DCONBK(N1 ,KB+1,N) = TABK*SIG(K,MBK,1)/(DELBK+DELK*SIG(K,MBK,1)/
C    > SIG(K,M,1))
      DCONBK(N1,KB+1,N)=TABK*SIG(K,MBK,1)*B(3,K,MBK)/
     >(DELBK+DELK*SIG(K,MBK,1)*B(3,K,MBK)/(SIG(K,M,1)*B(3,K,M)))
      IF (DCONBK(N1,KB+1,N).EQ.0.0) DCONBK(N1 ,KB+1,N) = 4096.0E-13
  184 CONTINUE
      IF (N17.LE.0) GO TO 198
      IF (XMIS(2).GE.0.0) GO TO 185
      IF (BBND(K).EQ.0.0) GO TO 198
  185 IF (KBMAX.LE.1) GO TO 188
      IF (KB.EQ.KBMAX) GO TO 187
      IF (MBK.NE.N17) GO TO 186
C     DCONBK(N1,KB+1,N) = BBND(K)*TABK/(1.0+DELK*BBND(K)/SIG(K,M,1))
      DCONBK(N1,KB+1,N) = BBND(K)*TABK/
     1 (1.0+DELK*BBND(K)/SIG(K,M,1)/B(3,K,M))
      IF (DCONBK(N1,KB+1,N).EQ.0.0) DCONBK(N1 ,KB+1,N) = 4096.0E-13
  186 IF (KB.EQ.1) GO TO 188
  187 IF (MF.NE.N17) GO TO 188
C     DCONBK(N1 ,KB,N) = BBND(K)*TAF/(1.0+DELF*BBND(K)/SIG(K,M,1))
      DCONBK(N1 ,KB,N) = BBND(K)*TAF/
     1 (1.0+DELF*BBND(K)/SIG(K,M,1)/B(3,K,M))
  188 CONTINUE
      IF (IMAX.LE.1) GO TO 193
      IF (I.NE.IMAX) GO TO 190
      IF (INRB.NE.3) GO TO 191
      IF (MB.NE.N17) GO TO 191
C     DCONBE(N2 ,KB,N) = BBND(K)*TAB/(1.0+DELB*BBND(K)/SIG(K,M,1))
      DCONBE(N2 ,KB,N) = BBND(K)*TAB/
     1 (1.0+DELB*BBND(K)/SIG(K,M,1)/B(2,K,M))
      IF (DCONBE(N2,KB,N).EQ.0.0) DCONBE(N2 ,KB,N) = 4096.0E-13
      IF (NGEM.EQ.14) GO TO 189
      DCONRE(N12,KB,N) = DCONBE(N2,KB,N)
      GO TO 191
  189 CONTINUE
      IF ((J/2)*2.NE.J) GO TO 191
      N122 = (J/2-1)*JVXP1+JVXP1
      DCONRE(N122,KB,N) = DCONBE(N2,KB,N)
      GO TO 191
  190 IF (MB.NE.N17) GO TO 191
C     DCONBE(N2 ,KB,N) = BBND(K)*TAB/(1.0+DELB*BBND(K)/SIG(K,M,1))
      DCONBE(N2 ,KB,N) = BBND(K)*TAB/
     1 (1.0+DELB*BBND(K)/SIG(K,M,1)/B(2,K,M))
      IF (DCONBE(N2,KB,N).EQ.0.0) DCONBE(N2 ,KB,N) = 4096.0E-13
  191 IF (I.EQ.1) GO TO 193
      IF (MT.NE.N17) GO TO 193
C     DCONBE(N1 ,KB,N) = BBND(K)*TAT/(1.0+DELT*BBND(K)/SIG(K,M,1))
      DCONBE(N1 ,KB,N) = BBND(K)*TAT/
     1 (1.0+DELT*BBND(K)/SIG(K,M,1)/B(2,K,M))
  193 CONTINUE
      IF (JMAX.LE.1) GO TO 198
      IF (J.LT.JMAX) GO TO 194
      IF (INRB.LE.1) GO TO 197
  194 IF (MR.NE.N17) GO TO 196
C     DCONRE(N4 ,KB,N) = BBND(K)*TAR/(1.0+DELR*BBND(K)/SIG(K,M,1))
      DCONRE(N4 ,KB,N) = BBND(K)*TAR/
     1 (1.0+DELR*BBND(K)/SIG(K,M,1)/B(1,K,M))
      IF (DCONRE(N4,KB,N).EQ.0.0) DCONRE(N4,KB,N) = 4096.0E-13
      IF (INRB.NE.4) GO TO 195
      N11 = IVXP1*JVXP1 - N12
      DCONRE(N11,KB,N) = DCONRE(N12,KB,N)
  195 CONTINUE
  196 IF (J.GT.1) GO TO 197
      IF (INRB.NE.2) GO TO 198
      IF (ML.NE.N17) GO TO 198
C     DCONRE(N12,KB,N) = BBND(K)*TAL/(1.0+DELL*BBND(K)/SIG(K,M,1))
      DCONRE(N12,KB,N) = BBND(K)*TAL/
     1 (1.0+DELL*BBND(K)/SIG(K,M,1)/B(1,K,M))
      IF (DCONRE(N12,KB,N).EQ.0.0) DCONRE(N12,KB,N) = 4096.0E-13
      GO TO 198
  197 IF (ML.NE.N17) GO TO 198
C     DCONRE(N3 ,KB,N) = BBND(K)*TAL/(1.0+DELL*BBND(K)/SIG(K,M,1))
      DCONRE(N3 ,KB,N) = BBND(K)*TAL/
     1 (1.0+DELL*BBND(K)/SIG(K,M,1)/B(1,K,M))
      IF (DCONRE(N3,KB,N).EQ.0.0) DCONRE(N3,KB,N) = 4096.0E-13
  198 CONTINUE
      IF (NEM-3) 230,199,230
  199 KKK = IOVX + N
      IF (N17) 200,200,201
  200 CONTINUE
      IF (J.EQ.JMAX) GO TO 211
      IF (I.EQ.1) GO TO 226
C     DCONRE(N4 ,KB,KKK)=TAH*SIG(K,MH,1)/(DELHT+DELHB*SIG(K,MH,1)/
C    > SIG(K,M,1))
      DCONRE(N4 ,KB,KKK)=TAH*SIG(K,MH,1)*B(1,K,MH)/
     1 (DELHT+DELHB*SIG(K,MH,1)*B(1,K,MH)/ SIG(K,M,1)/B(1,K,M))
      GO TO 210
  201 IF (XMIS(2)) 202,204,204
  202 IF (BBND(K)) 200,203,204
  203 DCONRE(N4 ,KB,KKK)=0
      GO TO 210
  204 IF (MH-N17) 207,205,207
  205 IF (M-N17) 206,203,206
C 206 DCONRE(N4 ,KB,KKK)=BBND(K)*TAH/(1.0+DELHT*BBND(K)/SIG(K,M,1))
  206 DCONRE(N4 ,KB,KKK)=BBND(K)*TAH/
     1 (1.0+DELHT*BBND(K)/SIG(K,M,1)/B(1,K,M))
      GO TO 210
  207 IF (M-N17) 200,208,200
  208 IF (MH) 203,203,209
C 209 DCONRE(N4 ,KB,KKK)=BBND(K)*TAH/(1.0+DELHB*BBND(K)/SIG(K,MH,1))
  209 DCONRE(N4 ,KB,KKK)=BBND(K)*TAH/
     1 (1.0+DELHB*BBND(K)/SIG(K,MH,1)/B(1,K,MH))
  210 IF (J-JMAX) 218,211,211
  211 DCONRE(N4 ,KB,KKK)=0
      IF (I-1) 212,212,216
  212 IF (DCONRE(N4,KB,N)-4096.0E-13) 213,214,213
  213 DCONRE(N4 ,KB,N)=1.5*DCONRE(N4 ,KB,N)/SQUIRE
  214 IF (DCONBE(N1,KB,N)-4096.0E-13) 215,226,215
  215 DCONBE(N1 ,KB,N)=1.5*DCONBE(N1 ,KB,N)/SQUIRE
      GO TO 226
  216 IF (DCONRE(N4,KB,N)-4096.0E-13) 217,218,217
  217 DCONRE(N4 ,KB,N)=2.0*DCONRE(N4 ,KB,N)/SQUIRE
  218 IF (I-IMAX) 226,219,219
  219 DCONRE(N5 ,KB,KKK)=0
      IF (J-1) 220,220,224
  220 IF (DCONRE(N3,KB,N)-4096.0E-13) 221,222,221
  221 DCONRE(N3 ,KB,N)=1.5*DCONRE(N3 ,KB,N)/SQUIRE
  222 IF (DCONBE(N2,KB,N)-4096.0E-13) 223,226,223
  223 DCONBE(N2 ,KB,N)=1.5*DCONBE(N2 ,KB,N)/SQUIRE
      GO TO 226
  224 IF (DCONBE(N2,KB,N)-4096.0E-13) 225,226,225
  225 DCONBE(N2 ,KB,N)=2.0*DCONBE(N2 ,KB,N)/SQUIRE
  226 IF (I-1) 227,227,228
  227 DCONRE(N4 ,KB,KKK)=0
      IF (J.NE.JMAX) DCONBE( J,KB,N)=2.0*DCONBE( J,KB,N)/SQUIRE
  228 IF (J-1) 229,229,230
  229 DCONRE(N5 ,KB,KKK)=0
      IF (I.NE.IMAX) DCONRE(N3 ,KB,N)=2.0*DCONRE(N3 ,KB,N)/SQUIRE
  230 CONTINUE
  231 CONTINUE
  232 CONTINUE
  233 CONTINUE
      IF (INRB.LE.1) GO TO 242
      DO 241 KB=1,KBMAX
      GO TO (240,238,236,234),INRB
  234 CONTINUE
      I = IVX/2
      J2 = IVXP1*JVXP1
      DO 235 LL=1,I
      N12 = LL*JVXP1
      N11 = J2 - N12
      DCONRE(N11,KB,N) = DCONRE(N12,KB,N)
  235 CONTINUE
      GO TO 240
  236 CONTINUE
      DCONRE(JP1IXZ,KB,K) = 4096.0E-13
      LJ = 1
      DO 237 LL = 1,IVX
      N12 = LL*JVXP1
      N14 = JIVX+LJ
      DCONBE(N14,KB,N) = DCONRE(N12,KB,N)
      LJ = LJ+1
      IF (NGEM.EQ.14) LJ = LJ+1
  237 CONTINUE
      GO TO 240
  238 CONTINUE
      DO 239 I=1,IVX
      N12 = I*JVXP1
      N15 = N12 - JVX
      DCONRE(N15,KB,N) = DCONRE(N12,KB,N)
  239 CONTINUE
  240 CONTINUE
  241 CONTINUE
  242 CONTINUE
      DO 249 KB=1,KBMAX
      DO 248 I=1,IMAX
      NN1= (I-1)*JVX
      NN2= (I-1)*JVXP1
      DO 247 J=1,JMAX
      N1= NN1 + J
      N2 = N1 + JVX
      N3= NN2 + J
      N4 = N3 + 1
      N5 = N3 + JVXP1
      NRN = NRGNE(J,I,KB)
      M = NCOMP(NRN)
      D1 = DCONBE(N1 ,KB,N)
      IF (NEM.NE.4) GO TO 243
      IF (J.EQ.1) D2 = 0.0
      IF (J.EQ.1) GO TO 244
      N2 = N2-1
  243 CONTINUE
      D2 = DCONBE(N2 ,KB,N)
  244 CONTINUE
      D3 = DCONRE(N3 ,KB,N)
      D4 = DCONRE(N4 ,KB,N)
      D5 = DCONBK(N1 ,KB,N)
      D6 = DCONBK(N1 ,KB+1,N)
      D9 = SIG(K,M,10)
C
C
      TPTSA = D1+D2+D3+D4+D5+D6+D9*PVOL(NRN)
      IF (NEM.NE.3) GO TO 245
      D7 = DCONRE(N5 ,KB,KKK)
      D8 = DCONRE(N4 ,KB,KKK)
      TPTSA = TPTSA + D7+D8
  245 CONTINUE
      PTSAE(N1 ,KB,N) = TPTSA
      IF ((TPTSA.EQ.0.0).OR.(SIG(K,M,5).EQ.0.0)) GO TO 246
      SPARE(57) = AMAX1(SPARE(57),SIG(K,M,5)*PVOL(NRN)/PTSAE(N1,KB,N))
  246 CONTINUE
  247 CONTINUE
  248 CONTINUE
  249 CONTINUE
      IF (IX37.EQ.0) GO TO 250
      WRITE(IOADJ) AIO
  250 CONTINUE
      IF (IX37.EQ.0) GO TO 251
      END FILE IOADJ
      REWIND IOADJ
  251 CONTINUE
C     DIAGONAL SYMMETRY CHECKOUT
      IF (IX(71).GT.0) GO TO 271
      IF (NUAC(8)) 254,271,252
  252 IF (IMAX-JMAX) 253,262,253
  253 NUAC(8)=0
      WRITE(IOUT,1001)
      GO TO 270
  254 II=IMAX/2
      DO 261 N=1,KMAX
      K = N
      IF (IX37.EQ.0) GO TO 255
      K = 1
      READ(IO15) AIO
  255 CONTINUE
      DO 260I=1,II
      L=IMAX-I+1
      NN1= (I-1)*JVX
      NN2= (L-1)*JVX
      DO 259J=1,JMAX
      M=JMAX-J+1
      N6= NN1 + J
      N7= NN2 + M
      DO 258KB=1,KBMAX
      MT=NRGNE(J,I,KB)
      ML=NRGNE(M,L,KB)
      IF (NCOMP(MT)-NCOMP(ML)) 253,256,253
  256 CONTINUE
      IF (PTSAE(N6,KB,K).EQ.0) GO TO 257
      IF (ABS(PTSAE(N7,KB,K)/PTSAE(N6,KB,K)-1.0)-EPICH) 257,253,253
  257 CONTINUE
  258 CONTINUE
  259 CONTINUE
  260 CONTINUE
  261 CONTINUE
      GO TO 270
  262 CONTINUE
      DO 269 N=1,KMAX
      K = N
      IF (IX37.EQ.0) GO TO 263
      K = 1
      READ(IO15) AIO
  263 CONTINUE
      DO 268 KB=1,KBMAX
      DO 267I=1,IMAX
      NN1= (I-1)*JVX
      DO 266J=1,JMAX
      N6= NN1 + J
      N8 = (J-1)*JVX + I
      MT=NRGNE(J,I,KB)
      ML=NRGNE(I,J,KB)
      IF (NCOMP(MT)-NCOMP(ML)) 253,264,253
  264 CONTINUE
      IF (PTSAE(N8,KB,K).EQ.0) GO TO 265
      IF (ABS(PTSAE(N6,KB,K)/PTSAE(N8,KB,K)-1.0)-EPICH) 265,253,253
  265 CONTINUE
  266 CONTINUE
  267 CONTINUE
  268 CONTINUE
  269 CONTINUE
      NUAC(20)=0
  270 CONTINUE
      IF (IX37.GT.0) REWIND IO15
  271 CONTINUE
      IF (SPARE(51).NE.0.0) SPARE(51) = -1.0/SPARE(51)
      IF (SPARE(57).NE.0.0) SPARE(57) = -1.0/SPARE(57)
      IF (IX(71).GT.0) IX(5)= 0
      RETURN
C
 1000 FORMAT(1H0,'ERROR STOP',4I6)
 1001 FORMAT(1H0,'DIAGONAL SYMMETRY OPTION DENIED')
 1002 FORMAT (// '  BITTE GRUPPENDIMENSIONIERUNG VON FELD B IN UP KNST G
     1ROESSER ALS',I4,' MACHEN')
 1003 FORMAT(// '  BITTE ZONENDIMENSIONIERUNG VON FELD B IN UP KNST GROE
     1SSER ALS',I5,' MACHEN')
 1004 FORMAT (18I4)
 1005 FORMAT (// '  JZMI=',I5,'  JZMA=',I5,'IRICHT=',I5,'IRIC=',I5 /
     1'  DA STIMMT WAS NICHT BEIM EINLESEN DER BEHRENSKORREKTUR')
 1006 FORMAT (6E12.0)
 1007 FORMAT (//// '   THE DIFFUSION COEFFICIENT HAS BEEN MULTIPLIED WIT
     1H THE FOLLOWING FACTORS' /)
 1008 FORMAT (// '   ZONE',I4,' TO',I4,'  GROUP    X-DIRECTION    Y-DIRE
     1CTION    Z-DIRECTION' /)
 1009 FORMAT (20X,I4,4X,1PE12.5,3X,E12.5,3X,E12.5)
1101  FORMAT(///'BEI NUAC(5)=',I3,
     1 'MUSS B(1,..,..)=B(2,..,..) SEIN.    -->  *** STOP ***')
      END
T.RTitleUserPersonal
Name
DateLines
1252.1GEM'sGEMGRP::PIEPERTue Apr 08 1997 08:195
This is dying with the latest gem in f90 auau bl36.
The loop transformer is having trouble generating control flow.
I'll take a look. Feel free to open a GEM_BUGS note; if noone else does I will
when I figure out how to fix it. I assume that if this is fixable you will want
it to go into BL33 for the upcoming update kit?
1252.2we're looking into it!TLE::WHITLOCKStan WhitlockTue Apr 08 1997 09:5615
>>This is dying with the latest gem in f90 auau bl36.
>>The loop transformer is having trouble generating control flow.
>>I'll take a look. Feel free to open a GEM_BUGS note; if noone else does I will
>>when I figure out how to fix it. I assume that if this is fixable you will want
>>it to go into BL33 for the upcoming update kit?

John, thanks for taking a look.

Everybody, what language is John speaking?  He's speaking GEM-eze to the Fortran
developers.

Rob, we'll look into the bug and when it gets fixed, we'll see about making the
fix available.  In the meantime, "/opt=level=4" is the work-around.

/Stan
1252.3QUARK::LIONELFree advice is worth every centTue Apr 08 1997 09:563
    We would want a BL33 fix, yes.
    
    		Steve
1252.4more optimal workaroundGEMGRP::PIEPERTue Apr 08 1997 12:493
Can't they just use /notransform_loops ?

Sorry for the GEM-ese. Wait 'til you see the bug report.
1252.5cross-referenceGEMGRP::PIEPERTue Apr 08 1997 13:111
This bug is being tracked in GEM_BUGS 6085.
1252.6FixedTLE::EKLUNDAlways smiling on the inside!Thu May 01 1997 16:095
    	This problem is fixed.  The next kit should contain the fix.
    
    Cheers!
    Dave Eklund