00001 subroutine calc_omega_drot(vphiy,alphw,psiw,bvydw,hyydw,omega,Jome,Jome_int) 00002 use phys_constant, only : long 00003 use coordinate_grav_r, only : rg 00004 use def_matter_parameter 00005 ! use def_vector_phi, only : vec_phi 00006 implicit none 00007 real(long), intent(in):: vphiy, alphw, psiw, bvydw, hyydw 00008 real(long), intent(inout):: omega, Jome, Jome_int 00009 ! -- Jome: functional of Omega (specific angular momentum in Newtonian) 00010 ! -- Jome_int: integration of Jome w.r.t. omega 00011 ! 00012 real(long) :: omega_bak, pmfac 00013 integer :: flag_st 00014 !------------------------------------------------------------- 00015 ! Assume axisymmetry. 00016 ! Compute only on xz plane then copy to the other phi=const planes. 00017 ! 00018 omega_bak = omega 00019 ! 00020 flag_st = 1 00021 !rotlaw_OJ2nd call calc_omega_drot_secant(vphiy,alphw,psiw,bvydw,hyydw,omega,flag_st) 00022 !rotlaw_OJ4th call calc_omega_drot_secant(vphiy,alphw,psiw,bvydw,hyydw,omega,flag_st) 00023 !rotlaw_OJjco call calc_omega_drot_secant(vphiy,alphw,psiw,bvydw,hyydw,omega,flag_st) 00024 ! 00025 ! call calc_omega_drot_secant(vphiy,alphw,psiw,bvydw,hyydw,omega,flag_st) 00026 if (flag_st.eq.1) then 00027 omega = omega_bak 00028 call calc_omega_drot_bisection(vphiy,alphw,psiw,bvydw,hyydw,omega) 00029 end if 00030 ! 00031 !rotlaw_type0 Jome = A2DR*omega*((ome/omega)**index_DR - 1.00d0) 00032 !rotlaw_type1 pmfac = -1.0d0 00033 !rotlaw_type1 Jome = A2DR*omega*(pmfac*(omega/ome - 1.0d0))**index_DR 00034 !rotlaw_type2 pmfac = 1.0d0 00035 !rotlaw_type2 Jome = A2DR*omega*(pmfac*(omega/ome - 1.0d0))**index_DR 00036 !rotlaw_OJ2nd call calc_J_utuphi(vphiy,alphw,psiw,bvydw,hyydw,omega,Jome) 00037 !rotlaw_OJ4th call calc_J_utuphi(vphiy,alphw,psiw,bvydw,hyydw,omega,Jome) 00038 !rotlaw_OJjco call calc_J_utuphi(vphiy,alphw,psiw,bvydw,hyydw,omega,Jome) 00039 ! 00040 !rotlaw_type0 call calc_Jome_int('type0',omega,Jome,Jome_int) 00041 !rotlaw_type1 call calc_Jome_int('type1',omega,Jome,Jome_int) 00042 !rotlaw_type2 call calc_Jome_int('type2',omega,Jome,Jome_int) 00043 !rotlaw_OJ2nd call calc_Jome_int('OJ2nd',omega,Jome,Jome_int) 00044 !rotlaw_OJ4th call calc_Jome_int('OJ4th',omega,Jome,Jome_int) 00045 !rotlaw_OJjco call calc_Jome_int('OJjco',omega,Jome,Jome_int) 00046 ! 00047 end subroutine calc_omega_drot