Encyclopaedia Index

A shell-and-tube heat-exchanger is used to exemplify the essential ideas of the HEXAGON model devised by D.B Spalding and S.V. Zhubrin.

This may be the first to have shown how the thermo-hydraulics of the shell-side and tube-side fluids can be computed simultaneously.

Moreover the displacements and thermal stresses in tubes and shell are also computed as part of a full SFT (i.e. Solid-Fluid-Thermal) analysis .

The heat exchanger considered is an idealised two-dimensional one, having two baffles within the shell and U-bend tubes connected with a two-part header.

The geometry is as shown.

The tube fluid is water and the shell fluid is air. Their flow patterns are indicated by the calculated velocities, where the white vectors and coloured vectors represent shell- and tube-side fluid respectively.

The MUSES method is employed, the whole volume occupied by the heat exchanger being represented three times, namely for:

  1. shell-fluid velocities and temperature;
  2. tube-fluid velocities and temperature; and
  3. metal temperatures and temperature.

The following figures show calculated displacements and

the Y-component of normal thermal stresses.

The model is set up wholly by way of a standard PHOENICS Q1 file, which contains PLANT statements (listed below). These:

Therafter, when the satellite is run, a corresponding GROUND file is written and compiled, without further user intervention. This file is approximately 550 lines in length, and error-free! Obviously, the advantages to the user are very great.


What the user puts into Q1

The user puts into the Q1 file in Group 9:

RHO1=GRND
{PRPT01} DEN1=1000.
REGION() 1
{PRPT02} DEN1=1000.
REGION() 2
{PRPT03} DEN1=1.2
REGION() 3

The above three statements, followed by the pointer RHO1=GRND and parameterized REGION qualifiers, instruct PLANT to make the density distributions as the distribution of in-cell marker values dictates.

ENUL=GRND
{PRPT05} VISL=1.*SQRT(U1**2+V1**2)*WDIS
REGION() 1
{PRPT06} VISL=0.01
REGION() 2
{PRPT07} VISL=1.*SQRT(U1**2+V1**2)*WDIS
REGION() 3

The above three statements do the same for viscosities as the previous three have done for densities. Note that the viscosities in the domains marked 1 and 3 are made proportional to the products of local velocity magnitudes and distances to the nearest wall.

The user puts into the Q1 file in Group 13:

PATCH(SS002U,PHASEM,1,10,1,NY,1,NZ,1,1)
{SORC01} CO=.2*(U1**2+V1**2)**0.15
COVAL(SS002U,U1,GRND,0.0)
{SORC02} CO=.2*(U1**2+V1**2)**0.15
COVAL(SS002U,V1,GRND,0.0)

Momentum sinks are introduced by above formulae over all cells having marker value appearing in the number of PATCH name, 002.

PATCH(SS003H,PHASEM,1,10,1,NY,1,NZ,1,1)
{SORC03} CO=2.2*(U1**2+V1**2)**0.25
COVAL(SS003H,U1,GRND,0.0)
{SORC04} CO=2.2*(U1**2+V1**2)**0.25
COVAL(SS003H,V1,GRND,0.0)

Momentum sinks are introduced by above formulae over all cells having marker value appearing in the number of PATCH name, 003.

** Tube fluid heat transfer coefficient
STORE(ALF2);FIINIT(ALF2)=0.0
{SC0601} ALF2=1.+1.*SQRT(U1**2+V1**2+TINY)
REGION() 2
** Shell fluid heat transfer coefficient
STORE(ALF3);FIINIT(ALF3)=0.0
{SC0602} ALF3=1.+3.*SQRT(U1**2+V1**2+TINY)
REGION() 3

Tube and shell fluid heat transfer coefficients, ALF2 and ALF3, are made by aboves dependent on local velocity magnitudes over the REGIONs marked 2 and 3 correspondingly.

** Overall heat transfer coefficient
STORE(HTC);FIINIT(HTC)=0.0
{SC0603} HTC=1./(1/ALF2+1/ALF3[,-IG(1),])
REGION() 2
{SC0604} HTC=1./(1/ALF3 +1/ALF2[,+IG(1),])
REGION() 3

Overall heat transfer coefficient, HTC, distribution are calculated by reference to appropriate local heat transfer coefficients in REGIONs 2 and 3.

