00001 module def_physq_to_array
00002   use phys_constant, only : long
00003   use def_quantities
00004   use def_quantities_derived
00005   implicit none
00006   real(long)  :: physq_array(100,0:100)
00007 contains
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 
00045 
00046 
00047 
00048 
00049 
00050 
00051 
00052 
00053 
00054 
00055 
00056 
00057 
00058 
00059 
00060 
00061 
00062 
00063 
00064 
00065 subroutine physq_to_array(iseq,flag_restmass,num_physq)
00066   implicit none
00067   integer :: iseq, flag_restmass, num_physq, jj
00068 
00069   jj = iseq
00070   physq_array( 1,jj) = dble(iseq)
00071   physq_array( 2,jj) = dble(flag_restmass)
00072   physq_array( 3,jj) = coord_radius_x
00073   physq_array( 4,jj) = proper_radius_x
00074   physq_array( 5,jj) = coord_radius_y
00075   physq_array( 6,jj) = proper_radius_y
00076   physq_array( 7,jj) = coord_radius_z
00077   physq_array( 8,jj) = proper_radius_z
00078   physq_array( 9,jj) = coord_axis_ratio_yx
00079   physq_array(10,jj) = proper_axis_ratio_yx
00080   physq_array(11,jj) = coord_axis_ratio_zx
00081   physq_array(12,jj) = proper_axis_ratio_zx
00082   physq_array(13,jj) = coord_radius_normalized_x
00083   physq_array(14,jj) = coord_radius_normalized_y
00084   physq_array(15,jj) = coord_radius_normalized_z
00085   physq_array(16,jj) = coord_eccentricity_zx
00086   physq_array(17,jj) = proper_eccentricity_zx
00087 
00088   physq_array(18,jj) = omega_M
00089   physq_array(19,jj) = omega
00090   physq_array(20,jj) = admmass
00091   physq_array(21,jj) = komarmass
00092   physq_array(22,jj) = restmass
00093   physq_array(23,jj) = propermass
00094   physq_array(24,jj) = angmom
00095   physq_array(25,jj) = restmass_sph
00096   physq_array(26,jj) = gravmass_sph
00097   physq_array(27,jj) = MoverR_sph
00098   physq_array(28,jj) = schwarz_radi_sph
00099 
00100   physq_array(29,jj) = E_bind_over_M
00101   physq_array(30,jj) = J_over_M2
00102   physq_array(31,jj) = J_over_Madm2
00103   physq_array(32,jj) = T_kinene
00104   physq_array(33,jj) = W_gravene
00105   physq_array(34,jj) = ToverW
00106   physq_array(35,jj) = I_inertia
00107   physq_array(36,jj) = Madm_MK_virial
00108   physq_array(37,jj) = M0_minus_M0sph_normalized
00109   physq_array(38,jj) = rho_c_normalized
00110   physq_array(39,jj) = pre_c_normalized
00111   physq_array(40,jj) = epsilon_c_normalized
00112   physq_array(41,jj) = p_over_rho_c_normalized
00113   physq_array(42,jj) = zrb_xp_plus
00114   physq_array(43,jj) = zrb_xp_minus
00115   physq_array(44,jj) = zrb_yp_plus
00116   physq_array(45,jj) = zrb_yp_minus
00117   physq_array(46,jj) = zrb_zp_plus
00118   physq_array(47,jj) = zrb_zp_minus
00119   physq_array(48,jj) = omega2_M2
00120 
00121   num_physq = 48
00122 
00123 end subroutine physq_to_array
00124 
00125 subroutine array_to_physq(iseq,flag_restmass,num_physq)
00126   implicit none
00127   integer :: iseq, flag_restmass, num_physq, jj
00128 
00129   jj = iseq
00130   iseq = idnint(physq_array( 1,jj))
00131   flag_restmass = idnint(physq_array( 2,jj))
00132   coord_radius_x = physq_array( 3,jj)
00133   proper_radius_x = physq_array( 4,jj)
00134   coord_radius_y = physq_array( 5,jj)
00135   proper_radius_y = physq_array( 6,jj)
00136   coord_radius_z = physq_array( 7,jj)
00137   proper_radius_z = physq_array( 8,jj)
00138   coord_axis_ratio_yx = physq_array( 9,jj)
00139   proper_axis_ratio_yx = physq_array(10,jj)
00140   coord_axis_ratio_zx = physq_array(11,jj)
00141   proper_axis_ratio_zx = physq_array(12,jj)
00142   coord_radius_normalized_x = physq_array(13,jj)
00143   coord_radius_normalized_y = physq_array(14,jj)
00144   coord_radius_normalized_z = physq_array(15,jj)
00145   coord_eccentricity_zx = physq_array(16,jj)
00146   proper_eccentricity_zx = physq_array(17,jj)
00147 
00148   omega_M = physq_array(18,jj)
00149   omega = physq_array(19,jj)
00150   admmass = physq_array(20,jj)
00151   komarmass = physq_array(21,jj)
00152   restmass = physq_array(22,jj)
00153   propermass = physq_array(23,jj)
00154   angmom = physq_array(24,jj)
00155   restmass_sph = physq_array(25,jj)
00156   gravmass_sph = physq_array(26,jj)
00157   MoverR_sph = physq_array(27,jj)
00158   schwarz_radi_sph = physq_array(28,jj)
00159 
00160   E_bind_over_M = physq_array(29,jj)
00161   J_over_M2 = physq_array(30,jj)
00162   J_over_Madm2 = physq_array(31,jj)
00163   T_kinene = physq_array(32,jj)
00164   W_gravene = physq_array(33,jj)
00165   ToverW = physq_array(34,jj)
00166   I_inertia = physq_array(35,jj)
00167   Madm_MK_virial = physq_array(36,jj)
00168   M0_minus_M0sph_normalized = physq_array(37,jj)
00169   rho_c_normalized = physq_array(38,jj)
00170   pre_c_normalized = physq_array(39,jj)
00171   epsilon_c_normalized = physq_array(40,jj)
00172   p_over_rho_c_normalized = physq_array(41,jj)
00173   zrb_xp_plus = physq_array(42,jj)
00174   zrb_xp_minus = physq_array(43,jj)
00175   zrb_yp_plus = physq_array(44,jj)
00176   zrb_yp_minus = physq_array(45,jj)
00177   zrb_zp_plus = physq_array(46,jj)
00178   zrb_zp_minus = physq_array(47,jj)
00179   omega2_M2 = physq_array(48,jj)
00180 
00181   num_physq = 48
00182 
00183 end subroutine array_to_physq
00184 end module def_physq_to_array