Page 1 (printed 3/30/99) DDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999))))UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVVDDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999)))) NNNNAAAAMMMMEEEE ddddoooo____ppppppppmmmmllllrrrr0000____3333ddddcccc____ggggaaaammmmmmmmaaaa - Given 1d strips of zone averages of density, pressure, and velocity defined on a uniform grid, new zone averages of these quantities are returned by advancing the Euler equations forward one timestep in the X direction. The full2-dimensional update requires directional splitting by the calling program. FFFFOOOORRRRTTTTRRRRAAAANNNN SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ddddoooo____ppppppppmmmmllllrrrr0000____3333ddddcccc____ggggaaaammmmmmmmaaaa(((( XXXXLLLL,,,, RRRRHHHHOOOOZZZZBBBBBBBB,,,, RRRRHHHHOOOO,,,, RRRRHHHHOOOOZZZZTTTTTTTT,,,, RRRRHHHHOOOOZZZZMMMMMMMM,,,, RRRRHHHHOOOOZZZZPPPPPPPP,,,, PPPPZZZZBBBBBBBB,,,, PPPP,,,, PPPPZZZZTTTTTTTT,,,, PPPPZZZZMMMMMMMM,,,, PPPPZZZZPPPPPPPP,,,, UUUU1111ZZZZBBBBBBBB,,,, UUUU1111,,,, UUUU1111ZZZZTTTTTTTT,,,, UUUU1111ZZZZMMMMMMMM,,,, UUUU1111ZZZZPPPPPPPP,,,, UUUU2222ZZZZBBBBBBBB,,,, UUUU2222ZZZZBBBB,,,, UUUU2222,,,, UUUU2222ZZZZTTTT,,,, UUUU2222ZZZZTTTTTTTT,,,, UUUU2222ZZZZMMMMMMMM,,,, UUUU2222ZZZZPPPPPPPP,,,, UUUU3333ZZZZMMMMMMMM,,,, UUUU3333ZZZZMMMM,,,, UUUU3333,,,, UUUU3333ZZZZPPPP,,,, UUUU3333ZZZZPPPPPPPP,,,, UUUU3333ZZZZBBBBBBBB,,,, UUUU3333ZZZZTTTTTTTT,,,, RRRRHHHHOOOONNNNUUUU,,,, PPPPNNNNUUUU,,,, UUUU1111NNNNUUUU,,,, UUUU2222NNNNUUUU,,,, UUUU3333NNNNUUUU,,,, EEEEOOOOSSSSGGGGAAAAMMMM,,,, DDDDTTTT,,,, SSSSMMMMLLLLRRRRHHHHOOOO,,,, SSSSMMMMAAAALLLLLLLLPPPP,,,, SSSSMMMMAAAALLLLLLLLUUUU,,,, SSSSMMMMAAAALLLLLLLLEEEE,,,, CCCCOOOOUUUURRRRMMMMXXXX,,,, NNNNZZZZOOOONNNNEEEESSSS,,,, NNNNBBBBDDDDYYYY )))) rrrreeeeaaaallll****4444 XXXXLLLL((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY++++1111)))) rrrreeeeaaaallll****4444 RRRRHHHHOOOOZZZZBBBBBBBB((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 RRRRHHHHOOOO((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 RRRRHHHHOOOOZZZZTTTTTTTT((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 RRRRHHHHOOOOZZZZMMMMMMMM((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 RRRRHHHHOOOOZZZZPPPPPPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 PPPPZZZZBBBBBBBB((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 PPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 PPPPZZZZTTTTTTTT((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 PPPPZZZZMMMMMMMM((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 PPPPZZZZPPPPPPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU1111ZZZZBBBBBBBB((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU1111((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU1111ZZZZTTTTTTTT((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU1111ZZZZMMMMMMMM((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU1111ZZZZPPPPPPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU2222ZZZZBBBBBBBB((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU2222ZZZZBBBB((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU2222((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU2222ZZZZTTTT((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU2222ZZZZTTTTTTTT((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU2222ZZZZMMMMMMMM((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU2222ZZZZPPPPPPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU3333ZZZZBBBBBBBB((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU3333((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU3333ZZZZTTTTTTTT((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU3333ZZZZMMMMMMMM((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU3333ZZZZMMMM((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU3333ZZZZPPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU3333ZZZZPPPPPPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 RRRRHHHHOOOONNNNUUUU((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 PPPPNNNNUUUU((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU1111NNNNUUUU((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU2222NNNNUUUU((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****4444 UUUU3333NNNNUUUU((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) Page 1 (printed 3/30/99) DDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999))))UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVVDDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999)))) rrrreeeeaaaallll****4444 EEEEOOOOSSSSGGGGAAAAMMMM,,,, DDDDTTTT,,,, SSSSMMMMLLLLRRRRHHHHOOOO,,,, SSSSMMMMAAAALLLLLLLLPPPP.... SSSSMMMMAAAALLLLLLLLUUUU,,,, SSSSMMMMAAAALLLLLLLLEEEE,,,, rrrreeeeaaaallll****4444 CCCCOOOOUUUURRRRMMMMXXXX iiiinnnntttteeeeggggeeeerrrr****4444 NNNNZZZZOOOONNNNEEEESSSS,,,, NNNNBBBBDDDDYYYY ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee 3333____ddddoooo____ppppppppmmmmllllrrrr0000____3333ddddcccc____ggggaaaammmmmmmmaaaa(((( XXXXLLLL,,,, RRRRHHHHOOOOZZZZBBBBBBBB,,,, RRRRHHHHOOOO,,,, RRRRHHHHOOOOZZZZTTTTTTTT,,,, RRRRHHHHOOOOZZZZMMMMMMMM,,,, RRRRHHHHOOOOZZZZPPPPPPPP,,,, PPPPZZZZBBBBBBBB,,,, PPPP,,,, PPPPZZZZTTTTTTTT,,,, PPPPZZZZMMMMMMMM,,,, PPPPZZZZPPPPPPPP,,,, UUUU1111ZZZZBBBBBBBB,,,, UUUU1111,,,, UUUU1111ZZZZTTTTTTTT,,,, UUUU1111ZZZZMMMMMMMM,,,, UUUU1111ZZZZPPPPPPPP,,,, UUUU2222ZZZZBBBBBBBB,,,, UUUU2222ZZZZBBBB,,,, UUUU2222,,,, UUUU2222ZZZZTTTT,,,, UUUU2222ZZZZTTTTTTTT,,,, UUUU2222ZZZZMMMMMMMM,,,, UUUU2222ZZZZPPPPPPPP,,,, UUUU3333ZZZZMMMMMMMM,,,, UUUU3333ZZZZMMMM,,,, UUUU3333,,,, UUUU3333ZZZZPPPP,,,, UUUU3333ZZZZPPPPPPPP,,,, UUUU3333ZZZZBBBBBBBB,,,, UUUU3333ZZZZTTTTTTTT,,,, RRRRHHHHOOOONNNNUUUU,,,, PPPPNNNNUUUU,,,, UUUU1111NNNNUUUU,,,, UUUU2222NNNNUUUU,,,, UUUU3333NNNNUUUU,,,, EEEEOOOOSSSSGGGGAAAAMMMM,,,, DDDDTTTT,,,, SSSSMMMMLLLLRRRRHHHHOOOO,,,, SSSSMMMMAAAALLLLLLLLPPPP,,,, SSSSMMMMAAAALLLLLLLLUUUU,,,, SSSSMMMMAAAALLLLLLLLEEEE,,,, CCCCOOOOUUUURRRRMMMMXXXX,,,, NNNNZZZZOOOONNNNEEEESSSS,,,, NNNNBBBBDDDDYYYY )))) rrrreeeeaaaallll****8888 XXXXLLLL((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY++++1111)))) rrrreeeeaaaallll****8888 RRRRHHHHOOOOZZZZBBBBBBBB((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 RRRRHHHHOOOO((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 RRRRHHHHOOOOZZZZTTTTTTTT((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 RRRRHHHHOOOOZZZZMMMMMMMM((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 RRRRHHHHOOOOZZZZPPPPPPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 PPPPZZZZBBBBBBBB((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 PPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 PPPPZZZZTTTTTTTT((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 PPPPZZZZMMMMMMMM((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 PPPPZZZZPPPPPPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU1111ZZZZBBBBBBBB((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU1111((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU1111ZZZZTTTTTTTT((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU1111ZZZZMMMMMMMM((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU1111ZZZZPPPPPPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU2222ZZZZBBBBBBBB((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU2222ZZZZBBBB((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU2222((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU2222ZZZZTTTT((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU2222ZZZZTTTTTTTT((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU2222ZZZZMMMMMMMM((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU2222ZZZZPPPPPPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU3333ZZZZBBBBBBBB((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU3333((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU3333ZZZZTTTTTTTT((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU3333ZZZZMMMMMMMM((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU3333ZZZZMMMM((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU3333ZZZZPPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU3333ZZZZPPPPPPPP((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 RRRRHHHHOOOONNNNUUUU((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 PPPPNNNNUUUU((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU1111NNNNUUUU((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU2222NNNNUUUU((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 UUUU3333NNNNUUUU((((1111----NNNNBBBBDDDDYYYY::::NNNNZZZZOOOONNNNEEEESSSS++++NNNNBBBBDDDDYYYY)))) rrrreeeeaaaallll****8888 EEEEOOOOSSSSGGGGAAAAMMMM,,,, DDDDTTTT,,,, SSSSMMMMLLLLRRRRHHHHOOOO,,,, SSSSMMMMAAAALLLLLLLLPPPP.... SSSSMMMMAAAALLLLLLLLUUUU,,,, SSSSMMMMAAAALLLLLLLLEEEE,,,, rrrreeeeaaaallll****8888 CCCCOOOOUUUURRRRMMMMXXXX iiiinnnntttteeeeggggeeeerrrr****4444 NNNNZZZZOOOONNNNEEEESSSS,,,, NNNNBBBBDDDDYYYY Page 2 (printed 3/30/99) DDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999))))UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVVDDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999)))) These two routines are functionally the same. They differ only in the type declarations of their (real) arguments (that is, single or double precision.) AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS XXXXLLLL [input] array of the locations of the lefthand zone interfaces. This defines the grid. Values on the range [1-NBDY, NZONES+NBDY+1] are required RRRRHHHHOOOOZZZZBBBBBBBB [input] array of zone averages of density, two rows below and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required RRRRHHHHOOOO [input] array of zone averages of density. Values on the range [1-NBDY, NZONES+NBDY] are required RRRRHHHHOOOOZZZZTTTTTTTT [input] array of zone averages of density, two rows above and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required RRRRHHHHOOOOZZZZMMMMMMMM [input] array of zone averages of density, two planes behind and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required RRRRHHHHOOOOZZZZPPPPPPPP [input] array of zone averages of density, two planes before and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required PPPPZZZZBBBBBBBB [input] array of zone averages of pressure, two rows below and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required PPPP [input] array of zone averages of pressure. Values on the Page 3 (printed 3/30/99) DDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999))))UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVVDDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999)))) range [1-NBDY, NZONES+NBDY] are required PPPPZZZZTTTTTTTT [input] array of zone averages of pressure, two rows above and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required PPPPZZZZMMMMMMMM [input] array of zone averages of pressure, two planes behind and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required PPPPZZZZPPPPPPPP [input] array of zone averages of pressure, two planes behind and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU1111ZZZZBBBBBBBB [input] array of zone averages of longitudinal (u1) velocity, two rows below and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU1111ZZZZBBBB [input] array of zone averages of longitudinal (u1) velocity, one row below and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU1111 [input] array of zone averages of longitudinal (u1) velocity. That is, the velocity, a vector quantity, is resolved into three orthogonal components, one parallel to the direction of the pass (longitudinal-u1) and two perpendicular to the direction of the pass, and to each other (transverse velocities u2, u3.) Values on the range [1-NBDY, NZONES+NBDY] are required Page 4 (printed 3/30/99) DDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999))))UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVVDDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999)))) UUUU1111ZZZZTTTT [input] array of zone averages of longitudinal (u1) velocity, one row above and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU1111ZZZZTTTTTTTT [input] array of zone averages of longitudinal (u1) velocity, two rows above and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU1111ZZZZMMMMMMMM [input] array of zone averages of longitudinal (u1) velocity, two planes behind and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU1111ZZZZPPPPPPPP [input] array of zone averages of longitudinal (u1) velocity, two planes before and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU2222ZZZZBBBBBBBB [input] array of zone averages of transverse velocity (u2), two rows below and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU2222ZZZZBBBB [input] array of zone averages of transverse velocity (u2), one row below and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required Page 5 (printed 3/30/99) DDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999))))UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVVDDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999)))) UUUU2222 [input] array of zone averages of transverse velocity (u2). That is, the velocity, a vector quantity, is resolved into two orthogonal components, one parallel to the direction of the pass (longitudinal) and one perpendicular to the direction of the pass (transverse.) Values on the range [1-NBDY, NZONES+NBDY] are required UUUU2222ZZZZTTTT [input] array of zone averages of transverse velocity (u2), one row above and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU2222ZZZZTTTTTTTT [input] array of zone averages of transverse velocity (u2), two rows above and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU2222ZZZZMMMMMMMM [input] array of zone averages of transverse velocity (u2), two planes behind and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU2222ZZZZPPPPPPPP [input] array of zone averages of transverse velocity (u2), two planes before and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required Page 6 (printed 3/30/99) DDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999))))UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVVDDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999)))) UUUU3333ZZZZBBBBBBBB [input] array of zone averages of transverse velocity (u3), two rows below and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU3333 [input] array of zone averages of transverse velocity (u3). That is, the velocity, a vector quantity, is resolved into two orthogonal components, one parallel to the direction of the pass (longitudinal) and one perpendicular to the direction of the pass (transverse.) Values on the range [1-NBDY, NZONES+NBDY] are required UUUU3333ZZZZTTTTTTTT [input] array of zone averages of transverse velocity (u3), two rows above and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU3333ZZZZMMMMMMMM [input] array of zone averages of transverse velocity (u3), two planes behind and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU3333ZZZZMMMM [input] array of zone averages of transverse velocity (u3), one plane behind and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU3333ZZZZPPPP [input] array of zone averages of transverse velocity (u3), one plane before and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required UUUU3333ZZZZPPPPPPPP [input] array of zone averages of transverse velocity (u3), two planes before and parallel to the row to be updated. Values on the range [1-NBDY, NZONES+NBDY] are required Page 7 (printed 3/30/99) DDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999))))UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVVDDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999)))) RRRRHHHHOOOONNNNUUUU [output] array of updated zone averages of density. Values on the range [1, NZONES] are computed PPPPNNNNUUUU [output] array of updated zone averages of pressure. Values on the range [1, NZONES] are computed UUUU1111NNNNUUUU [output] array of updated zone averages of longitudinal (u1) velocity. Values on the range [1, NZONES] are computed UUUU2222NNNNUUUU [output] array of updated zone averages of transverse (u2) velocity. Values on the range [1, NZONES] are computed UUUU3333NNNNUUUU [output] array of updated zone averages of transverse (u3) velocity. Values on the range [1, NZONES] are computed EEEEOOOOSSSSGGGGAAAAMMMM [input] the ratio of specific heats. A gamma-law equation of state is used in which p(i)=(gamma- 1)*rho(i)*ei(i), with ei being the specific internal energy. DDDDTTTT [input] the timestep. SSSSMMMMLLLLRRRRHHHHOOOO [input] This indicates what should be considered a trivial values of density. It is used to reduce the effects of roundoff errors. Reasonable values are 1.0e-06 for single precision and 1.0e-08 for double precision. SSSSMMMMAAAALLLLLLLLPPPP [input] This indicates what should be considered a trivial values of pressure. It is used to reduce the effects of roundoff errors. Reasonable values are Page 8 (printed 3/30/99) DDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999))))UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVVDDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999)))) 1.0e-06 for single precision and 1.0e-08 for double precision. SSSSMMMMAAAALLLLLLLLUUUU [input] This indicates what should be considered a trivial values of velocity. It is used to reduce the effects of roundoff errors. Reasonable values are 1.0e-06 for single precision and 1.0e-08 for double precision. SSSSMMMMAAAALLLLLLLLEEEE [input] This indicates what should be considered a trivial values of energy. It is used to reduce the effects of roundoff errors. Reasonable values are 1.0e-06 for single precision and 1.0e-08 for double precision. CCCCOOOOUUUURRRRMMMMXXXX [input] The maximum Courant number encountered during this call. The original value of COURMX is lost during the computation. The Courant number is a stability condition and should be less than one. NNNNZZZZOOOONNNNEEEESSSS [input] the array dimension, or number of zones to process, not counting boundary or ``fake'' zones. NNNNBBBBDDDDYYYY [input] the number of boundary of ``fake'' zones which have been set at each end of the 1d arrays to implement the users choice of boundary conditions. This must be atleast 9. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN These routines are examples of one-dimensional hydrodynamics subroutines written a Lagrange plus remap style using elements from the PPMLIB library. This routine is suitable for three-dimensional problems when combined with the technique of Directional splitting. In the Lagrangian step, piecewise Parabolic interpolations are constructed for pressure and longitudinal velocity. Where the input data distribution is not well represented by parabolae or poorly resolved, (that is, the data are ``unsmooth''), monotonicity constraints are applied. Page 9 (printed 3/30/99) DDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999))))UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVVDDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999)))) Next, a Riemann solver is used to resolve these resultant discontinuities into time-averaged fluxes at the zone interfaces. These fluxes are differenced conservatively to provide new zone-averaged values of density, pressure (or energy), and velocity. The transverse velocity is unchanged at this point. At the beginning of the remap step, new piecewise Parabolic interpolations are constructed for pressure and longitudinal velocity, using the updated zone-averages from the Lagrangian step. Where the data are not well represented by parabolae or poorly resolved, (that is, the data are ``unsmooth''), monotonicity constraints are applied. Piecewise Parabolic interpolations are constructed for the density. Contact discontinuity detection is performed and where it is determined likely that a contact discontinuity exists, the density interpolations are modified to better represent discontinuities, rather than a smooth distribution. Monotonicity constrains are applied where the density data are deemed unsmooth. Next, regions of overlap between the Eulerian grid (the original grid) and the Lagrangian grid are found. The piecewise parabolic interpolations found above are integrated over these overlap regions to produce advection fluxes. These fluxes are differenced conservatively to provide new zone-averaged values of density, pressure (or energy), and longitudinal velocity. The transverse velocities are interpolated with monotonicity constraints. These interpolations are integrated over the overlap regions and combined with the volume or mass fluxes found above, as appropriate, in construct the advected transverse momenta fluxes. These fluxes are then differenced conservatively producing new transverse velocity zone-averages. Finally, a diffusion step is applied. Shock detection is performed, so that the additional diffusion is applied only in those zone which require it. This includes strong shocks and certain pathological case such as a shock moving slowly through the numerical grid. In addition to the updated zone averages of density, pressure, and the velocities, an estimate of the Courant Page 10 (printed 3/30/99) DDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999))))UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVVDDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999)))) number is also returned to the calling program. In order for the method to be stable, the various Domains of Dependence for each zone interface may not exceed one zone in width. Nor may any wave travel more than one zone width during the timestep. During the remap step, stability requires that no more than one vone (volume or mass) may be advected across any interface during a single timestep. The three-dimensional Eulerian hydrodynamic equations may be approximated by applying this one-dimensional operator by applying directional-splitting to treat gradients in the x-, y-, and z-directions independently. An x-pass is performed first to compute the gradients in the x-direction by applying the one-dimensional operator to each row of the data domain. This is then followed by a y-pass in which the one-dimensional operator is applied to each column of the data domain, giving the y-direction gradients. Finally a z- pass in which the one-dimensional operator is applied to each column of the data domain in the z-direction, giving the z-direction gradients. By applying a one-dimensional operator in a symmetrized order, second-order accuracy can be obtained. A gamma law equation of state is assumed: p = ( gamma -1 ) * rho * ei where p is the pressure, rho is the density, ei is the internal energy, and gamma is the ratio of specific heats. Gamma is assumed to be constant and uniform. HHHHIIIINNNNTTTTSSSS +o The required problem boundary conditions may be enforced by setting appropriate zone-averaged values of the fake zones. +o The timestep should be adjusted so that the Courant number (COURMX) remains less than 1.0. Because the actual Courant number encountered during a call is not known until after the call is completed, a common procedure is to adjust the new timestep so that the Courant number from the just completed call is <= 0.8. +o To maintain the second order accuracy, the timestep must not be varied between the sets of symmetrized passes x-y-z, z-y-x, etc. [[[[dddd____]]]]ddddoooo____ppppppppmmmmllllrrrr0000____1111ddddcccc. Page 11 (printed 3/30/99) DDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999))))UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVVDDDDOOOO____PPPPPPPPMMMMLLLLRRRR0000____3333DDDDCCCC____GGGGAAAAMMMMMMMMAAAA((((JJJJaaaannnn 1111999999999999)))) +o For an example of calls to the general Equation of state routines, see [[[[dddd____]]]]ddddoooo____ppppppppmmmmllllrrrr0000____1111ddddcccc. +o For an example of an non uniform grid see [[[[dddd____]]]]ddddoooo____ppppppppmmmmllllrrrr____1111ddddcccc____ggggaaaammmmmmmmaaaa. +o For examples of higher dimensions see [[[[dddd____]]]]ddddoooo____ppppppppmmmmllllrrrr0000____1111ddddcccc____ggggaaaammmmmmmmaaaa or [[[[dddd____]]]]ddddoooo____ppppppppmmmmllllrrrr0000____2222ddddcccc____ggggaaaammmmmmmmaaaa . BBBBUUUUGGGGSSSS +o SSSSEEEEEEEE AAAALLLLSSSSOOOO DO_PPMLR0_1DC, DO_PPMLR0_1DC_GAMMA, DO_PPMLR_1DC_GAMMA, DO_PPMLR0_2DC_GAMMA, FFFFIIIILLLLEEEESSSS ppm98_dfns.h ppm98_bdys.h BBBBUUUUGGGG RRRREEEEPPPPOOOORRRRTTTTSSSS TTTTOOOO ppmlib@sapphire.lcse.umn.edu AAAAUUUUTTTTHHHHOOOORRRRSSSS PPPPaaaauuuullll RRRR.... WWWWooooooooddddwwwwaaaarrrrdddd paul@lcse.umn.edu BBBB.... KKKKeeeevvvviiiinnnn EEEEddddggggaaaarrrr bke@lcse.umn.edu Department of Astronomy University of Minnesota Minneapolis, MN 55455 USA Page 12 (printed 3/30/99)