** Heat-exchange with shell-fluid, throughout the shell.
PATCH(SS002T,PHASEM,1,NX,1,NY,1,NZ,1,1)
{SORC05} CO =HTC
{SORC05} VAL=TEMP[,-IG(1),]
COVAL(SS002T,TEMP,GRND,GRND)
** Heat-exchange with tube-fluid, throughout the shell.
PATCH(SS003S,PHASEM,1,NX,1,NY,1,NZ,1,1)
{SORC06} CO =HTC
{SORC06} VAL=TEMP[,+IG(1),]
COVAL(SS003S,TEMP,GRND,GRND)

In the above, the PATCH names indicate the sub-domain cell markers , 2 and 3, over which the heat-exchange sources are applied. The indicial operations for TEMP are arranged in appropriate manner.

** Transfer shell fluid temperatures
PATCH(SS005T,CELL,1,NX,1,NY,1,NZ,1,1)
{SORC10} CO=1.e10
{SORC10} VAL=TEMP[-13,-6,]
COVAL(SS005T,TEM1,GRND,GRND)

The temperatures of the shell fluid, TEMP, are transferred into the stress-analysis sub-domain, MARK=5, to be used as TEM1.

** Tube-wall temperature
PATCH(SS100T,CELL,1,NX,1,NY,1,NZ,1,1)
{SORC11} CO=1.e10
{SORC11} VAL=(ALF2[-13,+6,]*TEMP[-13,+6,]+$
ALF3[-13,-6,]*TEMP[-13,-6,])$
/(ALF2[-13,+6,]+ALF3[-13,-6,]+TINY)
COVAL(SS100T,TEM1,GRND,GRND)

Here the tube wall temperatures, TEM1, are calculated in the sub-domain indicated by MARK=100 as PATCH name number specifies. TEM1s are computed via shell and tube fluid temperatures and heat transfer coefficients transferred from corresponding sub-domains as indicial numbers show.

** Transfer the header temperatures
PATCH(SS004T,CELL,1,NX,1,NY,1,NZ,1,1)
{SORC12} CO=1.e10
{SORC12} VAL=TEMP[-13,+3,]
COVAL(SS004T,TEM1,GRND,GRND)

The temperatures of the header-tube fluid, TEMP, are transferred into the stress-analysis sub-domain, MARK=4, to be used as TEM1.

The user puts into the Q1 file in Group 19:

** Tube-fluid velocities transfer
STORE(UU1,VV1)
{SC0605} UU1=U1[-13,+3,]
REGION(14,23,22,29,1,NZ)
{SC0606} VV1=V1[-13,+3,]
REGION(14,23,22,29,1,NZ)
{SC0607} UU1=U1[-13,+6,]
REGION(14,23,7,18,1,NZ)
{SC0608} VV1=V1[-13,+6,]
REGION(14,23,7,18,1,NZ)

Tube fluid velocities are transferred from where they have been calculated for easy visualisation.

** Shell fluid velocities transfer
STORE(U2,V2)
{SC0609} U2=U1[-13,-6,]
REGION(14,23,7,18,1,NZ)
{SC0610} V2=V1[-13,-6,]
REGION(14,23,7,18,1,NZ)

Shell-fluid velocities are transferred from where they have been calculated for easy visualisation.


