⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 phys_idealized.f90

📁 CCSM Research Tools: Community Atmosphere Model (CAM)
💻 F90
字号:
#include <misc.h>#include <params.h>subroutine phys_idealized (phys_state, phys_tend, ztodt, etamid)!----------------------------------------------------------------------- ! ! Purpose: !   Driver for idealized physics! ! Method: ! ! Author: !   B. A. Boville!-----------------------------------------------------------------------  use precision  use ppgrid       , only: pcols, pver, pverp, begchunk, endchunk  use phys_grid    , only: get_ncols_p  use physics_types, only: physics_state, physics_tend  use buffer       , only: pblht, tpert, qpert  use comsrf       , only: srfflx_state2d  use diagnostics  , only: diag_dynvar  use geopotential , only: geopotential_t  use physconst,     only: zvir, rair, gravit!-----------------------------------------------------------------------  implicit none!-----------------------------------------------------------------------!! Input arguments!  type(physics_state), intent(inout), dimension(begchunk:endchunk) :: phys_state  real(r8), intent(in) :: etamid(pver)     ! vertical coords at midpoints   real(r8), intent(in) :: ztodt            ! time step!! Output arguments!  type(physics_tend ), intent(out  ), dimension(begchunk:endchunk) :: phys_tend!!---------------------------Local workspace-----------------------------  integer  :: i,k,lchnk      ! indices  integer  :: ncol             ! number of columns  real(r8) rpdel(pcols,pver)   ! 1./(pintm1(k+1)-pintm1(k))!-----------------------------------------------------------------------!$OMP PARALLEL DO PRIVATE (I, K, LCHNK, NCOL, RPDEL)  do lchnk=begchunk, endchunk     ncol = get_ncols_p(lchnk)!! Dump dynamics variables to H.T.!     do k=1,pver        do i=1,ncol           rpdel(i,k) = 1./phys_state(lchnk)%pdel(i,k)        end do     end do     call geopotential_t(                                                             &          phys_state(lchnk)%lnpint  , phys_state(lchnk)%lnpmid, phys_state(lchnk)%pint    , &          phys_state(lchnk)%pmid    , phys_state(lchnk)%pdel  , rpdel, phys_state(lchnk)%t, &          phys_state(lchnk)%q(:,:,1), rair , gravit, zvir , phys_state(lchnk)%zi        , &          phys_state(lchnk)%zm      , ncol )     call diag_dynvar (lchnk, ncol, phys_state(lchnk))!! Set tendencies to 0!     do k=1,pver        do i=1,ncol           phys_tend(lchnk)%dTdt(i,k) = 0.           phys_tend(lchnk)%dudt(i,k) = 0.           phys_tend(lchnk)%dvdt(i,k) = 0.        end do     end do     do i=1,ncol        phys_tend(lchnk)%flx_net(i) = 0.     end do!     call t_startf('tphysidl')     call tphysidl ( &          ztodt, srfflx_state2d(lchnk)%wsx, srfflx_state2d(lchnk)%wsy, &             etamid, phys_state(lchnk), phys_tend(lchnk) )     call t_stopf('tphysidl')  end do                    ! chunk loop  return	end subroutine phys_idealized

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -