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

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

?? stepon.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
字號:
#include <misc.h>#include <params.h>subroutine stepon!-----------------------------------------------------------------------!! Purpose:! Loop over time, calling driving routines for physics, dynamics, transport!! Original version:  CCM1!!-----------------------------------------------------------------------   use precision   use history, only: wshist, wrapup   use pmgrid   use pspect   use comslt   use rgrid   use prognostics   use buffer   use commap   use restart, only: write_restart   use physconst, only: cappa, gravit#if ( defined SPMD )   use mpishorthand   use spmd_dyn, only: npes, compute_gsfactors#endif#if (defined COUP_CSM)   use ccsm_msg, only: csmstop, ccsmfin#endif   use ppgrid   ,      only: begchunk, endchunk   use physics_types,  only: physics_state, physics_tend   use dp_coupling,    only: d_p_coupling, p_d_coupling   use time_manager, only: advance_timestep, get_step_size, get_nstep, &                           is_first_step, is_first_restart_step, &                           is_last_step, is_end_curr_day   implicit none#include <comctl.h>#include <comhyb.h>#include <comlun.h>#include <comqfl.h>!------------------------------Parameters-------------------------------!   integer, parameter :: pmap = 20000 ! max dimension of evenly spaced vert. grid used !                                     ! by SLT code to map the departure pts into true !                                     ! model levels.!!---------------------------Local workspace-----------------------------!   integer kdpmpf  (pmap)             ! artificial full vert grid indices   integer kdpmph  (pmap)             ! artificial half vert grid indices   type(physics_state), dimension(begchunk:endchunk) :: phys_state   type(physics_tend ), dimension(begchunk:endchunk) :: phys_tend   real(r8) hyad   (plev)             ! del (A)   real(r8) lam    (plond,platd)      ! longitude coords of extended grid   real(r8) phi    (platd)            ! latitude  coords of extended grid   real(r8) dphi   (platd)            ! latitude intervals (radians)   real(r8) gw     (plat)             ! Gaussian weights   real(r8) sinlam (plond,platd)      ! sin(lam) model domain only              real(r8) coslam (plond,platd)      ! cos(lam) model domain only              real(r8) lbasdy (4,2,platd)        ! latitude derivative weights             real(r8) lbasdz (4,2,plev)         ! vert (full levels) deriv wghts    real(r8) lbassd (4,2,plevp)        ! vert (half levels) deriv wghts    real(r8) lbasiy (4,2,platd)        ! Lagrange cubic interp wghts (lat.)    real(r8) lbasiz (4,2,plev)         ! Lagrange cubic interp wghts (vert)   real(r8) lbassi (4,2,plevp)        ! Lagrange cubic interp wghts (vert)   real(r8) detam  (plev)             ! intervals between vert full levs.   real(r8) detai  (plevp)            ! intervals between vert half levs.   real(r8) dlam   (platd)            ! longitudinal grid interval (radians)   real(r8) cwava  (plat)             ! weight applied to global integrals   real(r8) etamid (plev)             ! vertical coords at midpoints    real(r8) etaint (plevp)            ! vertical coords at interfaces   real(r8) t2     (plond,plev,beglat:endlat)  ! temp tendency   real(r8) flx_net(plond,beglat:endlat)       ! net flux from physics   real(r8) fu     (plond,plev,beglat:endlat)  ! u wind tendency   real(r8) fv     (plond,plev,beglat:endlat)  ! v wind tendency   real(r8) coslat(plond)   real(r8) rcoslat(plond)   real(r8) rpmid(plond,plev)   real(r8) pdel(plond,plev)   real(r8) pint(plond,plevp)   real(r8) pmid(plond,plev)   real(r8) ztodt                     ! time step   real(r8) :: wcstart, wcend   ! wallclock timestamp at start, end of timestep   real(r8) :: usrstart, usrend ! user timestamp at start, end of timestep   real(r8) :: sysstart, sysend ! sys timestamp at start, end of timestep   integer kk                         ! |   integer kk1                        ! |   integer kk2                        ! | - indices   integer kstep                      ! |   integer l                          ! |   integer lvsum                      ! counter   integer lsum                       ! counter   real(r8) vsum                      ! accumulator for SLD binning statistics   logical vflag                      ! logical flag to indicate that binning has been done!                                     ! correctly   integer i,k,lat,j,begj             ! longitude,level,latitude indices   real(r8) tmp1                      ! temp space   integer year,month,day,tod         ! date info   integer ntspdy                     ! Number of timesteps per day   #ifdef SPMD   integer :: numsend          ! number of items to be sent   integer :: numrecv(0:npes-1)! number of items to be received   integer :: displs(0:npes-1) ! displacement array   integer :: numperlat        ! number of items per latitude band#endif!! Externals!   logical, external :: rstwr  ! whether or not to write restart files!!-----------------------------------------------------------------------!! Define eta coordinates: Used for calculation etadot vertical velocity ! for slt.!   call t_startf ('stepon_startup')   do k=1,plev      etamid(k) = hyam(k) + hybm(k)   end do   do k=1,plevp      etaint(k) = hyai(k) + hybi(k)   end do!! Initialize matrix gamma (used in sld T computation)!   gamma(:,:) = 0.   do k = 1,plev      tmp1 = cappa*t0(k)*hypi(plevp)/hypm(k)      gamma(k,k) = 0.5*tmp1      do l=1,k-1         gamma(l,k) = tmp1      end do   end do!! Set slt common block variables!   call grdini(pmap    ,etamid  ,etaint  ,gravit  ,dlam    , &               lam     ,phi     ,dphi    ,gw      ,sinlam  , &               coslam  ,lbasdy  ,lbasdz  ,lbassd  ,lbasiy  , &               lbasiz  ,lbassi  ,detam   ,detai   ,kdpmpf  , &               kdpmph  ,cwava   ,phigs   )   if (is_first_step()) then      do lat=beglat,endlat         j = j1 - 1 + lat         do i=1,nlon(lat)            coslat(i) = cos(clat(lat))            rcoslat(i) = 1./coslat(i)         end do!     ! Set current time pressure arrays for model levels etc.!         call plevs0(nlon(lat), plond, plev, ps(1,lat,n3), pint, pmid, pdel)!         do k=1,plev            do i=1,nlon(lat)               rpmid(i,k) = 1./pmid(i,k)            end do         end do!! Compute appropriate (1/ps)etadot(dp/deta)!         call etadt0 (lat, nlon(lat), &                      rcoslat ,div(1,1,lat,n3), u3(i1,1,j,n3), v3(i1,1,j,n3), dpsl(1,lat), &                      dpsm(1,lat), pdel, ps(1,lat,n3), ed1(1,1,lat))!! Calculate vertical motion field!         call omcalc (rcoslat, div(1,1,lat,n3), u3(i1,1,j,n3), v3(i1,1,j,n3), dpsl(1,lat), &                      dpsm(1,lat), pmid, pdel, rpmid, pint(1,plevp), &                      omga(1,1,lat), nlon(lat))      end do   end if!! Compute pdel from "A" portion of hybrid vertical grid!   do k=1,plev      hyad(k) = hyai(k+1) - hyai(k)   end do   do k=1,plev      do i=1,plon         pdela(i,k) = hyad(k)*ps0      end do   end do!!----------------------------------------------------------! Initialize departure point bin arrays to 0.!----------------------------------------------------------!   kstep = 0   do lat = beglat,endlat      do k = 1,plev         do kk = 1,plev            levkntl(kk,k,lat) = 0.         end do      end do   end do!! Beginning of basic time step loop!   call t_stopf ('stepon_startup')   do      if (masterproc .and. print_step_cost) then         call t_stampf (wcstart, usrstart, sysstart)      end if      ztodt = get_step_size()!!----------------------------------------------------------! PHYSPKG  Call the Physics package!----------------------------------------------------------!      begj = beglatex + numbnd      call t_startf('d_p_coupling')      call d_p_coupling (ps(1,beglat,n3), t3(i1,1,begj,n3), u3(i1,1,begj,n3), &                         v3(i1,1,begj,n3), q3(i1,1,1,begj,n3), &                         omga, phis, phys_state)      call t_stopf('d_p_coupling')      call t_startf('phys_driver')      if (ideal_phys) then         call phys_idealized(phys_state, phys_tend, ztodt, etamid)      else if (adiabatic) then         call phys_adiabatic(phys_state, phys_tend)      else         call physpkg (                     &            phys_state, gw, ztodt, &            phys_tend, cld(1,1,begchunk,n3m1), cld(1,1,begchunk,n3), &            tcwat(1,1,begchunk,n3m1), tcwat(1,1,begchunk,n3), &            qcwat(1,1,begchunk,n3m1), qcwat(1,1,begchunk,n3), &            lcwat(1,1,begchunk,n3m1), lcwat(1,1,begchunk,n3) )      end if      call t_stopf('phys_driver')      call t_startf('p_d_coupling')      call p_d_coupling (phys_state, phys_tend, t2, fu, fv, flx_net,q3(i1,1,1,begj,n3))      call t_stopf('p_d_coupling')      if (is_first_restart_step()) then         call print_memusage      end if!----------------------------------------------------------! DYNPKG Call the Dynamics Package!----------------------------------------------------------      call t_startf ('dynpkg')      call dynpkg (pmap    ,t2      ,fu      ,fv      ,etamid  , &                   etaint  ,cwava   ,detam   ,dlam    ,lam     , &                   phi     ,dphi    ,sinlam  ,coslam  ,lbasdy  , &                   lbasdz  ,lbasiy  ,lbassi  ,lbasiz  ,detai   , &                   kdpmpf  ,kdpmph  ,flx_net , ztodt   )      call t_stopf ('dynpkg')      if (is_first_restart_step()) then         call print_memusage      end if      call t_startf('stepon_single')! Set end of run flag.#if ( ! defined COUP_CSM )      if (is_last_step()) nlend = .true.#else      if (csmstop) then         if ( masterproc ) write(6,*)'atm: Stopping at the end of this day'         if (is_end_curr_day()) nlend = .true.      end if#endif!!----------------------------------------------------------! History and restart logic!----------------------------------------------------------!! Write and/or dispose history tapes if required!      call t_startf ('wshist')      call wshist ()      call t_stopf ('wshist')!! Write restart file!      if (rstwr() .and. nrefrq /= 0) then         call t_startf ('write_restart')         call write_restart         call t_stopf ('write_restart')      end if!! Dispose necessary files!      call t_startf ('wrapup')      call wrapup      call t_stopf ('wrapup')         if (masterproc .and. print_step_cost) then         call t_stampf (wcend, usrend, sysend)         write(6,'(a,3f8.3,a)')'Prv timestep wallclock, usr, sys=', &                               wcend-wcstart, usrend-usrstart, sysend-sysstart, ' seconds'      end if!! Increment nstep before returning to top of loop!      call advance_timestep()      kstep = kstep + 1!! Compute some statistical info!      if (nlend) then#if ( defined SPMD )         numperlat = plev*plev         call compute_gsfactors (numperlat, numsend, numrecv, displs)         call mpigatherv (levkntl(1,1,beglat), numsend, mpir8, &                          levkntl            , numrecv, displs, mpir8, 0, mpicom)#endif         if (masterproc) then            do k = 1,plev               do kk = 1,plev                  levknt(kk,k) = 0.                  do lat = 1,plat                     levknt(kk,k) = levknt(kk,k) + levkntl(kk,k,lat)                  end do               end do            end do            lsum = 0            do lat = 1,plat               lsum = lsum + nlon(lat)            end do            vflag = .false.            do k = 1,plev               vsum = 0.               do kk = 1,plev                  vsum = vsum + levknt(kk,k)               end do               lvsum = vsum + 0.01                if( lvsum .ne. lsum*kstep ) vflag = .true.            end do                     do k = 1,plev               do kk = 1,plev                  levknt(kk,k) = levknt(kk,k)/float(lsum*kstep)                  if (levknt(kk,k) .eq. 0.) levknt(kk,k) = 1.e+36               end do            end do                     if(vflag) then               write(6,*) '********************************************'               write(6,1000)               write(6,*) '********************************************'            else               write(6,2000)               k = 1               write(6,3001) hypm(k)/100.,(levknt(kk,k),kk = 1, 6)               k = 2               write(6,3002) hypm(k)/100.,(levknt(kk,k),kk = 1, 7)               k = 3               write(6,3003) hypm(k)/100.,(levknt(kk,k),kk = 1, 8)               k = 4               write(6,3004) hypm(k)/100.,(levknt(kk,k),kk = 1, 9)               k = 5               write(6,3005) hypm(k)/100.,(levknt(kk,k),kk = 1,10)               do k = 6,plev                  kk1 = k-5                  kk2 = k+5                  if(kk2 .gt. plev) kk2 = plev                  write(6,3000) hypm(k)/100.,(levknt(kk,k),kk = kk1,kk2)               end do            end if         end if      end if      call t_stopf('stepon_single')!! Check for end of run!      if (nlend) then#ifdef COUP_CSM         call ccsmfin#endif         return      end if   end do  ! End of timestep loop1000 format(' ERROR in binning departure points; sums were done'// &            ' incorrectly. not printing results.')2000 format(/40x,' BINNING STATISTICS FOR VERTICAL DEPARTURE POINTS'// &                 '    level          -5        -4        -3        -2     ', &                 '   -1    0 (arr pt)     1         2         3         4        ', &                 ' 5'/)3000 format(' ',f9.4, 4x,11f10.5)3001 format(' ',f9.4,54x,11f10.5)3002 format(' ',f9.4,44x,11f10.5)3003 format(' ',f9.4,34x,11f10.5)3004 format(' ',f9.4,24x,11f10.5)3005 format(' ',f9.4,14x,11f10.5)end subroutine stepon

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情视频一区二区在线观看| 韩国一区二区视频| 欧美精品一区在线观看| 91精品午夜视频| 欧美另类久久久品| 欧美日韩国产中文| 91精品国产综合久久精品图片| 欧美日韩国产经典色站一区二区三区 | 奇米色777欧美一区二区| 丝袜亚洲精品中文字幕一区| 石原莉奈一区二区三区在线观看| 午夜不卡av免费| 日韩在线卡一卡二| 精品一区二区三区久久| 国产资源在线一区| 国产传媒一区在线| 91丨九色丨蝌蚪丨老版| 欧美三区免费完整视频在线观看| 欧美午夜一区二区三区| 欧美日韩一区二区三区在线看 | 91视频xxxx| 欧美日韩中文字幕精品| 欧美一区二区三区色| 欧美tk—视频vk| 国产精品久久久久影视| 国产精品久久久久永久免费观看 | 黄一区二区三区| 国产成人精品免费| 欧美日韩亚洲丝袜制服| 日韩视频在线一区二区| 国产精品久久一级| 美日韩一级片在线观看| av毛片久久久久**hd| 91精品福利在线一区二区三区| 欧美成人三级在线| 亚洲婷婷综合久久一本伊一区| 手机精品视频在线观看| 成人一区二区三区| 欧美美女bb生活片| 欧美激情自拍偷拍| 首页亚洲欧美制服丝腿| 成人激情午夜影院| 日韩精品资源二区在线| 一区二区三区四区五区视频在线观看| 日韩激情中文字幕| 91福利区一区二区三区| 欧美激情在线一区二区三区| 亚洲成人午夜影院| 99亚偷拍自图区亚洲| 欧美成人三级在线| 日本中文字幕一区二区有限公司| 成人在线一区二区三区| 欧美疯狂做受xxxx富婆| 国产精品女人毛片| 精品一区二区三区免费观看| 欧美主播一区二区三区| 日本一区二区三区高清不卡| 美女任你摸久久| 欧美日韩日本视频| 亚洲欧美日韩国产中文在线| 成人国产精品免费观看动漫 | 国产99久久久国产精品| 91麻豆精品国产91久久久使用方法| 专区另类欧美日韩| 成人影视亚洲图片在线| 中文字幕+乱码+中文字幕一区| 蜜臀av性久久久久av蜜臀妖精| 欧美亚洲动漫精品| 亚洲精品日韩专区silk| 成人av在线资源网| 国产亚洲美州欧州综合国| 午夜日韩在线观看| 在线免费观看日本一区| 综合欧美一区二区三区| 成人国产在线观看| 久久精品一区二区三区av| 国产尤物一区二区在线| 精品国产网站在线观看| 美脚の诱脚舐め脚责91 | 日本一区二区视频在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 日韩一区二区在线观看| 老司机精品视频导航| 精品国产精品网麻豆系列| 日韩电影在线观看一区| 欧美videos中文字幕| 免费成人深夜小野草| 久久美女艺术照精彩视频福利播放 | 国产精品一色哟哟哟| xnxx国产精品| 国产河南妇女毛片精品久久久| 欧美成人一区二区三区| 国产一区二区视频在线播放| 久久精品日韩一区二区三区| 99免费精品在线| 亚洲日本免费电影| 在线欧美一区二区| 免费成人在线观看| 国产精品久久久久久久久图文区| av午夜精品一区二区三区| 亚洲一区二区av电影| 欧美一卡2卡三卡4卡5免费| 国产精品1区2区| 亚洲人成人一区二区在线观看| 欧美私人免费视频| 精久久久久久久久久久| 国产欧美精品一区aⅴ影院| 色88888久久久久久影院野外| 日日骚欧美日韩| 日本一区二区三区电影| 欧美日韩综合在线免费观看| 国内精品国产成人国产三级粉色| 国产精品国产三级国产aⅴ无密码| 欧美午夜精品电影| 国产黑丝在线一区二区三区| 亚洲成人在线网站| 中文字幕av在线一区二区三区| 在线视频国产一区| 国产成人免费在线观看不卡| 日日夜夜一区二区| 亚洲欧洲日本在线| 欧美精品一区二区高清在线观看| 91农村精品一区二区在线| 韩国毛片一区二区三区| 一区二区成人在线观看| 精品盗摄一区二区三区| 欧美亚洲禁片免费| 丁香六月久久综合狠狠色| 亚洲免费视频成人| 国产免费成人在线视频| 精品嫩草影院久久| 欧美综合久久久| 国产精品99久久久| 免费观看成人av| 亚洲a一区二区| 亚洲人成影院在线观看| 日韩精品一区二区三区在线观看 | 国产高清一区日本| 日韩国产欧美三级| 中文字幕一区二区视频| 久久亚洲欧美国产精品乐播| 欧美一级一区二区| 777亚洲妇女| 成人99免费视频| 成人午夜免费电影| 国产成人精品三级麻豆| 国产中文字幕一区| 国产在线精品免费| 精品影视av免费| 美女任你摸久久 | av在线一区二区| 成人av网站在线观看免费| 国产成人亚洲精品青草天美| 国产又粗又猛又爽又黄91精品| 久久精品噜噜噜成人88aⅴ| 久久国产尿小便嘘嘘尿| 欧美aaa在线| 久久精品国产第一区二区三区| 亚洲国产日韩综合久久精品| 午夜国产不卡在线观看视频| 亚洲一区在线播放| 天天影视网天天综合色在线播放| 丝袜国产日韩另类美女| 奇米影视在线99精品| 精品一二线国产| 国产suv一区二区三区88区| 成人理论电影网| 97精品国产露脸对白| 成人在线综合网站| 99久久99久久久精品齐齐| 97精品电影院| 555www色欧美视频| 久久久久久毛片| 综合欧美亚洲日本| 亚洲国产va精品久久久不卡综合| 奇米777欧美一区二区| 国产精品中文字幕欧美| 亚洲国产日韩a在线播放性色| 日产国产欧美视频一区精品| 国产99久久精品| 一本大道久久精品懂色aⅴ| 欧美日本免费一区二区三区| 日韩精品资源二区在线| 国产精品动漫网站| 免费人成精品欧美精品| 国产精品一级片| 欧美日韩一级片网站| 久久婷婷成人综合色| 亚洲一级二级三级| 国产美女视频一区| 色婷婷亚洲综合| 日韩精品自拍偷拍| 自拍偷拍欧美精品| 久久99国内精品| 色悠悠久久综合| 欧美一区二区免费观在线| 国产精品动漫网站| 久久av老司机精品网站导航| av亚洲精华国产精华| 欧美sm美女调教|