15 if (iostep.le.0 .and. timeio.le.0)
return
20 if(mod(istep,iostep).eq.0) ifoutfld=.true.
21 else if (timeioe.ne.0.0)
then
26 else if (timeio.ne.0.0)
then
27 if (time.ge.(ntdump + 1)*timeio)
then
33 if (ioinfodmp.ne.0 .or. lastep.eq.1) ifoutfld=.true.
46 parameter(lxyz=lx1*ly1*lz1)
47 parameter(lpsc9=ldimt1+9)
48 common /ctmp1/ tdump(lxyz,lpsc9)
51 equivalence(tdump,tdmp)
55 data maxstep /999999999/
58 character*1 fname1(132)
59 equivalence(fname,fname1)
62 if (nid.eq.0 .and. (mod(istep,10).eq.0 .or. istep.lt.200))
then
63 call blank(fname1,
size(fname1))
65 call chcopy(fname1,path,len)
66 call chcopy(fname1(len+1),
'ioinfo',6)
67 open(unit=87,
file=fname,status=
'old',err=88)
68 read(87,*,
end=87,err=87) idummy
69 if (ioinfodmp.eq.0) ioinfodmp=idummy
78 if (ioinfodmp.ne.0)
write(6,*)
'Output:',ioinfodmp
82 call gop(tdmp,tdmp(3),
'+ ',1)
84 if (ioinfodmp.lt.0) maxstep=abs(ioinfodmp)
85 if (istep.ge.maxstep.or.ioinfodmp.eq.-2) lastep=1
104 common /scrcg/ pm1(lx1,ly1,lz1,lelv)
106 character*3 prefin,prefix
110 if (ioinfodmp.eq.-2)
return
117 if (prefix.eq.
'his') prefix =
' '
144 common /scruz/ vxax(lx1,ly1,lelv)
145 $ , vyax(lx1,ly1,lelv)
146 $ , prax(lx2,ly2,lelv)
147 $ , yax(lx1,ly1,lelt)
148 common /scrmg/ tax(lx1,ly1,lelt,ldimt)
149 common /scrcg/ pm1(lx1,ly1,lz1,lelv)
152 common /prepst/ pa(lx1,ly2,lz2),pb(lx1,ly1,lz2)
158 ntotm1 = lx1*ly1*nelt
159 call copy (yax,ym1,ntotm1)
162 call mxm (ym1(1,1,1,e),lx1,iatjl1,ly1,pb,ly1)
163 call copy (ym1(1,1,1,e),pb,lx1*ly1)
167 ntotm1 = lx1*ly1*nelt
168 ntotm2 = lx2*ly2*nelt
169 call copy (vxax,vx,ntotm1)
170 call copy (vyax,vy,ntotm1)
171 call copy (prax,pr,ntotm2)
174 call mxm (vx(1,1,1,e),lx1,iatjl1,ly1,pb,ly1)
175 call copy (vx(1,1,1,e),pb,lx1*ly1)
176 call mxm (vy(1,1,1,e),lx1,iatjl1,ly1,pb,ly1)
177 call copy (vy(1,1,1,e),pb,lx1*ly1)
178 call mxm (pr(1,1,1,e),lx2,iatjl2,ly2,pb,ly2)
179 call copy (pr(1,1,1,e),pb,lx2*ly2)
184 ntotm1 = lx1*ly1*nelt
185 do 15 ifldt=1,npscal+1
186 call copy (tax(1,1,1,ifldt),t(1,1,1,1,ifldt),ntotm1)
190 do 25 ifldt=1,npscal+1
191 call mxm (t(1,1,1,e,ifldt),lx1,iatjl1,ly1,
193 call copy (t(1,1,1,e,ifldt),pb,lx1*ly1)
201 ntott = lx1*ly1*lz1*nelt
202 ntot1 = lx1*ly1*lz1*nelt
209 call rzero(pm1,ntott)
211 call copy(pm1,pr,ntot1)
212 elseif (if_full_pres)
then
213 call rzero(pm1,ntot1)
215 call copy(pm1(1,1,1,e),pr(1,1,1,e),nxyz2)
219 call mxm (ixm21,lx1,pr(1,1,1,e),lx2,pa(1,1,1),nyz2)
221 call mxm (pa(1,1,iz),lx1,iytm21,ly2,pb(1,1,iz),ly1)
223 call mxm (pb(1,1,1),nxy1,iztm21,lz2,pm1(1,1,1,e),lz1)
231 call copy (ym1,yax,ntot1)
235 call copy (vx,vxax,ntot1)
236 call copy (vy,vyax,ntot1)
237 call copy (pr,prax,ntot2)
241 do 3000 ifldt=1,npscal+1
242 call copy (t(1,1,1,1,ifldt),tax(1,1,1,ifldt),ntot1)
261 common /scrcg/ pm1(lx1,ly1,lz1,lelv)
264 parameter(lxyz=lx1*ly1*lz1)
265 parameter(lpsc9=ldimt1+9)
266 common /ctmp1/ tdump(lxyz,lpsc9)
269 equivalence(tdump,tdmp)
274 character*1 fhdfle1(132)
276 equivalence(fhdfle,fhdfle1)
278 character*1 excode(30)
281 common /nopenf/ nopen(99)
283 common /rdump/ ntdump
289 WRITE(6,1001) istep,time
290 1001
FORMAT(/,i9,1pe12.4,
' Write checkpoint')
295 if (abs(p66).eq.6)
then
308 nopen(iprefix)=nopen(iprefix)+1
310 if (prefix.eq.
' '.and.nopen(iprefix).eq.1) ifxyo = .true.
312 if (prefix.eq.
'rst'.and.max_rst.gt.0)
313 $ nopen(iprefix) =
mod1(nopen(iprefix),max_rst)
315 call file2(nopen(iprefix),prefix)
317 open(unit=24,
file=fldfle,form=
'formatted',status=
'unknown')
321 call blank(fhdfle,132)
324 call bcast(ifxyo,lsize)
326 $
call err_chk(ierr,
'Error opening file in outfld. Abort. $')
329 CALL blank(excode,30)
332 if (mod(p66,1.0).eq.0.0)
then
361 if (ifpsco(iip))
then
362 write(excode(iip+i) ,
'(i1)') iip
363 write(excode(iip+i+1),
'(a1)')
' '
388 if(ifpsco(k)) npscalo = npscalo + 1
390 IF (npscalo.GT.0)
THEN
392 WRITE(excode(i+1),
'(I1)') npscalo/10
393 WRITE(excode(i+2),
'(I1)') npscalo-(npscalo/10)*10
402 call err_chk(ierr,
'Error dumping header in outfld. Abort. $')
421 call csend (mtype,dum1,wdsize,jnid,nullpid)
422 call crecv2 (mtype,tdump,len,jnid)
424 if(ierr.eq.0)
call out_tmp(id,p66,ierr)
425 elseif (nid.eq.jnid)
then
430 call crecv2 (mtype,dum1,wdsize,node0)
431 call csend (mtype,tdump,len,node0,nullpid)
434 call err_chk(ierr,
'Error writing file in outfld. Abort. $')
439 call err_chk(ierr,
'Error closing file in outfld. Abort. $')
456 CHARACTER*1 SESS1(132),PATH1(132),NAM1(132)
457 equivalence(session,sess1)
458 equivalence(path,path1)
459 equivalence(name,nam1)
460 CHARACTER*1 DMP(4),FLD(4),REA(4),HIS(4),SCH(4) ,ORE(4), NRE(4)
461 CHARACTER*4 DMP4 ,FLD4 ,REA4 ,HIS4 ,SCH4 ,ORE4 , NRE4
462 equivalence(dmp,dmp4), (fld,fld4), (rea,rea4), (his,his4)
463 $ , (sch,sch4), (ore,ore4), (nre,nre4)
464 CHARACTER*1 NUMRL(0:9)
465 DATA dmp4,fld4,rea4 /
'.dmp',
'.fld',
'.rea'/
466 DATA his4,sch4 /
'.his',
'.sch'/
467 DATA ore4,nre4 /
'.ore',
'.nre'/
468 DATA numrl /
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9'/
471 character*1 prefix(3)
473 call blank(name ,132)
474 call blank(fldfle,132)
487 if (prefix(1).ne.
' '.and.prefix(2).ne.
' '.and.
488 $ prefix(3).ne.
' ')
then
505 if (nopen.lt.100)
then
513 elseif (nopen.lt.1000)
then
518 iten=mod(nopen,100)/10
524 elseif (nopen.lt.10000)
then
529 ihun=mod(nopen,1000)/100
532 iten=mod(nopen,100)/10
544 call chcopy(string,fldfle,78)
545 write(6,1000) istep,time,string
546 1000
format(/,i9,1pe12.4,
' OPEN: ',a78)
579 character*3 prefixes(99)
581 data prefixes /99*
'...'/
590 if (prefix.eq.prefixes(i))
then
598 nprefix = nprefix + 1
599 prefixes(nprefix) = prefix
604 if (nprefix.gt.99.or.nprefix.gt.imax)
then
605 write(6,*)
'Hey! nprefix too big! ABORT in i_find_prefix'
618 character*30 excodein
621 character*1 excode1(30)
622 equivalence(excode,excode1)
626 character*1 fhdfle1(132)
628 equivalence(fhdfle,fhdfle1)
630 write(excode,
'(A30)') excodein
634 if (ikstep.gt.9999) ikstep = ikstep/10
637 call blank(fhdfle,132)
642 if (mod(p66,1.0).eq.0.0)
then
644 if(nelgt.lt.10000)
then
645 WRITE(24,
'(4i4,1pe14.7,I5,1X,30A1,1X,A12)')
646 $ nelgt,lx1,ly1,lz1,time,ikstep,(excode1(i),i=1,30),
649 WRITE(24,
'(i10,3i4,1pe18.9,I9,1X,30A1,1X,A12)')
650 $ nelgt,lx1,ly1,lz1,time,ikstep,(excode1(i),i=1,30),
654 if (nelgt.lt.10000)
then
655 WRITE(fhdfle,
'(4I4,1pe14.7,I5,1X,30A1,1X,A12)')
656 $ nelgt,lx1,ly1,lz1,time,ikstep,(excode1(i),i=1,30),
659 write(fhdfle,
'(i10,3i4,1P1e18.9,i9,1x,30a1)')
660 $ nelgt,lx1,ly1,lz1,time,istep,(excode1(i),i=1,30)
667 $ nelgt,lx1,ly1,lz1,time,istep,excode
670 $ nelgt,lx1,ly1,lz1,time,istep,excode
673 111
FORMAT(i10,1x,i2,1x,i2,1x,i2,1x,1p1e18.9,1x,i9,1x,a)
680 WRITE(24,
'(6G11.4)')(cdrror,i=1,nelgt)
683 test_pattern = 6.54321
695 common /scrcg/ pm1(lx1,ly1,lz1,lelv)
699 parameter(lxyz=lx1*ly1*lz1)
700 parameter(lpsc9=ldimt1+9)
701 real*4 tdump(lxyz,lpsc9)
708 CALL copyx4(tdump(1,id),xm1(1,1,1,ie),nxyz)
710 CALL copyx4(tdump(1,id),ym1(1,1,1,ie),nxyz)
713 CALL copyx4(tdump(1,id),zm1(1,1,1,ie),nxyz)
720 CALL copyx4(tdump(1,id),vx(1,1,1,ie),nxyz)
722 CALL copyx4(tdump(1,id),vy(1,1,1,ie),nxyz)
725 CALL copyx4(tdump(1,id),vz(1,1,1,ie),nxyz)
729 CALL rzero4(tdump(1,id),nxyz)
731 CALL rzero4(tdump(1,id),nxyz)
734 CALL rzero4(tdump(1,id),nxyz)
741 CALL copyx4(tdump(1,id),pm1(1,1,1,ie),nxyz)
744 CALL rzero4(tdump(1,id),nxyz)
749 CALL copyx4(tdump(1,id),t(1,1,1,ie,1),nxyz)
753 if (ifpsco(iip))
then
755 call copyx4(tdump(1,id),t(1,1,1,ie,iip+1),nxyz)
769 if (ifxyo) id=id+ldim
775 if (ifpsco(iip)) id=id+1
802 parameter(lxyz=lx1*ly1*lz1)
803 parameter(lpsc9=ldimt1+9)
805 common /ctmp1/ tdump(lxyz,lpsc9)
815 1801
FORMAT(
'(1p',i1,
'e14.6)')
818 1802
FORMAT(
'(1p',i2,
'e14.6)')
824 $ ((tdump(i,ii),ii=1,id),i=1,nxyz)
829 if(ierr.ne.0)
goto 101
842 common /scrcg/ pm1(lx1,ly1,lz1,lelv)
844 integer*8 offs0,offs,nbyte,stride,strideB,nxyzo8
848 common /scruz/ ur1(lxo*lxo*lxo*lelt)
849 & , ur2(lxo*lxo*lxo*lelt)
850 & , ur3(lxo*lxo*lxo*lelt)
864 if (nid.eq.0)
write(6,*)
865 &
'WARNING: nrg too large, reset to lxo!'
873 offs0 = iheadersize + 4 + isize*nelgt
876 if (nid.eq.pid0)
then
879 call err_chk(ierr,
'Error opening file in mfo_open_files. $')
880 call bcast(ifxyo_,lsize)
887 strideb = nelb * nxyzo8*wdsizo
888 stride = nelgt* nxyzo8*wdsizo
894 offs = offs0 + ldim*strideb
899 if (if3d)
call map2reg(ur3,nrg,zm1,nout)
900 call mfo_outv(ur1,ur2,ur3,nout,nxo,nyo,nzo)
902 call mfo_outv(xm1,ym1,zm1,nout,nxo,nyo,nzo)
904 ioflds = ioflds + ldim
907 offs = offs0 + ioflds*stride + ldim*strideb
912 if (if3d)
call map2reg(ur3,nrg,vz,nout)
913 call mfo_outv(ur1,ur2,ur3,nout,nxo,nyo,nzo)
915 call mfo_outv(vx,vy,vz,nout,nxo,nyo,nzo)
917 ioflds = ioflds + ldim
920 offs = offs0 + ioflds*stride + strideb
931 offs = offs0 + ioflds*stride + strideb
943 offs = offs0 + ioflds*stride + strideb
946 call map2reg(ur1,nrg,t(1,1,1,1,k+1),nout)
949 call mfo_outs(t(1,1,1,1,k+1),nout,nxo,nyo,nzo)
954 dnbyte = 1.*ioflds*nout*wdsizo*nxo*nyo*nzo
957 offs0 = offs0 + ioflds*stride
963 offs = offs0 + ldim*strideb
966 ioflds = ioflds + ldim
969 offs = offs0 + ioflds*stride + ldim*strideb
972 ioflds = ioflds + ldim
975 offs = offs0 + ioflds*stride + strideb
981 offs = offs0 + ioflds*stride + strideb
987 offs = offs0 + ioflds*stride + strideb
989 if(ifpsco(k))
call mfo_mdatas(t(1,1,1,1,k+1),nout)
992 dnbyte = dnbyte + 2.*ioflds*nout*wdsizo
996 if (nid.eq.pid0)
then
1003 call err_chk(ierr,
'Error closing file in mfo_outfld. Abort. $')
1006 if (tio.le.0) tio=1.
1008 dnbyte =
glsum(dnbyte,1)
1009 dnbyte = dnbyte + iheadersize + 4. + isize*nelgt
1010 dnbyte = dnbyte/1024/1024
1011 if(nio.eq.0)
write(6,7) istep,time,dnbyte,dnbyte/tio,
1013 7
format(/,i9,1pe12.4,
' done :: Write checkpoint',/,
1014 & 30x,
'file size = ',3pg12.2,
'MB',/,
1015 & 30x,
'avg data-throughput = ',0pf7.1,
'MB/s',/,
1016 & 30x,
'io-nodes = ',i5,/)
1034 if(abs(param(65)).eq.1 .and. abs(param(66)).eq.6) ifmpiio=.true.
1040 if (param(63).gt.0) wdsizo = 8
1050 if(param(65).lt.0) ifdiro = .true.
1051 nfileo = abs(param(65))
1052 if(nfileo.eq.0) nfileo = 1
1053 if(np.lt.nfileo) nfileo=np
1054 nproc_o = np / nfileo
1057 pid1 = min(np-1,pid0+nproc_o-1)
1065 pid00 =
glmin(pid0,1)
1077 character*1 prefix(3)
1081 character*1 fnam1(132)
1082 equivalence(fnam1,fname)
1086 data six /
"??????" /
1089 character*1 slash,dot
1091 data slash,dot /
'/' ,
'.' /
1095 data nopen / 198*0 /
1097 call blank(fname,132)
1101 nopen(iprefix,2) = nopen(iprefix,2)+1
1102 nfld = nopen(iprefix,2)
1104 nopen(iprefix,1) = nopen(iprefix,1)+1
1105 nfld = nopen(iprefix,1)
1108 call chcopy(prefx,prefix,3)
1109 if (prefx.eq.
'rst'.and.max_rst.gt.0) nfld =
mod1(nfld,max_rst)
1112 if (prefx.eq.
' '.and.nfld.eq.1) ifxyo_ = .true.
1119 ndigit = log10(rfileo) + 1
1122 call chcopy(fnam1(1),path,lenp)
1126 call chcopy(fnam1(k),
'A',1)
1128 call chcopy(fnam1(k),six,ndigit)
1130 call chcopy(fnam1(k),slash,1)
1134 if (prefix(1).ne.
' '.and.prefix(2).ne.
' '.and.
1135 $ prefix(3).ne.
' ')
then
1136 call chcopy(fnam1(k),prefix,3)
1141 call chcopy(fnam1(k),session,len)
1146 call chcopy(fnam1(k),
'_reg',len)
1150 call chcopy(fnam1(k),six,ndigit)
1153 call chcopy(fnam1(k ),dot,1)
1154 call chcopy(fnam1(k+1),
'f',1)
1159 call chcopy(fnam1(k),str,5)
1165 if(nio.eq.0)
write(6,*)
' FILE:',fname
1168 if(nid.eq.pid0)
write(6,*)
' FILE:',fname
1260 data kst /
'0123456789abcdef' /
1261 character*1 ks1(0:15),kin
1262 equivalence(ks1,kst)
1266 if (
indx1(prefix,
'rs',2).eq.1)
then
1270 if (ks1(kfld).eq.kin)
goto 10
1272 10
if (kfld.eq.16) kfld=4
1273 nfln =
mod1(nfld,kfld)
1274 if (nio.eq.0)
write(6,*) nfln,nfld,kfld,
' kfld'
1283 integer iosave,save_size,nfld_save
1284 logical if_full_pres_tmp
1290 if (param(27).lt. 0)
then
1291 nfld_save=abs(param(27))
1298 if_full_pres_tmp = if_full_pres
1301 if_full_pres = .true.
1306 if_full_pres = if_full_pres_tmp
1313 integer iosave,nfldi
1333 data kst /
'0123456789abcdefx' /
1334 character*1 ks1(0:16)
1335 equivalence(ks1,kst)
1337 logical if_full_pres_tmp
1341 if (iosav.eq.0) iosav = iostep
1342 if (iosav.eq.0)
return
1353 if (ifmhd) nfld2 = nfld/4
1356 m1 = istep+iosav-iotest
1357 mt = mod(istep+iosav-iotest,iosav)
1360 if (istep.gt.iosav/2 .and.
1361 $ mod(istep+iosav-iotest,iosav).lt.nfld2)
then
1362 write(prefix,
'(A)')
'rs_'
1368 if (ifmhd)
call outpost2(bx,by,bz,pm,t,0,prefix)
1382 real v1(1),v2(1),v3(1),vp(1),vt(1)
1388 call outpost2(v1,v2,v3,vp,vt,itmp,name3)
1399 parameter(ltot1=lx1*ly1*lz1*lelt)
1400 parameter(ltot2=lx2*ly2*lz2*lelv)
1401 common /outtmp/ w1(ltot1),w2(ltot1),w3(ltot1),wp(ltot2)
1404 real v1(1),v2(1),v3(1),vp(1),vt(ltot1,1)
1406 logical if_save(ldimt)
1408 ntot1 = lx1*ly1*lz1*nelt
1409 ntot1t = lx1*ly1*lz1*nelt
1410 ntot2 = lx2*ly2*lz2*nelt
1412 if(nfldt.gt.ldimt)
then
1413 write(6,*)
'ABORT: outpost data too large (nfldt>ldimt)!'
1418 call copy(w1,vx,ntot1)
1419 call copy(w2,vy,ntot1)
1420 call copy(w3,vz,ntot1)
1421 call copy(wp,pr,ntot2)
1423 call copy(wt(1,i),t(1,1,1,1,i),ntot1t)
1427 call copy(vx,v1,ntot1)
1428 call copy(vy,v2,ntot1)
1429 call copy(vz,v3,ntot1)
1430 call copy(pr,vp,ntot2)
1432 call copy(t(1,1,1,1,i),vt(1,i),ntot1t)
1438 if(nfldt.gt.0) ifto = .true.
1440 if_save(i+1) = ifpsco(i)
1442 if(i+1.le.nfldt) ifpsco(i) = .true.
1449 ifpsco(i) = if_save(i+1)
1453 call copy(vx,w1,ntot1)
1454 call copy(vy,w2,ntot1)
1455 call copy(vz,w3,ntot1)
1456 call copy(pr,wp,ntot2)
1458 call copy(t(1,1,1,1,i),wt(1,i),ntot1t)
1471 real u(lx1*ly1*lz1,1),v(lx1*ly1*lz1,1),w(lx1*ly1*lz1,1)
1473 real*4 buffer(1+6*lelt)
1481 len = 4 + 4*(n*lelt)
1482 leo = 4 + 4*(n*nelt)
1486 if (nid.eq.pid0)
then
1489 buffer(j+0) =
vlmin(u(1,e),nxyz)
1490 buffer(j+1) =
vlmax(u(1,e),nxyz)
1491 buffer(j+2) =
vlmin(v(1,e),nxyz)
1492 buffer(j+3) =
vlmax(v(1,e),nxyz)
1495 buffer(j+0) =
vlmin(w(1,e),nxyz)
1496 buffer(j+1) =
vlmax(w(1,e),nxyz)
1515 call csend(mtype,idum,4,k,0)
1516 call crecv(mtype,buffer,len)
1532 buffer(j+0) =
vlmin(u(1,e),nxyz)
1533 buffer(j+1) =
vlmax(u(1,e),nxyz)
1534 buffer(j+2) =
vlmin(v(1,e),nxyz)
1535 buffer(j+3) =
vlmax(v(1,e),nxyz)
1538 buffer(j+0) =
vlmin(w(1,e),nxyz)
1539 buffer(j+1) =
vlmax(w(1,e),nxyz)
1546 call crecv(mtype,idum,4)
1547 call csend(mtype,buffer,leo,pid0,0)
1550 call err_chk(ierr,
'Error writing data to .f00 in mfo_mdatav. $')
1562 real u(lx1*ly1*lz1,1)
1564 real*4 buffer(1+2*lelt)
1572 len = 4 + 4*(n*lelt)
1573 leo = 4 + 4*(n*nelt)
1577 if (nid.eq.pid0)
then
1580 buffer(j+0) =
vlmin(u(1,e),nxyz)
1581 buffer(j+1) =
vlmax(u(1,e),nxyz)
1599 call csend(mtype,idum,4,k,0)
1600 call crecv(mtype,buffer,len)
1616 buffer(j+0) =
vlmin(u(1,e),nxyz)
1617 buffer(j+1) =
vlmax(u(1,e),nxyz)
1623 call crecv(mtype,idum,4)
1624 call csend(mtype,buffer,leo,pid0,0)
1627 call err_chk(ierr,
'Error writing data to .f00 in mfo_mdatas. $')
1641 common /scrns/ u4(2+lxo*lxo*lxo*2*lelt)
1643 real*8 u8(1+lxo*lxo*lxo*1*lelt)
1648 umax =
glmax(u,nel*mx*my*mz)
1649 umin =
glmin(u,nel*mx*my*mz)
1650 if(nid.eq.0)
write(6,
'(A,2g13.5)')
' min/max:', umin,umax
1653 if(mx.gt.lxo .or. my.gt.lxo .or. mz.gt.lxo)
then
1654 if(nid.eq.0)
write(6,*)
'ABORT: lxo too small'
1659 len = 8 + 8*(lelt*nxyz)
1660 leo = 8 + wdsizo*(nel*nxyz)
1666 if (nid.eq.pid0)
then
1668 if (wdsizo.eq.4)
then
1671 call copy (u8,u,ntot)
1673 nout = wdsizo/4 * ntot
1686 call csend(mtype,idum,4,k,0)
1687 call crecv(mtype,u4,len)
1688 nout = wdsizo/4 * nxyz * u8(1)
1689 if (wdsizo.eq.4.and.ierr.eq.0)
then
1695 elseif(ierr.eq.0)
then
1707 if (wdsizo.eq.4)
then
1708 call copyx4 (u4(3),u,ntot)
1710 call copy (u8(2),u,ntot)
1714 call crecv(mtype,idum,4)
1715 call csend(mtype,u4,leo,pid0,0)
1719 call err_chk(ierr,
'Error writing data to .f00 in mfo_outs. $')
1732 real u(mx*my*mz,1),v(mx*my*mz,1),w(mx*my*mz,1)
1734 common /scrns/ u4(2+lxo*lxo*lxo*6*lelt)
1736 real*8 u8(1+lxo*lxo*lxo*3*lelt)
1741 umax =
glmax(u,nel*mx*my*mz)
1742 vmax =
glmax(v,nel*mx*my*mz)
1743 wmax =
glmax(w,nel*mx*my*mz)
1744 umin =
glmin(u,nel*mx*my*mz)
1745 vmin =
glmin(v,nel*mx*my*mz)
1746 wmin =
glmin(w,nel*mx*my*mz)
1747 if(nid.eq.0)
write(6,
'(A,6g13.5)')
' min/max:',
1748 $ umin,umax, vmin,vmax, wmin,wmax
1751 if(mx.gt.lxo .or. my.gt.lxo .or. mz.gt.lxo)
then
1752 if(nid.eq.0)
write(6,*)
'ABORT: lxo too small'
1757 len = 8 + 8*(lelt*nxyz*ldim)
1758 leo = 8 + wdsizo*(nel*nxyz*ldim)
1762 if (nid.eq.pid0)
then
1764 if (wdsizo.eq.4)
then
1766 call copyx4 (u4(j+1),u(1,iel),nxyz)
1768 call copyx4 (u4(j+1),v(1,iel),nxyz)
1771 call copyx4 (u4(j+1),w(1,iel),nxyz)
1777 call copy (u8(j+1),u(1,iel),nxyz)
1779 call copy (u8(j+1),v(1,iel),nxyz)
1782 call copy (u8(j+1),w(1,iel),nxyz)
1787 nout = wdsizo/4 * ldim*nel * nxyz
1799 call csend(mtype,idum,4,k,0)
1800 call crecv(mtype,u4,len)
1801 nout = wdsizo/4 * ldim*nxyz * u8(1)
1803 if (wdsizo.eq.4.and.ierr.eq.0)
then
1809 elseif(ierr.eq.0)
then
1820 if (wdsizo.eq.4)
then
1823 call copyx4 (u4(j+1),u(1,iel),nxyz)
1825 call copyx4 (u4(j+1),v(1,iel),nxyz)
1828 call copyx4 (u4(j+1),w(1,iel),nxyz)
1835 call copy (u8(j+1),u(1,iel),nxyz)
1837 call copy (u8(j+1),v(1,iel),nxyz)
1840 call copy (u8(j+1),w(1,iel),nxyz)
1847 call crecv(mtype,idum,4)
1848 call csend(mtype,u4,leo,pid0,0)
1852 call err_chk(ierr,
'Error writing data to .f00 in mfo_outv. $')
1865 common /ctmp0/ lglist(0:lelt)
1869 logical if_press_mesh
1879 if(nid.eq.pid0)
then
1883 call csend(mtype,idum,4,j,0)
1884 call crecv(mtype,inelp,4)
1889 call crecv(mtype,idum,4)
1890 call csend(mtype,nelt,4,pid0,0)
1895 if(nid.eq.pid0)
then
1898 call blank(rdcode1,10)
1916 IF (ldimt.GT.1)
THEN
1919 if(ifpsco(k)) npscalo = npscalo + 1
1921 IF (npscalo.GT.0)
THEN
1923 WRITE(rdcode1(i+1),
'(I1)') npscalo/10
1924 WRITE(rdcode1(i+2),
'(I1)') npscalo-(npscalo/10)*10
1929 if_press_mesh = .false.
1930 if (.not.ifsplit.and.if_full_pres) if_press_mesh = .true.
1932 write(hdr,1) wdsizo,nxo,nyo,nzo,nelo,nelgt,time,istep,fid0,nfileoo
1933 $ ,(rdcode1(i),i=1,10),p0th,if_press_mesh
1934 1
format(
'#std',1x,i1,1x,i2,1x,i2,1x,i2,1x,i10,1x,i10,1x,e20.13,
1935 & 1x,i9,1x,i6,1x,i6,1x,10a,1pe15.7,1x,l1)
1937 test_pattern = 6.54321
1950 call err_chk(ierr,
'Error writing header in mfo_write_hdr. $')
1953 if(nid.eq.pid0)
then
1955 ioff = iheadersize + 4 + nelb*isize
1964 call csend(mtype,idum,4,j,0)
1966 call crecv(mtype,lglist,len)
1977 call crecv(mtype,idum,4)
1980 call icopy(lglist(1),lglel,nelt)
1983 call csend(mtype,lglist,len,pid0,0)
1986 call err_chk(ierr,
'Error writing global nums in mfo_write_hdr$')
subroutine byte_open_mpi(fnamei, mpi_fh, ifro, ierr)
subroutine byte_write_mpi(buf, icount, iorank, mpi_fh, ierr)
subroutine byte_close_mpi(mpi_fh, ierr)
subroutine byte_set_view(ioff_in, mpi_fh)
subroutine crecv2(mtype, buf, lenm, jnid)
function igl_running_sum(in)
subroutine crecv(mtype, buf, lenm)
subroutine gop(x, w, op, n)
subroutine csend(mtype, buf, len, jnid, jpid)
subroutine bcast(buf, len)
subroutine err_chk(ierr, string)
real *8 function dnekclock_sync()
integer function gllel(ieg)
integer function gllnid(ieg)
subroutine addfid(fname, fid)
integer function indx1(S1, S2, L2)
subroutine icopy(a, b, n)
real function vlmax(vec, n)
function ltrunc(string, l)
subroutine chcopy(a, b, n)
real function vlmin(vec, n)
subroutine mxm(a, n1, b, n2, c, n3)
subroutine map2reg(ur, n, u, nel)
subroutine mfo_mdatas(u, nel)
subroutine restart_save(iosave, nfldi)
subroutine dump_header(excodein, p66, ierr)
subroutine mfo_outfld(prefix)
subroutine close_fld(p66, ierr)
subroutine out_tmp(id, p66, ierr)
subroutine mfo_outv(u, v, w, nel, mx, my, mz)
subroutine mfo_open_files(prefix, ierr)
subroutine prepost(ifdoin, prefin)
subroutine file2(nopen, PREFIX)
subroutine full_restart_save(iosave)
subroutine copy4r(a, b, n)
subroutine mfo_mdatav(u, v, w, nel)
subroutine prepost_map(isave)
subroutine mfo_outs(u, nel, mx, my, mz)
subroutine outfld(prefix)
subroutine copyx4(a, b, n)
subroutine outpost(v1, v2, v3, vp, vt, name3)
subroutine outpost2(v1, v2, v3, vp, vt, nfldt, name3)
subroutine fill_tmp(tdump, id, ie)
subroutine restart_nfld(nfld, prefix)
function i_find_prefix(prefix, imax)