xref: /phasta/phSolver/compressible/bflux.f (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
1*59599516SKenneth E. Jansen        subroutine Bflux (y,         ac,        x,
2*59599516SKenneth E. Jansen     &                    shp,       shgl,      shpb,
3*59599516SKenneth E. Jansen     &                    shglb,     nodflx,    ilwork)
4*59599516SKenneth E. Jansenc
5*59599516SKenneth E. Jansenc----------------------------------------------------------------------
6*59599516SKenneth E. Jansenc
7*59599516SKenneth E. Jansenc This routine :
8*59599516SKenneth E. Jansenc   1. computes the boundary fluxes
9*59599516SKenneth E. Jansenc   2. prints the results in the file [FLUX.lstep]
10*59599516SKenneth E. Jansenc   3. prints the primitives variables in the files [OUTPUT.lstep]
11*59599516SKenneth E. Jansenc      and [OUTCHM.lstep] (2-D computations only)
12*59599516SKenneth E. Jansenc   4. calls the restar routine
13*59599516SKenneth E. Jansenc
14*59599516SKenneth E. Jansenc
15*59599516SKenneth E. Jansenc output:
16*59599516SKenneth E. Jansenc  in file FLUX.lstep:
17*59599516SKenneth E. Jansenc     run title
18*59599516SKenneth E. Jansenc     step number, run time
19*59599516SKenneth E. Jansenc     node_number
20*59599516SKenneth E. Jansenc     x_1      ... x_nsd                 ! coordinates
21*59599516SKenneth E. Jansenc     normal_1 ... normal_nsd            ! outward normal direction
22*59599516SKenneth E. Jansenc     tau_1n   ... tau_nsd n             ! boundary viscous flux
23*59599516SKenneth E. Jansenc     q_n                                ! boundary head flux
24*59599516SKenneth E. Jansenc     ro  u_1  ... u_nsd  t  p  s  Mach  ! primitive variables
25*59599516SKenneth E. Jansenc     y_N2 y_O2 y_NO y_N y_O             ! gas composition
26*59599516SKenneth E. Jansenc
27*59599516SKenneth E. Jansenc  in file OUTPUT.lstep:
28*59599516SKenneth E. Jansenc     run title
29*59599516SKenneth E. Jansenc     step number, run time, gamma, Rgas
30*59599516SKenneth E. Jansenc     density, velocity vector and temperature
31*59599516SKenneth E. Jansenc
32*59599516SKenneth E. Jansenc  in file OUTCHM.lstep:
33*59599516SKenneth E. Jansenc     run title
34*59599516SKenneth E. Jansenc     step number, run time, gamma, Rgas
35*59599516SKenneth E. Jansenc     pressure, entropy, Mach, y_N2, y_O2, y_NO, y_N and y_O
36*59599516SKenneth E. Jansenc
37*59599516SKenneth E. Jansenc
38*59599516SKenneth E. Jansenc Zdenek Johan, Summer 1991.
39*59599516SKenneth E. Jansenc----------------------------------------------------------------------
40*59599516SKenneth E. Jansenc
41*59599516SKenneth E. Jansen	use pointer_data
42*59599516SKenneth E. Jansenc
43*59599516SKenneth E. Jansen        include "common.h"
44*59599516SKenneth E. Jansenc
45*59599516SKenneth E. Jansen        dimension y(nshg,ndof),           ac(nshg,ndof),
46*59599516SKenneth E. Jansen     &            x(numnp,nsd),
47*59599516SKenneth E. Jansen     &            shp(MAXTOP,maxsh,MAXQPT),
48*59599516SKenneth E. Jansen     &            shgl(MAXTOP,nsd,maxsh,MAXQPT),
49*59599516SKenneth E. Jansen     &            shpb(MAXTOP,maxsh,MAXQPT),
50*59599516SKenneth E. Jansen     &            shglb(MAXTOP,nsd,maxsh,MAXQPT),
51*59599516SKenneth E. Jansen     &            nodflx(numflx)
52*59599516SKenneth E. Jansenc
53*59599516SKenneth E. Jansen        dimension invflx(nshg),             flxres(nshg,nflow),
54*59599516SKenneth E. Jansen     &            flxLHS(nshg,1),           flxnrm(nshg,nsd),
55*59599516SKenneth E. Jansen     &            temp(nshg),               itemp(numflx),
56*59599516SKenneth E. Jansen     &            q(nshg,ndof),             qq(nshg,8),
57*59599516SKenneth E. Jansen     &            ilwork(nlwork)
58*59599516SKenneth E. Jansenc
59*59599516SKenneth E. Jansen        character*20 fname1,                 fname2,
60*59599516SKenneth E. Jansen     &               fmt1,                   fmt2
61*59599516SKenneth E. Jansenc
62*59599516SKenneth E. Jansenc.... ************************>>  Restart  <<***************************
63*59599516SKenneth E. Jansenc
64*59599516SKenneth E. Jansenc.... set up the timer
65*59599516SKenneth E. Jansenc
66*59599516SKenneth E. Jansen        call timer ('Output  ')
67*59599516SKenneth E. Jansenc
68*59599516SKenneth E. Jansenc.... call restart option
69*59599516SKenneth E. Jansenc
70*59599516SKenneth E. Jansen        q(:,1:ndof)=y(:,1:ndof)
71*59599516SKenneth E. Jansen
72*59599516SKenneth E. Jansen        if (irs .ge. 1) call restar ('out ',  q,ac)
73*59599516SKenneth E. Jansenc
74*59599516SKenneth E. Jansenc      No Flux output for now KENJ
75*59599516SKenneth E. Jansenc
76*59599516SKenneth E. Jansen        return
77*59599516SKenneth E. Jansenc
78*59599516SKenneth E. Jansenc.... scale the primitive variables for output
79*59599516SKenneth E. Jansenc
80*59599516SKenneth E. Jansen        q(:,1)    = ro     * q(:,1)
81*59599516SKenneth E. Jansen        q(:,2)    = vel    * q(:,2)
82*59599516SKenneth E. Jansen        q(:,3)    = vel    * q(:,3)
83*59599516SKenneth E. Jansen        if (nsd .eq. 3)
84*59599516SKenneth E. Jansen     &  q(:,4)    = vel    * q(:,4)
85*59599516SKenneth E. Jansen        q(:,nflow) = temper * q(:,nflow)
86*59599516SKenneth E. Jansen        qq(:,1)   = press  * qq(:,1)
87*59599516SKenneth E. Jansen        qq(:,2)   = entrop * qq(:,2)
88*59599516SKenneth E. Jansenc
89*59599516SKenneth E. Jansenc.... *************************>>  Output  <<***************************
90*59599516SKenneth E. Jansenc
91*59599516SKenneth E. Jansenc.... output only for 2-D computations
92*59599516SKenneth E. Jansenc
93*59599516SKenneth E. Jansen        if ((irs .eq. 2) .and. (nsd .eq. 2)) then
94*59599516SKenneth E. Jansenc
95*59599516SKenneth E. Jansenc.... get the file names ('output.'lstep) and ('outchm.'lstep)
96*59599516SKenneth E. Jansenc
97*59599516SKenneth E. Jansen        itmp = 1
98*59599516SKenneth E. Jansen        if (lstep .gt. 0) itmp = int(log10(float(lstep)))+1
99*59599516SKenneth E. Jansen        write (fmt1,"('(''output.'',i',i1,',1x)')") itmp
100*59599516SKenneth E. Jansen        write (fmt2,"('(''outchm.'',i',i1,',1x)')") itmp
101*59599516SKenneth E. Jansen        write (fname1,fmt1) lstep
102*59599516SKenneth E. Jansen        write (fname2,fmt2) lstep
103*59599516SKenneth E. Jansenc
104*59599516SKenneth E. Jansenc.... open file
105*59599516SKenneth E. Jansenc
106*59599516SKenneth E. Jansen        if (ioform .eq. 0) then
107*59599516SKenneth E. Jansen          open (unit=iout,   file=fname1, status='unknown', err=995)
108*59599516SKenneth E. Jansen          if (ichem .eq. 1)
109*59599516SKenneth E. Jansen     &    open (unit=ichmou, file=fname2, status='unknown', err=996)
110*59599516SKenneth E. Jansen        else
111*59599516SKenneth E. Jansen          open (unit=iout,   file=fname1, status='unknown', err=995,
112*59599516SKenneth E. Jansen     &          form='unformatted')
113*59599516SKenneth E. Jansen          if (ichem .eq. 1)
114*59599516SKenneth E. Jansen     &    open (unit=ichmou, file=fname2, status='unknown', err=996,
115*59599516SKenneth E. Jansen     &          form='unformatted')
116*59599516SKenneth E. Jansen        endif
117*59599516SKenneth E. Jansenc
118*59599516SKenneth E. Jansenc.... output header
119*59599516SKenneth E. Jansenc
120*59599516SKenneth E. Jansen        if (ioform .eq. 0) then
121*59599516SKenneth E. Jansen          write (iout,  1000) title, lstep, time, gamma, Rgas
122*59599516SKenneth E. Jansen          if (ichem .eq. 1)
123*59599516SKenneth E. Jansen     &    write (ichmou,1000) title, lstep, time
124*59599516SKenneth E. Jansen        else
125*59599516SKenneth E. Jansen          write (iout) title
126*59599516SKenneth E. Jansen          write (iout) nshg, lstep, time, gamma, Rgas
127*59599516SKenneth E. Jansenc
128*59599516SKenneth E. Jansen          if (ichem .eq. 1) then
129*59599516SKenneth E. Jansen          write (ichmou) title
130*59599516SKenneth E. Jansen          write (ichmou) nshg, lstep, time
131*59599516SKenneth E. Jansen          endif
132*59599516SKenneth E. Jansen        endif
133*59599516SKenneth E. Jansenc
134*59599516SKenneth E. Jansen        if (ioform .eq. 0) then
135*59599516SKenneth E. Jansen          do n = 1, nshg
136*59599516SKenneth E. Jansen            write (iout,  2000) n, (q(n,i),  i=1,ndof)
137*59599516SKenneth E. Jansen            if (ichem .eq. 1)
138*59599516SKenneth E. Jansen     &      write (ichmou,2000) n, (qq(n,i), i=1,8)
139*59599516SKenneth E. Jansen          enddo
140*59599516SKenneth E. Jansen        else
141*59599516SKenneth E. Jansen          write (iout) q
142*59599516SKenneth E. Jansen          if (ichem .eq. 1) write (ichmou) qq
143*59599516SKenneth E. Jansen        endif
144*59599516SKenneth E. Jansenc
145*59599516SKenneth E. Jansenc.... close the files
146*59599516SKenneth E. Jansenc
147*59599516SKenneth E. Jansen        close (iout)
148*59599516SKenneth E. Jansen        if (ichem .eq. 1) close (ichmou)
149*59599516SKenneth E. Jansenc
150*59599516SKenneth E. Jansen        endif
151*59599516SKenneth E. Jansenc
152*59599516SKenneth E. Jansenc.... stop the timer
153*59599516SKenneth E. Jansenc
154*59599516SKenneth E. Jansen        call timer ('Back    ')
155*59599516SKenneth E. Jansenc
156*59599516SKenneth E. Jansenc.... *********************>>  Boundary Fluxes  <<**********************
157*59599516SKenneth E. Jansenc
158*59599516SKenneth E. Jansen        if ((irs .eq. 2) .and. (numflx .ne. 0)) then
159*59599516SKenneth E. Jansenc
160*59599516SKenneth E. Jansenc.... set up the timer
161*59599516SKenneth E. Jansenc
162*59599516SKenneth E. Jansen        call timer ('Bnd_Flux')
163*59599516SKenneth E. Jansenc
164*59599516SKenneth E. Jansenc.... calculate the inverse of nodflx
165*59599516SKenneth E. Jansenc
166*59599516SKenneth E. Jansen        itemp  = nodflx
167*59599516SKenneth E. Jansenc
168*59599516SKenneth E. Jansen        invflx = 0
169*59599516SKenneth E. Jansen        invflx(itemp) = (/ (i, i=1,numflx) /)
170*59599516SKenneth E. Jansenc
171*59599516SKenneth E. Jansenc.... -------------------->   interior elements   <--------------------
172*59599516SKenneth E. Jansenc
173*59599516SKenneth E. Jansenc.... set up parameters
174*59599516SKenneth E. Jansenc
175*59599516SKenneth E. Jansen        intrul = intg  (1,itseq)
176*59599516SKenneth E. Jansen        intind = intpt (intrul)
177*59599516SKenneth E. Jansenc
178*59599516SKenneth E. Jansen        jump   = min(iALE + iter-1, 1)
179*59599516SKenneth E. Jansen        ires   = 1
180*59599516SKenneth E. Jansen        iprec  = 0
181*59599516SKenneth E. Jansenc
182*59599516SKenneth E. Jansenc.... initialize the arrays
183*59599516SKenneth E. Jansenc
184*59599516SKenneth E. Jansen        flxres = zero
185*59599516SKenneth E. Jansen        flxLHS = zero
186*59599516SKenneth E. Jansen        flxnrm = zero
187*59599516SKenneth E. Jansenc
188*59599516SKenneth E. Jansenc.... loop over the element-blocks
189*59599516SKenneth E. Jansenc
190*59599516SKenneth E. Jansen        do iblk = 1, nelblk
191*59599516SKenneth E. Jansenc
192*59599516SKenneth E. Jansenc.... set up the parameters
193*59599516SKenneth E. Jansenc
194*59599516SKenneth E. Jansenc$$$          iel    = lcblk(1,iblk)
195*59599516SKenneth E. Jansenc$$$          nenl   = lcblk(5,iblk)
196*59599516SKenneth E. Jansenc$$$          mattyp = lcblk(7,iblk)
197*59599516SKenneth E. Jansenc$$$          npro   = lcblk(1,iblk+1) - iel
198*59599516SKenneth E. Jansenc
199*59599516SKenneth E. Jansen          nenl   = lcblk(5,iblk)   ! no. of vertices per element
200*59599516SKenneth E. Jansen          iel    = lcblk(1,iblk)
201*59599516SKenneth E. Jansen          lelCat = lcblk(2,iblk)
202*59599516SKenneth E. Jansen          lcsyst = lcblk(3,iblk)
203*59599516SKenneth E. Jansen          iorder = lcblk(4,iblk)
204*59599516SKenneth E. Jansen          nenl   = lcblk(5,iblk)   ! no. of vertices per element
205*59599516SKenneth E. Jansen          nshl   = lcblk(10,iblk)
206*59599516SKenneth E. Jansen          mattyp = lcblk(7,iblk)
207*59599516SKenneth E. Jansen          ndofl  = lcblk(8,iblk)
208*59599516SKenneth E. Jansen          nsymdl = lcblk(9,iblk)
209*59599516SKenneth E. Jansen          npro   = lcblk(1,iblk+1) - iel
210*59599516SKenneth E. Jansen          ngauss = nint(lcsyst)
211*59599516SKenneth E. Jansenc
212*59599516SKenneth E. Jansenc
213*59599516SKenneth E. Jansen          if (mattyp .ne. 0) cycle      ! fluid elements only
214*59599516SKenneth E. Jansenc
215*59599516SKenneth E. Jansenc.... compute and assemble the residuals
216*59599516SKenneth E. Jansenc
217*59599516SKenneth E. Jansen          call AsIFlx (y,           ac,
218*59599516SKenneth E. Jansen     &                 x,           mxmudmi(iblk)%p,
219*59599516SKenneth E. Jansen     &                 shp,         shgl,     mien(iblk)%p,
220*59599516SKenneth E. Jansen     &                 mmat(iblk)%p,            flxres)
221*59599516SKenneth E. Jansenc
222*59599516SKenneth E. Jansenc.... end of interior element loop
223*59599516SKenneth E. Jansenc
224*59599516SKenneth E. Jansen        enddo
225*59599516SKenneth E. Jansenc
226*59599516SKenneth E. Jansenc.... -------------------->   boundary elements   <--------------------
227*59599516SKenneth E. Jansenc
228*59599516SKenneth E. Jansenc.... loop over the elements
229*59599516SKenneth E. Jansenc
230*59599516SKenneth E. Jansen        do iblk = 1, nelblb
231*59599516SKenneth E. Jansenc
232*59599516SKenneth E. Jansenc.... set up the parameters
233*59599516SKenneth E. Jansenc
234*59599516SKenneth E. Jansenc$$$          iel    = lcblkb(1,iblk)
235*59599516SKenneth E. Jansenc$$$          nenl   = 4      ! tetrahedral elements (4-vertices)
236*59599516SKenneth E. Jansenc$$$          nenbl  = 3      ! triangular boundary element faces
237*59599516SKenneth E. Jansenc$$$          mattyp = lcblkb(7,iblk)
238*59599516SKenneth E. Jansenc$$$          npro   = lcblkb(1,iblk+1) - iel
239*59599516SKenneth E. Jansenc
240*59599516SKenneth E. Jansenc
241*59599516SKenneth E. Jansen          iel    = lcblkb(1,iblk)
242*59599516SKenneth E. Jansen          lelCat = lcblkb(2,iblk)
243*59599516SKenneth E. Jansen          lcsyst = lcblkb(3,iblk)
244*59599516SKenneth E. Jansen          iorder = lcblkb(4,iblk)
245*59599516SKenneth E. Jansen          nenl   = lcblkb(5,iblk)  ! no. of vertices per element
246*59599516SKenneth E. Jansen          nenbl  = lcblkb(6,iblk)  ! no. of vertices per bdry. face
247*59599516SKenneth E. Jansen          mattyp = lcblkb(7,iblk)
248*59599516SKenneth E. Jansen          ndofl  = lcblkb(8,iblk)
249*59599516SKenneth E. Jansen          nshl   = lcblkb(9,iblk)
250*59599516SKenneth E. Jansen          nshlb  = lcblkb(10,iblk)
251*59599516SKenneth E. Jansen          npro   = lcblkb(1,iblk+1) - iel
252*59599516SKenneth E. Jansen          if(lcsyst.eq.3) lcsyst=nenbl
253*59599516SKenneth E. Jansen          ngaussb = nintb(lcsyst)
254*59599516SKenneth E. Jansen
255*59599516SKenneth E. Jansen          if (mattyp .ne. 0) cycle      ! fluid elements only
256*59599516SKenneth E. Jansenc
257*59599516SKenneth E. Jansenc.... compute and assemble the residuals
258*59599516SKenneth E. Jansenc
259*59599516SKenneth E. Jansen          call AsBFlx (y,                       x,
260*59599516SKenneth E. Jansen     &                 shpb(lcsyst,1:nshl,:),
261*59599516SKenneth E. Jansen     &                 shglb(lcsyst,:,1:nshl,:),
262*59599516SKenneth E. Jansen     &                 mienb(iblk)%p,           mmatb(iblk)%p,
263*59599516SKenneth E. Jansen     &                 miBCB(iblk)%p,           mBCB(iblk)%p,
264*59599516SKenneth E. Jansen     &                 invflx,                  flxres,
265*59599516SKenneth E. Jansen     &                 flxLHS,                  flxnrm)
266*59599516SKenneth E. Jansenc
267*59599516SKenneth E. Jansenc.... end of boundary element loop
268*59599516SKenneth E. Jansenc
269*59599516SKenneth E. Jansen        enddo
270*59599516SKenneth E. Jansenc
271*59599516SKenneth E. Jansenc.... ---------------------------->  Communications <-------------------
272*59599516SKenneth E. Jansenc
273*59599516SKenneth E. Jansen        if(numpe > 1) then
274*59599516SKenneth E. Jansen        call commu (flxres, ilwork, nflow, 'in ')
275*59599516SKenneth E. Jansen        call commu (flxLHS, ilwork, 1   , 'in ')
276*59599516SKenneth E. Jansen        call commu (flxnrm, ilwork, nsd , 'in ')
277*59599516SKenneth E. Jansen        endif
278*59599516SKenneth E. Jansenc
279*59599516SKenneth E. Jansenc.... ---------------------------->  Solve  <---------------------------
280*59599516SKenneth E. Jansenc
281*59599516SKenneth E. Jansenc.... compute the viscous and heat fluxes
282*59599516SKenneth E. Jansenc
283*59599516SKenneth E. Jansen        do i = 2, nflow
284*59599516SKenneth E. Jansen          where ( (invflx .ne. 0) .and. (flxLHS(:,1) .ne. zero) )
285*59599516SKenneth E. Jansen     &      flxres(:,i) = flxres(:,i) / flxLHS(:,1)
286*59599516SKenneth E. Jansen        enddo
287*59599516SKenneth E. Jansenc
288*59599516SKenneth E. Jansenc.... normalize the outward normal
289*59599516SKenneth E. Jansenc
290*59599516SKenneth E. Jansenc       if (nsd .eq. 2) then
291*59599516SKenneth E. Jansenc
292*59599516SKenneth E. Jansenc         temp = sqrt(flxnrm(:,1)**2 + flxnrm(:,2)**2)
293*59599516SKenneth E. Jansenc         where ( (invflx .ne. 0) .and. (temp .ne. zero) )
294*59599516SKenneth E. Jansenc           flxnrm(:,1) = flxnrm(:,1) / temp
295*59599516SKenneth E. Jansenc           flxnrm(:,2) = flxnrm(:,2) / temp
296*59599516SKenneth E. Jansenc         endwhere
297*59599516SKenneth E. Jansenc
298*59599516SKenneth E. Jansenc       else
299*59599516SKenneth E. Jansenc
300*59599516SKenneth E. Jansen          temp = sqrt(flxnrm(:,1)**2 + flxnrm(:,2)**2 + flxnrm(:,3)**2)
301*59599516SKenneth E. Jansen          where ( (invflx .ne. 0) .and. (temp .ne. zero) )
302*59599516SKenneth E. Jansen            flxnrm(:,1) = flxnrm(:,1) / temp
303*59599516SKenneth E. Jansen            flxnrm(:,2) = flxnrm(:,2) / temp
304*59599516SKenneth E. Jansen            flxnrm(:,3) = flxnrm(:,3) / temp
305*59599516SKenneth E. Jansen          endwhere
306*59599516SKenneth E. Jansenc
307*59599516SKenneth E. Jansenc       endif
308*59599516SKenneth E. Jansenc
309*59599516SKenneth E. Jansenc.... ---------------------------->  Print  <---------------------------
310*59599516SKenneth E. Jansenc
311*59599516SKenneth E. Jansenc.... get the file name ('flux.'lstep)
312*59599516SKenneth E. Jansenc
313*59599516SKenneth E. Jansen        itmp = 1
314*59599516SKenneth E. Jansen        if (lstep .gt. 0) itmp = int(log10(float(lstep)))+1
315*59599516SKenneth E. Jansen        write (fmt1,"('(''flux.'',i',i1,',1x)')") itmp
316*59599516SKenneth E. Jansen        write (fname1,fmt1) lstep
317*59599516SKenneth E. Jansenc
318*59599516SKenneth E. Jansenc.... open file
319*59599516SKenneth E. Jansenc
320*59599516SKenneth E. Jansen        open (unit=iflux, file=fname1, status='unknown', err=997)
321*59599516SKenneth E. Jansenc
322*59599516SKenneth E. Jansenc.... output the header
323*59599516SKenneth E. Jansenc
324*59599516SKenneth E. Jansen        write (iflux, 1000) title, lstep, time
325*59599516SKenneth E. Jansenc
326*59599516SKenneth E. Jansenc.... output the results
327*59599516SKenneth E. Jansenc
328*59599516SKenneth E. Jansen        do n = 1, numflx
329*59599516SKenneth E. Jansenc
330*59599516SKenneth E. Jansen          k = nodflx(n)
331*59599516SKenneth E. Jansen          m = k                       ! global node number
332*59599516SKenneth E. Jansenc
333*59599516SKenneth E. Jansen          write (iflux, 2000) k, (x(m,i),       i=1,nsd),
334*59599516SKenneth E. Jansen     &                           (flxnrm(m,i),  i=1,nsd),
335*59599516SKenneth E. Jansen     &                           (flxres(m,i),  i=2,nflow),
336*59599516SKenneth E. Jansen     &                           (q(k,i),       i=1,ndof),
337*59599516SKenneth E. Jansen     &                           (qq(k,i),      i=1,8)
338*59599516SKenneth E. Jansenc
339*59599516SKenneth E. Jansen        enddo
340*59599516SKenneth E. Jansenc
341*59599516SKenneth E. Jansenc.... close file
342*59599516SKenneth E. Jansenc
343*59599516SKenneth E. Jansen        close (iflux)
344*59599516SKenneth E. Jansenc
345*59599516SKenneth E. Jansenc.... stop the timer
346*59599516SKenneth E. Jansenc
347*59599516SKenneth E. Jansen        call timer ('Back    ')
348*59599516SKenneth E. Jansenc
349*59599516SKenneth E. Jansen        endif
350*59599516SKenneth E. Jansenc
351*59599516SKenneth E. Jansen        return
352*59599516SKenneth E. Jansenc
353*59599516SKenneth E. Jansenc.... file error handling
354*59599516SKenneth E. Jansenc
355*59599516SKenneth E. Jansen995     call error ('bflux   ','opening ', iout)
356*59599516SKenneth E. Jansen996     call error ('bflux   ','opening ', ichmou)
357*59599516SKenneth E. Jansen997     call error ('bflux   ','opening ', iflux)
358*59599516SKenneth E. Jansenc
359*59599516SKenneth E. Jansen1000    format(' ',a80,/,1x,i10,1p,3e20.7)
360*59599516SKenneth E. Jansen2000    format(1p,1x,i6,23e15.7)
361*59599516SKenneth E. Jansenc
362*59599516SKenneth E. Jansenc.... end
363*59599516SKenneth E. Jansenc
364*59599516SKenneth E. Jansen        end
365