Annotation of researchv10no/cmd/view2d/cray/mvefil.f, revision 1.1

1.1     ! root        1:       subroutine mvefil (unit,time,nx,ny,fmin,fmax,outsid,f)
        !             2: *
        !             3: *     mvefil writes the array f(nx,ny) in a format for view2d movies.
        !             4: *     input:
        !             5: *          unit   = integer variable specifying output unit
        !             6: *          time   = real variable specifying time
        !             7: *          nx     = integer variable specifying number of x points
        !             8: *          ny     = integer variable specifying number of y points
        !             9: *          fmin   = real variable specifying minimum of f(i,j)
        !            10: *          fmax   = real variable specifying maximum of f(i,j)
        !            11: *               If fmin=fmax on input, the range will be set inside.
        !            12: *          outsid  = real variable specifying points outside region
        !            13: *                   if f(i,j) <= outsid => point is outside region
        !            14: *          f      = real array of points to be plotted
        !            15: *                   f(i,j)  i = 1,...,nx  j = 1,...,ny
        !            16: *   suggested jcl:
        !            17: * DISPOSE,DN=FT30,MF=XH,DC=ST,TEXT='|/b2/c1127/ehg/rks astro/swift file'.    
        !            18: *
        !            19: *  Each data point is represented in the packed ASCII character format
        !            20: *     by a 12 bit integer between 0 and 4095.  
        !            21: *             f(i,j)=fmin+(fmax-fmin)*icode(i,j)/4095
        !            22: *     icode is packed as two 6 bit integers ( / hi / lo / ).  Each 6 bits
        !            23: *     is represented as an printable ASCII character, 6 bits + ! (033 octal).
        !            24: *     A point which lies outside the computation region is flaged with (~~).
        !            25: *     written by R. Kent Smith,   May 1984
        !            26: *       to supply programs written by Andrew Hume and Eric Grosse
        !            27:       integer bits,shift,lbuf
        !            28:       parameter (bits=64,lbuf=128)
        !            29:       parameter (shift=2**(bits-16))
        !            30:       integer high,low,zero
        !            31:       data high,low,zero,otside/7700b,77b,2r!!,2r~~/
        !            32:       integer hi,lo,buf(lbuf)
        !            33: *
        !            34:       integer unit,nx,ny
        !            35:       real time
        !            36:       real fmin,fmax,f(1)
        !            37: *
        !            38:       if (unit.le.0) return
        !            39: *
        !            40:       nxny=nx*ny
        !            41:       if (fmin.ge.fmax) then
        !            42: *
        !            43:          fmin=1e500
        !            44:          fmax=-fmin
        !            45:          do 110 i=1,nxny
        !            46:             c=f(i)
        !            47:             if(c.gt.outsid) then
        !            48:                fmin=amin1(c,fmin)
        !            49:                fmax=amax1(c,fmax)
        !            50:             end if
        !            51:   110       continue
        !            52: *
        !            53:          end if
        !            54: *
        !            55:       write (unit,6000) time,nx,ny,fmin,fmax
        !            56:  6000 format(1x,e12.6,2i6,1x,e12.6,1x,e12.6)
        !            57: *
        !            58:       if (fmax.gt.fmin) then
        !            59:          slope=4095.0/(fmax-fmin)
        !            60:       else
        !            61:          slope=0.0
        !            62:       end if
        !            63:       nseg=(nxny-1)/lbuf
        !            64:       num=nxny-nseg*lbuf
        !            65:       lf=0
        !            66:       do 220 iseg=1,nseg+1
        !            67: *
        !            68:          do 210 i=1,num
        !            69: *
        !            70:             code=slope*(f(lf+i)-fmin)
        !            71:             index=int(code+0.5)
        !            72: *
        !            73:             lo=low.and.index
        !            74:             hi=high.and.index
        !            75:             ibuf=4*hi+lo+zero
        !            76:             buf(i)=cvmgp(ibuf,otside,index)*shift
        !            77: *
        !            78:   210       continue
        !            79: *
        !            80:          write (unit,6100) (buf(i),i=1,num)
        !            81:  6100    format(32a2)
        !            82: *
        !            83:          lf=lf+num
        !            84:          num=lbuf
        !            85:   220    continue
        !            86: *
        !            87:       return
        !            88:       end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.