亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dyndrv.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
字號:
#include <misc.h>#include <params.h>! Note that this routine has 2 complete blocks of code for PVP vs.! non-PVP.  Make sure to make appropriate coding changes where! necessary.#if ( defined PVP )subroutine dyndrv(grlps1  ,grt1    ,grq1    ,grz1    ,grd1    , &                  grfu1   ,grfv1   ,grlps2  ,grt2    ,grq2    , &                  grz2    ,grd2    ,grfu2   ,grfv2   ,vmax2d  , &                  vmax2dt ,vcour   )!-----------------------------------------------------------------------!! Purpose:! Driving routine for Gaussian quadrature, semi-implicit equation! solution and linear part of horizontal diffusion.! The need for this interface routine is to have a multitasking! driver for the spectral space routines it invokes.!! Author:  J. Rosinski!!-----------------------------------------------------------------------!! $Id: dyndrv.F90,v 1.5 2001/10/19 17:50:34 eaton Exp $! $Author: eaton $!!-----------------------------------------------------------------------  use precision  use pmgrid  use pspect  use commap  use time_manager, only: get_step_size  implicit none!------------------------------Arguments--------------------------------!  real(r8), intent(in)   :: grlps1(2*pmmax,plat/2)      ! ----------------------------  real(r8), intent(in)   :: grt1  (2*pmmax,plev,plat/2) ! |  real(r8), intent(in)   :: grq1  (2*pmmax,plev,plat/2) ! |  real(r8), intent(in)   :: grz1  (2*pmmax,plev,plat/2) ! |  real(r8), intent(in)   :: grd1  (2*pmmax,plev,plat/2) ! |  real(r8), intent(in)   :: grfu1 (2*pmmax,plev,plat/2) ! | see quad for definitions:  real(r8), intent(in)   :: grfv1 (2*pmmax,plev,plat/2) ! | these variables are  real(r8), intent(in)   :: grlps2(2*pmmax,plat/2)      ! | declared here for data  real(r8), intent(in)   :: grt2  (2*pmmax,plev,plat/2) ! | scoping  real(r8), intent(in)   :: grq2  (2*pmmax,plev,plat/2) ! |  real(r8), intent(in)   :: grz2  (2*pmmax,plev,plat/2) ! |  real(r8), intent(in)   :: grd2  (2*pmmax,plev,plat/2) ! |  real(r8), intent(in)   :: grfu2 (2*pmmax,plev,plat/2) ! |  real(r8), intent(in)   :: grfv2 (2*pmmax,plev,plat/2) ! ----------------------------  real(r8), intent(in)   :: vmax2d (plev,plat)   ! max. wind at each level, lat  real(r8), intent(in)   :: vmax2dt(plev,plat)   ! max. truncated wind at each lvl, lat  real(r8), intent(in)   :: vcour  (plev,plat)   ! maximum Courant number in slice!!---------------------------Local workspace-----------------------------!  real(r8) ztdtsq(2*pnmax)  ! dt*(n(n+1)/a^2)  real(r8) zdt              ! dt  real(r8) ztdt             ! dt  integer irow              ! latitude pair index  integer n                 ! meridional wavenumber index  integer k                 ! level index!!-----------------------------------------------------------------------!  call t_startf('dyn')!$OMP PARALLEL DO PRIVATE (IROW)  do irow = 1,plat/2     call dyn(irow    ,grlps1(1,irow),grt1(1,1,irow),grq1(1,1,irow),grz1(1,1,irow)   , &              grd1(1,1,irow),grfu1(1,1,irow),grfv1(1,1,irow),grlps2(1,irow), &                 grt2(1,1,irow) , &              grq2(1,1,irow),grz2 (1,1,irow),grd2 (1,1,irow),grfu2(1,1,irow), &                 grfv2(1,1,irow)  )  end do  call t_stopf('dyn')!!-----------------------------------------------------------------------!! Build expanded vector with del^2 response function!  zdt  = get_step_size()*0.5  ztdt = 2.*zdt!DIR$ IVDEP  do n=1,pnmax     ztdtsq(2*n-1) = ztdt*sq(n)     ztdtsq(2*n  ) = ztdt*sq(n)  end do!! Perform Gaussian quadrature (multitasked loop)!  call t_startf('quad_tstep')!$OMP PARALLEL DO PRIVATE (N)  do n=1,pmax     call quad(n       ,grlps1  ,grlps2  ,grt1    ,grq1    , &               grz1    ,grd1    ,grfu1   ,grfv1   ,grt2    , &               grq2    ,grz2    ,grd2    ,grfu2   ,grfv2   )!! Transform spectral terms into vertical normal modes!#ifdef HADVTEST!!jr Turn off semi-implicit so T equation is horizontal advection only!        call tstep(n       ,ztdtsq  )#else     call tstep(n       ,ztdtsq)  end do  call t_stopf('quad_tstep')!! Solve vertically de-coupled semi-implicit divergence/vorticity system! in normal mode space!  call t_startf('vertnm')!$OMP PARALLEL DO PRIVATE(K)  do k=1,plev     call vertnm(k)  end do  call t_stopf('vertnm')!! Transform divergence and vorticity back from normal mode space and! complete time advance.!  call t_startf('tstep1')!$OMP PARALLEL DO PRIVATE(N)  do n=1,pmax     call tstep1(n       ,zdt     )  end do#endif  call t_stopf('tstep1')!! Find out if courant limit has been exceeded.  If so, the limiter will! be applied in HORDIF!  call t_startf('courlim')  call courlim(vmax2d  ,vmax2dt ,vcour   )  call t_stopf('courlim')!! Linear part of horizontal diffusion (multitasked loop)!  call t_startf('hordif')!$OMP PARALLEL DO PRIVATE(K)  do k=1,plev     call hordif(k       ,ztdt    )  end do  call t_stopf('hordif')!  returnend subroutine dyndrv#elsesubroutine dyndrv(grlps1  ,grt1    ,grq1    ,grz1    ,grd1    , &                  grfu1   ,grfv1   ,grlps2  ,grt2    ,grq2    , &                  grz2    ,grd2    ,grfu2   ,grfv2   ,vmax2d  , &                  vmax2dt ,vcour   )!-----------------------------------------------------------------------!! Purpose:! Driving routine for Gaussian quadrature, semi-implicit equation! solution and linear part of horizontal diffusion.! The need for this interface routine is to have a multitasking! driver for the spectral space routines it invokes.!! Author:  J. Rosinski!!-----------------------------------------------------------------------  use precision  use pmgrid  use pspect  use comspe  use commap  use time_manager, only: get_step_size#if ( defined SPMD ) && ( defined TIMING_BARRIERS )  use mpishorthand#endif  implicit none!------------------------------Arguments--------------------------------!  real(r8), intent(inout)   :: grlps1(2*pmmax,plat/2)      ! ----------------------------  real(r8), intent(inout)   :: grt1  (plev,2*pmmax,plat/2) ! |  real(r8), intent(inout)   :: grq1  (plev,2*pmmax,plat/2) ! |  real(r8), intent(inout)   :: grz1  (plev,2*pmmax,plat/2) ! |  real(r8), intent(inout)   :: grd1  (plev,2*pmmax,plat/2) ! |  real(r8), intent(inout)   :: grfu1 (plev,2*pmmax,plat/2) ! |  real(r8), intent(inout)   :: grfv1 (plev,2*pmmax,plat/2) ! |  real(r8), intent(inout)   :: grlps2(2*pmmax,plat/2)      ! | definitions: these  real(r8), intent(inout)   :: grt2  (plev,2*pmmax,plat/2) ! | variables are declared here  real(r8), intent(inout)   :: grq2  (plev,2*pmmax,plat/2) ! | for data scoping  real(r8), intent(inout)   :: grz2  (plev,2*pmmax,plat/2) ! |  real(r8), intent(inout)   :: grd2  (plev,2*pmmax,plat/2) ! |  real(r8), intent(inout)   :: grfu2 (plev,2*pmmax,plat/2) ! |  real(r8), intent(inout)   :: grfv2 (plev,2*pmmax,plat/2) ! |  real(r8), intent(inout)   :: vmax2d (plev,plat)   ! max. wind at each level, latitude  real(r8), intent(inout)   :: vmax2dt(plev,plat)   ! max. truncated wind at each lvl,lat  real(r8), intent(inout)   :: vcour  (plev,plat)     ! maximum Courant number in slice!!---------------------------Local workspace-----------------------------!  real(r8) ztdtsq(pnmax)    ! dt*(n(n+1)/a^2)  real(r8) zdt              ! dt  real(r8) ztdt             ! dt  integer irow              ! latitude pair index  integer m                 ! longitudinal wavenumber index  integer n                 ! spectral index  integer k                 ! level index!!-----------------------------------------------------------------------!#if ( defined SPMD )#if ( defined TIMING_BARRIERS )  call t_startf ('sync_realloc3')  call mpibarrier (mpicom)  call t_stopf ('sync_realloc3')#endif  call t_startf ('realloc3')  call realloc3 (grlps1  ,grt1    ,grq1    ,grz1    ,grd1    , &                 grfu1   ,grfv1   ,grlps2  ,grt2    ,grq2    , &                 grz2    ,grd2    ,grfu2   ,grfv2   )  call t_stopf ('realloc3')#endif  call t_startf('dyn')!$OMP PARALLEL DO PRIVATE (IROW)  do irow=begirow,endirow     call dyn(irow    ,grlps1(1,irow),grt1(1,1,irow),grq1(1,1,irow),grz1(1,1,irow), &              grd1(1,1,irow),grfu1(1,1,irow),grfv1(1,1,irow),grlps2(1,irow)  , &                 grt2(1,1,irow), &              grq2(1,1,irow),grz2 (1,1,irow),grd2 (1,1,irow),grfu2 (1,1,irow), &                 grfv2(1,1,irow)  )  end do  call t_stopf('dyn')!!-----------------------------------------------------------------------!! Build vector with del^2 response function!  zdt  = get_step_size()*0.5  ztdt = 2.*zdt  do n=1,pnmax     ztdtsq(n) = ztdt*sq(n)  end do#if ( defined SPMD )#if ( defined TIMING_BARRIERS )  call t_startf ('sync_realloc4')  call mpibarrier (mpicom)  call t_stopf ('sync_realloc4')#endif  call t_startf('realloc4')  call realloc4(grlps1  ,grt1    ,grq1    ,grz1    ,grd1    , &                grfu1   ,grfv1   ,grlps2  ,grt2    ,grq2    , &                grz2    ,grd2    ,grfu2   ,grfv2   )  call t_stopf('realloc4')#endif  call t_startf('quad_tstep')!$OMP PARALLEL DO PRIVATE(M)  do m=begm(iam),endm(iam)!! Perform Gaussian quadrature!     call quad(m       ,grlps1  ,grlps2  ,grt1    ,grq1    , &               grz1    ,grd1    ,grfu1   ,grfv1   ,grt2    , &               grq2    ,grz2    ,grd2    ,grfu2   ,grfv2   )#ifdef HADVTEST!!jr Turn off semi-implicit so T equation is horizontal advection only!        call tstep(m       ,ztdtsq  )#else!! Complete time advance, solve vertically coupled semi-implicit system!     call tstep(m       ,ztdtsq  )!! Solve vertically de-coupled semi-implicit divergence/vorticity system! in normal mode space!     call vertnm(m)!! Transform divergence and vorticity back from normal mode space and! complete time advance.!     call tstep1(m       ,zdt     )#endif  end do  call t_stopf('quad_tstep')!! Find out if courant limit has been exceeded.  If so, the limiter will! be applied in HORDIF!  call t_startf('courlim')  call courlim(vmax2d  ,vmax2dt ,vcour   )  call t_stopf('courlim')!! Linear part of horizontal diffusion!  call t_startf('hordif')!$OMP PARALLEL DO PRIVATE(K)  do k=1,plev     call hordif(k       ,ztdt    )  end do  call t_stopf('hordif')#if ( defined SPMD )#if ( defined TIMING_BARRIERS )  call t_startf ('sync_realloc6')  call mpibarrier (mpicom)  call t_stopf ('sync_realloc6')#endif  call t_startf('realloc6')  call realloc6  call t_stopf('realloc6')#endif  returnend subroutine dyndrv#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷六月综合亚洲| 欧美精品国产精品| 91精品婷婷国产综合久久| 国产免费观看久久| 石原莉奈在线亚洲二区| jlzzjlzz欧美大全| 久久久.com| 久久激情综合网| 欧美妇女性影城| 亚洲精品视频自拍| av亚洲精华国产精华精| 国产三级一区二区三区| 久久国产欧美日韩精品| 91精品国产高清一区二区三区| 亚洲日本一区二区| av在线这里只有精品| 国产欧美一区二区精品秋霞影院 | 亚洲欧美精品午睡沙发| 黄色精品一二区| 精品嫩草影院久久| 美女任你摸久久| 欧美一区二区三区视频在线| 午夜精品福利在线| 欧美午夜精品理论片a级按摩| 中文字幕一区二区三区不卡在线 | 国产日本欧美一区二区| 精品一区免费av| 欧美一区二区视频在线观看| 天堂午夜影视日韩欧美一区二区| 91福利在线观看| 亚洲一区二区三区四区五区黄| 99视频精品全部免费在线| 中文字幕日本乱码精品影院| 成人午夜激情在线| 国产精品福利一区二区三区| 成人精品免费看| 中文字幕亚洲一区二区av在线| 暴力调教一区二区三区| 亚洲特级片在线| 欧美在线视频日韩| 日韩成人av影视| 日韩欧美在线123| 国精产品一区一区三区mba桃花| 精品捆绑美女sm三区| 国产成人午夜99999| 亚洲欧洲一区二区在线播放| 欧美亚洲一区二区在线| 爽好久久久欧美精品| www国产精品av| 成人一级黄色片| 亚洲综合色成人| 日韩免费观看高清完整版| 国模娜娜一区二区三区| 亚洲日本在线a| 欧美一级生活片| 国产麻豆一精品一av一免费| 中文字幕五月欧美| 69精品人人人人| 国产成人免费在线观看| 亚洲黄色小说网站| 欧美刺激脚交jootjob| 成人手机电影网| 亚洲国产日韩在线一区模特| 精品电影一区二区三区| 色偷偷久久人人79超碰人人澡 | 欧美一区二区视频在线观看| 国产成人av一区二区三区在线| 亚洲欧美另类小说视频| 日韩一区二区三区电影在线观看 | 亚洲欧美日韩综合aⅴ视频| 在线播放视频一区| 丁香六月综合激情| 免费三级欧美电影| 国产精品久久网站| 精品久久久久久久久久久久久久久久久 | 欧美mv和日韩mv国产网站| 97久久久精品综合88久久| 热久久一区二区| 亚洲精品高清视频在线观看| 久久综合九色综合97婷婷| 欧洲亚洲精品在线| 国产成人精品一区二区三区四区| 亚洲午夜影视影院在线观看| 国产亚洲短视频| 777亚洲妇女| 色偷偷成人一区二区三区91| 国产精品夜夜爽| 久久精品久久精品| 五月婷婷激情综合网| 亚洲日本在线看| 国产精品免费观看视频| 久久综合九色综合97_久久久| 欧美精品日韩一本| 色噜噜狠狠成人中文综合| 国产黄色91视频| 精品一区二区三区久久久| 日韩中文字幕麻豆| 一区二区三区在线不卡| 亚洲天堂免费在线观看视频| 国产欧美精品一区aⅴ影院 | 99视频精品免费视频| 国产超碰在线一区| 精品一区二区精品| 日韩不卡在线观看日韩不卡视频| 亚洲永久免费视频| 亚洲综合男人的天堂| 亚洲精品亚洲人成人网在线播放| 中文字幕欧美激情| 中文字幕va一区二区三区| 国产日韩欧美a| 中文字幕免费不卡| 亚洲国产精华液网站w| 国产日韩欧美一区二区三区乱码 | 欧美精品tushy高清| 欧美日韩免费一区二区三区视频| 在线这里只有精品| 欧美曰成人黄网| 欧美日韩成人一区二区| 91精品黄色片免费大全| 欧美精品第1页| 欧美一区二区三区视频免费| 日韩欧美国产三级| 精品国产伦理网| 久久久久久99精品| 中文字幕一区视频| 亚洲一区二区av电影| 三级亚洲高清视频| 加勒比av一区二区| 成人在线视频一区| 色94色欧美sute亚洲线路二| 在线不卡免费av| 亚洲精品一区二区在线观看| 国产精品久久三| 亚洲国产sm捆绑调教视频 | 亚洲国产成人91porn| 日韩成人午夜精品| 国产盗摄女厕一区二区三区| av激情综合网| 欧美丰满一区二区免费视频| 精品久久久久香蕉网| 成人欧美一区二区三区1314| 亚洲图片有声小说| 久久er99热精品一区二区| 国产不卡视频在线观看| 日本福利一区二区| 欧美白人最猛性xxxxx69交| 国产日韩欧美精品综合| 亚洲午夜羞羞片| 国产精品亚洲成人| 欧美日韩一区中文字幕| 久久在线观看免费| 亚洲国产精品欧美一二99| 国产一区二三区| 欧美日韩一级片在线观看| 久久精品一区四区| 日韩中文字幕亚洲一区二区va在线 | 欧美三级日韩在线| 久久久亚洲精品一区二区三区| 亚洲精品一二三| 国产另类ts人妖一区二区| 在线观看91精品国产入口| 久久精品视频在线免费观看| 亚洲不卡一区二区三区| 国产成人综合亚洲91猫咪| 欧美女孩性生活视频| 亚洲欧美怡红院| 国产精品综合一区二区三区| 欧美精品亚洲一区二区在线播放| 国产精品免费观看视频| 久国产精品韩国三级视频| 欧美日韩国产高清一区二区三区| 国产精品国产自产拍高清av| 美女视频黄频大全不卡视频在线播放| 一本色道综合亚洲| 亚洲国产精品二十页| 经典三级视频一区| 欧美一区二区三区在| 亚洲国产日韩a在线播放性色| 99在线精品视频| 国产精品久久三区| 国产suv精品一区二区883| 久久嫩草精品久久久精品| 老色鬼精品视频在线观看播放| 精品1区2区3区| 亚洲国产成人高清精品| 在线免费不卡电影| 亚洲天堂2016| 色婷婷综合久色| 日韩美女久久久| 91老司机福利 在线| 亚洲欧美电影一区二区| 99国产欧美久久久精品| 国产精品国产三级国产aⅴ中文 | 欧美午夜精品久久久久久超碰| 国产精品美女一区二区| 波多野结衣中文字幕一区 | 欧美在线免费观看亚洲| 一区二区三区资源| 91福利视频在线| 午夜精品在线视频一区|