00001 ! VARIABLES ::rdata, fdata 00002 ! 1:rho_0 dr_x 00003 ! 2:rho_0 dr_y 00004 ! 3:rho_0 dr_z 00005 ! 4:rho_0 drdot_x 00006 ! 5:rho_0 drdot_y 00007 ! 6:rho_0 drdot_z 00008 ! rdata: contains their real coefficients 00009 ! fdata: contains their fourier coefficients 00010 00011 !top and bottom rows are outside computational domain. 00012 00013 ! dr 00014 ! 1: dr_x 00015 ! 2: dr_y 00016 ! 3: dr_z 00017 ! 4: drdot_x 00018 ! 5: drdot_y 00019 ! 6: drdot_z 00020 00021 00022 ! rPress Pressure 00023 ! fPress 00024 ! rRho Density 00025 ! frho 00026 ! rdB Magnetic perturbation 00027 ! fdB 00028 ! rdU Velocity perturbation 00029 ! fdU 00030 ! rLor Lorentz force 00031 ! fLor 00032 ! rInertia U_0 terms 00033 ! fInertia 00034 00035 00036 00037 00038 ! COEFFICIENTS ::c(:,:,:,i) 00039 ! 1 rho_0 00040 ! 2 Grad rho_0_x 00041 ! 3 Grad rho_0_y 00042 ! 4 Grad rho_0_z 00043 ! 5 Gamma_1 * Press_0 / rho_0 00044 ! 6 [Gamma_1 * Press_0 * (nabla rho_0) /rho_0 -(nabla Press_0)]_x 00045 ! 7 [Gamma_1 * Press_0 * (nabla rho_0) /rho_0 -(nabla Press_0)]_y 00046 ! 8 [Gamma_1 * Press_0 * (nabla rho_0) /rho_0 -(nabla Press_0)]_z 00047 ! 9 [(nabla Press_0)]_x 00048 ! 10 [(nabla Press_0)]_y 00049 ! 11 [(nabla Press_0)]_z 00050 ! 12 1 / rho_0 00051 ! 13 [g / rho_0] 00052 ! 14 g 00053 ! 15 B_0_x 00054 ! 16 B_0_y 00055 ! 17 B_0_z 00056 ! 18 J_0_x 00057 ! 19 J_0_y 00058 ! 20 J_0_z 00059 ! 21 U_0_x 00060 ! 22 U_0_y 00061 ! 23 U_0_z 00062 ! 24 d/dx U_0_x 00063 ! 25 d/dx U_0_y 00064 ! 26 d/dx U_0_z 00065 ! 27 d/dy U_0_x 00066 ! 28 d/dy U_0_y 00067 ! 29 d/dy U_0_z 00068 ! 30 d/dz U_0_x 00069 ! 31 d/dz U_0_y 00070 ! 32 d/dz U_0_z 00071 ! 33 U_0_x/rho_0 00072 ! 34 U_0_y/rho_0 00073 ! 35 U_0_z/rho_0 00074 !BC stuff 00075 ! 36 Gamma_1 Press_0 00076 ! 37 B_0_x/B_0_z (with min(abs(B0))=1e-6 00077 ! 38 B_0_x/B_0_z (with min(abs(B0))=1e-6) 00078 ! 39 d/dx [Press_0 +(B_x0^2+B_y0^2-B_z0^2)/(8 pi)] 00079 ! 40 d/dx [Press_0 +(B_x0^2+B_y0^2-B_z0^2)/(8 pi)] 00080 ! 41 d/dx [Press_0 +(B_x0^2+B_y0^2-B_z0^2)/(8 pi)] 00081 00082 00083 00084 00085 00086 00087 ! TEMPORARY VARIABLES:: 00088 00089 ! fvtemp (a temporary storage are, FS, vector) 00090 ! rvtemp (a temporary storage are, RS, vector) 00091 00092 00093 ! AUXILLARY QUANTITIES 00094 ! t:time, 00095 ! dt: time step, fixed 00096 ! nx,ny,nz: number of elements in x,y, & z directions 00097 ! ider: array for which multiplication in FS = derivative 00098 00099 ! SUBROUTINES 00100 ! initialize : sets up the derivatives in FS 00101 ! initfftw : initializes FFT calls 00102 ! setupcoeff : loads the coefficients array 00103 ! input : loads the Initial Condition 00104 ! derivs : evaluates RHS of the pde's 00105 ! output : outputs RS variables to files. 00106 00107 !functions : 00108 ! ddxc : differentiation wrt x in FS, centred on z cell centres 00109 ! ddxe : differentiation wrt x in FS, centred on z cell edges 00110 ! ddyc : differentiation wrt y in RS, centred on z cell centres 00111 ! ddye : differentiation wrt y in RS, centred on z cell edges 00112 ! ddzc : differentiation wrt z in FS, centred on z cell centres 00113 ! ddze : differentiation wrt z in FS, centred on z cell edges 00114 00115 00116 !EXTERNAL PROGRAMS 00117 !MURaM : generates the cubes 00118 !reduceresolution : reduces MURaM cubes to a managable size 00119 !prepare : takes the reduced MURaM cubes and extrapolates 00120 ! using model S atmosphere 00121 !makecoeff : takes prepare and calculates the backgound for wave 00122 !makeIC : Makes a standing wave, G-mode, IC for wave 00123 !wave : The wave program. 00124 00125 00126 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 00127 !!!!!!!!!!!!!!!!COMMENTS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 00128 ! r... is in real space, f... in fourier space 00129