In the GROUND file, PLANT inserts the following statements:



 C      Property name: PRPT01

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFMARK=L0F(INAME('MARK'))

       LFDEN1 =L0F(AUX(DEN1  ))

       DO 90101 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 90101 IY=IYF     ,IYL

        I=IY+IADD

       L0DEN1=LFDEN1+I

       L0MARK=LFMARK+I

        INMARK=NINT(F(L0MARK))

         IF(INMARK.EQ.1  ) THEN

      F(L0DEN1  )=1000.

         ENDIF

 90101  CONTINUE

       ENDIF

      ENDIF

 C      Property name: PRPT02

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFMARK=L0F(INAME('MARK'))

       LFDEN1 =L0F(AUX(DEN1  ))

       DO 90102 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 90102 IY=IYF     ,IYL

        I=IY+IADD

       L0DEN1=LFDEN1+I

       L0MARK=LFMARK+I

        INMARK=NINT(F(L0MARK))

         IF(INMARK.EQ.2  ) THEN

      F(L0DEN1  )=1000.

         ENDIF

 90102  CONTINUE

       ENDIF

      ENDIF

 C      Property name: PRPT03

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFMARK=L0F(INAME('MARK'))

       LFDEN1 =L0F(AUX(DEN1  ))

       DO 90103 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 90103 IY=IYF     ,IYL

        I=IY+IADD

       L0DEN1=LFDEN1+I

       L0MARK=LFMARK+I

        INMARK=NINT(F(L0MARK))

         IF(INMARK.EQ.3  ) THEN

      F(L0DEN1  )=1.2

         ENDIF

 90103  CONTINUE

       ENDIF

      ENDIF

 C      Property name: PRPT05

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFMARK=L0F(INAME('MARK'))

       LFVISL =L0F(AUX(VISL  ))

       LFU1  =L0F(U1    )

       LFV1  =L0F(V1    )

       LFWDIS=L0F(INAME('WDIS  '))

       DO 90605 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 90605 IY=IYF     ,IYL

        I=IY+IADD

       L0VISL=LFVISL+I

       L0MARK=LFMARK+I

        INMARK=NINT(F(L0MARK))

         IF(INMARK.EQ.1  ) THEN

       L0U1  =LFU1  +I

       L0V1  =LFV1  +I

       L0WDIS=LFWDIS+I

      F(L0VISL  )=1.*SQRT(F(L0U1)**2+F(L0V1)**2)*F(L0WDIS)

         ENDIF

 90605  CONTINUE

       ENDIF

      ENDIF

 C      Property name: PRPT06

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFMARK=L0F(INAME('MARK'))

       LFVISL =L0F(AUX(VISL  ))

       DO 90606 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 90606 IY=IYF     ,IYL

        I=IY+IADD

       L0VISL=LFVISL+I

       L0MARK=LFMARK+I

        INMARK=NINT(F(L0MARK))

         IF(INMARK.EQ.2  ) THEN

      F(L0VISL  )=0.01

         ENDIF

 90606  CONTINUE

       ENDIF

      ENDIF

 C      Property name: PRPT07

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFMARK=L0F(INAME('MARK'))

       LFVISL =L0F(AUX(VISL  ))

       LFU1  =L0F(U1    )

       LFV1  =L0F(V1    )

       LFWDIS=L0F(INAME('WDIS  '))

       DO 90607 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 90607 IY=IYF     ,IYL

        I=IY+IADD

       L0VISL=LFVISL+I

       L0MARK=LFMARK+I

        INMARK=NINT(F(L0MARK))

         IF(INMARK.EQ.3  ) THEN

       L0U1  =LFU1  +I

       L0V1  =LFV1  +I

       L0WDIS=LFWDIS+I

      F(L0VISL  )=1.*SQRT(F(L0U1)**2+F(L0V1)**2)*F(L0WDIS)

         ENDIF

 90607  CONTINUE

       ENDIF

      ENDIF

 C      Source name: SORC01

      IF(INDVAR.EQ.INAME('U1    ').AND.NPATCH.EQ.'SS002U  ') THEN

       LFCO  =L0F(CO )

       LFMARK=L0F(INAME('MARK'))

       LFU1  =L0F(U1    )

       LFV1  =L0F(V1    )

       DO 13701 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13701 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.002) THEN

       L0U1  =LFU1  +I

       L0V1  =LFV1  +I

      F(LFCO +I)=.2*(F(L0U1)**2+F(L0V1)**2)**0.15

         ELSE

      F(LFCO +I)=0.

         ENDIF

 13701  CONTINUE

      ENDIF

 C      Source name: SORC02

      IF(INDVAR.EQ.INAME('V1    ').AND.NPATCH.EQ.'SS002U  ') THEN

       LFCO  =L0F(CO )

       LFMARK=L0F(INAME('MARK'))

       LFU1  =L0F(U1    )

       LFV1  =L0F(V1    )

       DO 13702 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13702 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.002) THEN

       L0U1  =LFU1  +I

       L0V1  =LFV1  +I

      F(LFCO +I)=.2*(F(L0U1)**2+F(L0V1)**2)**0.15

         ELSE

      F(LFCO +I)=0.

         ENDIF

 13702  CONTINUE

      ENDIF

 C      Source name: SORC03

      IF(INDVAR.EQ.INAME('U1    ').AND.NPATCH.EQ.'SS003H  ') THEN

       LFCO  =L0F(CO )

       LFMARK=L0F(INAME('MARK'))

       LFU1  =L0F(U1    )

       LFV1  =L0F(V1    )

       DO 13703 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13703 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.003) THEN

       L0U1  =LFU1  +I

       L0V1  =LFV1  +I

      F(LFCO +I)=2.2*(F(L0U1)**2+F(L0V1)**2)**0.25

         ELSE

      F(LFCO +I)=0.

         ENDIF

 13703  CONTINUE

      ENDIF

 C      Source name: SORC04

      IF(INDVAR.EQ.INAME('V1    ').AND.NPATCH.EQ.'SS003H  ') THEN

       LFCO  =L0F(CO )

       LFMARK=L0F(INAME('MARK'))

       LFU1  =L0F(U1    )

       LFV1  =L0F(V1    )

       DO 13704 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13704 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.003) THEN

       L0U1  =LFU1  +I

       L0V1  =LFV1  +I

      F(LFCO +I)=2.2*(F(L0U1)**2+F(L0V1)**2)**0.25

         ELSE

      F(LFCO +I)=0.

         ENDIF

 13704  CONTINUE

      ENDIF

 C      Source name: SORC05

      IF(INDVAR.EQ.INAME('TEMP  ').AND.NPATCH.EQ.'SS002T  ') THEN

       LFCO  =L0F(CO )

       LFMARK=L0F(INAME('MARK'))

       LFHTC =L0F(INAME('HTC   '))

       DO 13705 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13705 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.002) THEN

       L0HTC =LFHTC +I

      F(LFCO +I)=F(L0HTC)

         ELSE

      F(LFCO +I)=0.

         ENDIF

 13705  CONTINUE

      ENDIF

 C      Source name: SORC06

      IF(INDVAR.EQ.INAME('TEMP  ').AND.NPATCH.EQ.'SS003S  ') THEN

       LFCO  =L0F(CO )

       LFMARK=L0F(INAME('MARK'))

       LFHTC =L0F(INAME('HTC   '))

       DO 13706 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13706 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.003) THEN

       L0HTC =LFHTC +I

      F(LFCO +I)=F(L0HTC)

         ELSE

      F(LFCO +I)=0.

         ENDIF

 13706  CONTINUE

      ENDIF

 C      Source name: SORC10

      IF(INDVAR.EQ.INAME('TEM1  ').AND.NPATCH.EQ.'SS005T  ') THEN

       LFCO  =L0F(CO )

       LFMARK=L0F(INAME('MARK'))

       DO 13710 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13710 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.005) THEN

      F(LFCO +I)=1.E10

         ELSE

      F(LFCO +I)=0.

         ENDIF

 13710  CONTINUE

      ENDIF

 C      Source name: SORC11

      IF(INDVAR.EQ.INAME('TEM1  ').AND.NPATCH.EQ.'SS100T  ') THEN

       LFCO  =L0F(CO )

       LFMARK=L0F(INAME('MARK'))

       DO 13711 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13711 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.100) THEN

      F(LFCO +I)=1.E10

         ELSE

      F(LFCO +I)=0.

         ENDIF

 13711  CONTINUE

      ENDIF

 C      Source name: SORC12

      IF(INDVAR.EQ.INAME('TEM1  ').AND.NPATCH.EQ.'SS004T  ') THEN

       LFCO  =L0F(CO )

       LFMARK=L0F(INAME('MARK'))

       DO 13712 IX=IXF    ,IXL 

        IADD=NY*(IX-1)

       DO 13712 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.004) THEN

      F(LFCO +I)=1.E10

         ELSE

      F(LFCO +I)=0.

         ENDIF

 13712  CONTINUE

      ENDIF

 C      Source name: SORC05

      IF(INDVAR.EQ.INAME('TEMP  ').AND.NPATCH.EQ.'SS002T  ') THEN

       LFCO  =L0F(CO)

       LFVAL =L0F(VAL)

       LFMARK=L0F(INAME('MARK'))

       LFTEMP=L0F(INAME('TEMP  '))

       DO 13805 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13805 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.002) THEN

       L0TEMP=LFTEMP+I

      F(LFVAL+I)=F(L0TEMP-IG(1))

         ELSE

      F(LFVAL+I)=0.

      F(LFCO +I)=0.

         ENDIF

 13805  CONTINUE

      ENDIF

 C      Source name: SORC06

      IF(INDVAR.EQ.INAME('TEMP  ').AND.NPATCH.EQ.'SS003S  ') THEN

       LFCO  =L0F(CO)

       LFVAL =L0F(VAL)

       LFMARK=L0F(INAME('MARK'))

       LFTEMP=L0F(INAME('TEMP  '))

       DO 13806 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13806 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.003) THEN

       L0TEMP=LFTEMP+I

      F(LFVAL+I)=F(L0TEMP+IG(1))

         ELSE

      F(LFVAL+I)=0.

      F(LFCO +I)=0.

         ENDIF

 13806  CONTINUE

      ENDIF

 C      Source name: SORC10

      IF(INDVAR.EQ.INAME('TEM1  ').AND.NPATCH.EQ.'SS005T  ') THEN

       LFCO  =L0F(CO)

       LFVAL =L0F(VAL)

       LFMARK=L0F(INAME('MARK'))

       LFTEMP=L0F(INAME('TEMP  '))

       DO 13810 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13810 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.005) THEN

       L0TEMP=LFTEMP+I

      F(LFVAL+I)=F(L0TEMP-NY*13-6)

         ELSE

      F(LFVAL+I)=0.

      F(LFCO +I)=0.

         ENDIF

 13810  CONTINUE

      ENDIF

 C      Source name: SORC11

      IF(INDVAR.EQ.INAME('TEM1  ').AND.NPATCH.EQ.'SS100T  ') THEN

       LFCO  =L0F(CO)

       LFVAL =L0F(VAL)

       LFMARK=L0F(INAME('MARK'))

       LFALF2=L0F(INAME('ALF2  '))

       LFTEMP=L0F(INAME('TEMP  '))

       LFALF3=L0F(INAME('ALF3  '))

       DO 13811 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13811 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.100) THEN

       L0ALF2=LFALF2+I

       L0TEMP=LFTEMP+I

       L0ALF3=LFALF3+I

      F(LFVAL+I)=(F(L0ALF2-NY*13+6)*F(L0TEMP-NY*13+6)+

     1F(L0ALF3-NY*13-6)*F(L0TEMP-NY*13-6))/(F(L0ALF2-NY*13+6)+

     1F(L0ALF3-NY*13-6)+TINY)

         ELSE

      F(LFVAL+I)=0.

      F(LFCO +I)=0.

         ENDIF

 13811  CONTINUE

      ENDIF

 C      Source name: SORC12

      IF(INDVAR.EQ.INAME('TEM1  ').AND.NPATCH.EQ.'SS004T  ') THEN

       LFCO  =L0F(CO)

       LFVAL =L0F(VAL)

       LFMARK=L0F(INAME('MARK'))

       LFTEMP=L0F(INAME('TEMP  '))

       DO 13812 IX=IXF     ,IXL

        IADD=NY*(IX-1)

       DO 13812 IY=IYF     ,IYL

        I=IY+IADD

        INMARK=NINT(F(LFMARK+I))

         IF(INMARK.EQ.004) THEN

       L0TEMP=LFTEMP+I

      F(LFVAL+I)=F(L0TEMP-NY*13+3)

         ELSE

      F(LFVAL+I)=0.

      F(LFCO +I)=0.

         ENDIF

 13812  CONTINUE

      ENDIF

 C      Special calls name: SC0601

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFMARK=L0F(INAME('MARK'))

       LFALF2 =L0F(INAME('ALF2  '))

       LFU1  =L0F(U1    )

       LFV1  =L0F(V1    )

       DO 19601 IX=1       ,NX

        IADD=NY*(IX-1)

       DO 19601 IY=1       ,NY

        I=IY+IADD

       L0ALF2=LFALF2+I

       L0MARK=LFMARK+I

        INMARK=NINT(F(L0MARK))

         IF(INMARK.EQ.2  ) THEN

       L0U1  =LFU1  +I

       L0V1  =LFV1  +I

      F(L0ALF2  )=1.+1.*SQRT(F(L0U1)**2+F(L0V1)**2+TINY)

         ENDIF

 19601  CONTINUE

       ENDIF

      ENDIF

 C      Special calls name: SC0602

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFMARK=L0F(INAME('MARK'))

       LFALF3 =L0F(INAME('ALF3  '))

       LFU1  =L0F(U1    )

       LFV1  =L0F(V1    )

       DO 19602 IX=1       ,NX

        IADD=NY*(IX-1)

       DO 19602 IY=1       ,NY

        I=IY+IADD

       L0ALF3=LFALF3+I

       L0MARK=LFMARK+I

        INMARK=NINT(F(L0MARK))

         IF(INMARK.EQ.3  ) THEN

       L0U1  =LFU1  +I

       L0V1  =LFV1  +I

      F(L0ALF3  )=1.+3.*SQRT(F(L0U1)**2+F(L0V1)**2+TINY)

         ENDIF

 19602  CONTINUE

       ENDIF

      ENDIF

 C      Special calls name: SC0603

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFMARK=L0F(INAME('MARK'))

       LFHTC  =L0F(INAME('HTC   '))

       LFALF2=L0F(INAME('ALF2  '))

       LFALF3=L0F(INAME('ALF3  '))

       DO 19603 IX=1       ,NX

        IADD=NY*(IX-1)

       DO 19603 IY=1       ,NY

        I=IY+IADD

       L0HTC =LFHTC +I

       L0MARK=LFMARK+I

        INMARK=NINT(F(L0MARK))

         IF(INMARK.EQ.2  ) THEN

       L0ALF2=LFALF2+I

       L0ALF3=LFALF3+I

      F(L0HTC   )=1./(1/F(L0ALF2)+1/F(L0ALF3-IG(1)))

         ENDIF

 19603  CONTINUE

       ENDIF

      ENDIF

 C      Special calls name: SC0604

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFMARK=L0F(INAME('MARK'))

       LFHTC  =L0F(INAME('HTC   '))

       LFALF3=L0F(INAME('ALF3  '))

       LFALF2=L0F(INAME('ALF2  '))

       DO 19604 IX=1       ,NX

        IADD=NY*(IX-1)

       DO 19604 IY=1       ,NY

        I=IY+IADD

       L0HTC =LFHTC +I

       L0MARK=LFMARK+I

        INMARK=NINT(F(L0MARK))

         IF(INMARK.EQ.3  ) THEN

       L0ALF3=LFALF3+I

       L0ALF2=LFALF2+I

      F(L0HTC   )=1./(1/F(L0ALF3)+1/F(L0ALF2+IG(1)))

         ENDIF

 19604  CONTINUE

       ENDIF

      ENDIF

 C      Special calls name: SC0605

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFUU1  =L0F(INAME('UU1   '))

       LFU1  =L0F(U1    )

       DO 19605 IX=14      ,23

        IADD=NY*(IX-1)

       DO 19605 IY=22      ,29

        I=IY+IADD

       L0UU1 =LFUU1 +I

       L0U1  =LFU1  +I

 19605 F(L0UU1   )=F(L0U1-NY*13+3)

       ENDIF

      ENDIF

 C      Special calls name: SC0606

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFVV1  =L0F(INAME('VV1   '))

       LFV1  =L0F(V1    )

       DO 19606 IX=14      ,23

        IADD=NY*(IX-1)

       DO 19606 IY=22      ,29

        I=IY+IADD

       L0VV1 =LFVV1 +I

       L0V1  =LFV1  +I

 19606 F(L0VV1   )=F(L0V1-NY*13+3)

       ENDIF

      ENDIF

 C      Special calls name: SC0607

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFUU1  =L0F(INAME('UU1   '))

       LFU1  =L0F(U1    )

       DO 19607 IX=14      ,23

        IADD=NY*(IX-1)

       DO 19607 IY=7       ,18

        I=IY+IADD

       L0UU1 =LFUU1 +I

       L0U1  =LFU1  +I

 19607 F(L0UU1   )=F(L0U1-NY*13+6)

       ENDIF

      ENDIF

 C      Special calls name: SC0608

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFVV1  =L0F(INAME('VV1   '))

       LFV1  =L0F(V1    )

       DO 19608 IX=14      ,23

        IADD=NY*(IX-1)

       DO 19608 IY=7       ,18

        I=IY+IADD

       L0VV1 =LFVV1 +I

       L0V1  =LFV1  +I

 19608 F(L0VV1   )=F(L0V1-NY*13+6)

       ENDIF

      ENDIF

 C      Special calls name: SC0609

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFU2   =L0F(U2    )

       LFU1  =L0F(U1    )

       DO 19609 IX=14      ,23

        IADD=NY*(IX-1)

       DO 19609 IY=7       ,18

        I=IY+IADD

       L0U2  =LFU2  +I

       L0U1  =LFU1  +I

 19609 F(L0U2    )=F(L0U1-NY*13-6)

       ENDIF

      ENDIF

 C      Special calls name: SC0610

      IF(ISTEP.GE.1       .AND.ISTEP.LE.LSTEP   ) THEN

       IF(IZ.GE.1       .AND.IZ.LE.NZ      ) THEN

       LFV2   =L0F(V2    )

       LFV1  =L0F(V1    )

       DO 19610 IX=14      ,23

        IADD=NY*(IX-1)

       DO 19610 IY=7       ,18

        I=IY+IADD

       L0V2  =LFV2  +I

       L0V1  =LFV1  +I

 19610 F(L0V2    )=F(L0V1-NY*13-6)

       ENDIF

      ENDIF

Click here to return to "Contents"