! module argon_module ! ! Advance argon by one time step. ! use addfld_module,only: addfld implicit none contains !----------------------------------------------------------------------- subroutine comp_ar( | lev0,lev1,lon0,lon1,lat) use compdat_module,only: war ! need to define this as in tgcm24 ! ! Input args: integer,intent(in) :: lev0,lev1,lon0,lon1,lat ! ! Local: integer :: i real :: ar_lbc(lon0:lon1,3,lat0:lat1) real :: ar_ubc(lon0:lon1,lat0:lat1) do i=lon0,lon1 ar_lbc(i,1,lat) = 0. ar_lbc(i,2,lat) = 1. ar_lbc(i,3,lat) = -sqrt(war(1)*war(2)) ! from tgcm24 ar_ubc(i,lat) = 0. enddo end subroutine comp_ar !----------------------------------------------------------------------- subroutine minor_ar(tn,o2,ox,n2,he,w,difkk,ar,ar_nm,hdar, | ar_out,arnm_out,lev0,lev1,lon0,lon1,lat0,lat1) use compdat_module,only: war ! (nlevp1) ! ! Input args: integer,intent(in) :: lev0,lev1,lon0,lon1,lat0,lat1 real,dimension(lev0:lev1,lon0-2:lon1+2,lat0-2:lat1+2), | intent(in) :: | tn, ! neutral temperature (deg K) | o2, ! molecular oxygen (mmr) | ox, ! oxygen family (mmr) | n2, ! molecular nitrogen (mmr) | he, ! helium (mmr) | w, ! omega (vertical velocity) | difkk, ! eddy viscosity (from mgw) | ar , ! argon (mmr) | ar_nm, ! argon at time n-1 | hdar ! horizontal diffusion ! ! Local: integer :: i,k,ibndbot,ibndtop,i0,i1,lat real,parameter :: phi_ar(3) = (/1.042,1.509,1.176/) real,parameter :: alfa_ar = 0.17 ! thermal diffusion coefficient real,parameter :: xyar = 1.e-10 real :: ar_prod(lev0:lev1,lon0:lon1,lat0:lat1) real :: ar_loss(lev0:lev1,lon0:lon1,lat0:lat1) ibndbot = 0 ! ilbc in minor ibndtop = 1 ! iubc in minor ar_prod = 0. ar_loss = 0. ! call minor(tn,o2,ox,n2,he,w,difkk,ar,ar_nm,hdar,ar_lbc, ! | ar_ubc,ar_loss,ar_prod,war,rmass_ar,phi_ar,alfa_ar, ! | xyar,ibndbot,ibndtop,ar_out,arnm_out, ! | lev0,lev1,lon0,lon1,lat0,lat1,0) end subroutine minor_ar !----------------------------------------------------------------------- end module argon_module