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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? convtran.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
字號:
#include <misc.h>#include <params.h>subroutine convtran(lchnk   , &                    doconvtran,q       ,ncnst   ,mu      ,md      , &                    du      ,eu      ,ed      ,dp      ,dsubcld , &                    jt      ,mx      ,ideep   ,il1g    ,il2g    , &                    nstep   ,fracis  ,dqdt    )!----------------------------------------------------------------------- ! ! Purpose: ! Convective transport of trace species!! Note that we are still assuming that the tracers are in a moist mixing ratio! this will change soon! ! Method: ! <Describe the algorithm(s) used in the routine.> ! <Also include any applicable external references.> ! ! Author: P. Rasch! !-----------------------------------------------------------------------   use precision   use ppgrid   implicit none!-----------------------------------------------------------------------!! Input arguments!   integer, intent(in) :: lchnk                 ! chunk identifier   integer, intent(in) :: ncnst                 ! number of tracers to transport   logical, intent(in) :: doconvtran(ncnst)     ! flag for doing convective transport   real(r8), intent(in) :: q(pcols,pver,ncnst)  ! Tracer array including moisture   real(r8), intent(in) :: mu(pcols,pver)       ! Mass flux up   real(r8), intent(in) :: md(pcols,pver)       ! Mass flux down   real(r8), intent(in) :: du(pcols,pver)       ! Mass detraining from updraft   real(r8), intent(in) :: eu(pcols,pver)       ! Mass entraining from updraft   real(r8), intent(in) :: ed(pcols,pver)       ! Mass entraining from downdraft   real(r8), intent(in) :: dp(pcols,pver)       ! Delta pressure between interfaces   real(r8), intent(in) :: dsubcld(pcols)       ! Delta pressure from cloud base to sfc   real(r8), intent(in) :: fracis(pcols,pver,ncnst) ! fraction of tracer that is insoluble   integer, intent(in) :: jt(pcols)         ! Index of cloud top for each column   integer, intent(in) :: mx(pcols)         ! Index of cloud top for each column   integer, intent(in) :: ideep(pcols)      ! Gathering array   integer, intent(in) :: il1g              ! Gathered min lon indices over which to operate   integer, intent(in) :: il2g              ! Gathered max lon indices over which to operate   integer, intent(in) :: nstep             ! Time step index! input/output   real(r8), intent(out) :: dqdt(pcols,pver,ncnst)  ! Tracer tendency array!--------------------------Local Variables------------------------------   integer i                 ! Work index   integer k                 ! Work index   integer kbm               ! Highest altitude index of cloud base   integer kk                ! Work index   integer kkp1              ! Work index   integer km1               ! Work index   integer kp1               ! Work index   integer ktm               ! Highest altitude index of cloud top   integer m                 ! Work index   real(r8) cabv                 ! Mix ratio of constituent above   real(r8) cbel                 ! Mix ratio of constituent below   real(r8) cdifr                ! Normalized diff between cabv and cbel   real(r8) chat(pcols,pver)     ! Mix ratio in env at interfaces   real(r8) cond(pcols,pver)     ! Mix ratio in downdraft at interfaces   real(r8) const(pcols,pver)    ! Gathered tracer array   real(r8) fisg(pcols,pver)     ! gathered insoluble fraction of tracer   real(r8) conu(pcols,pver)     ! Mix ratio in updraft at interfaces   real(r8) dcondt(pcols,pver)   ! Gathered tend array   real(r8) small                ! A small number   real(r8) mbsth                ! Threshold for mass fluxes   real(r8) mupdudp              ! A work variable   real(r8) minc                 ! A work variable   real(r8) maxc                 ! A work variable   real(r8) fluxin               ! A work variable   real(r8) fluxout              ! A work variable   real(r8) netflux              ! A work variable!-----------------------------------------------------------------------!   small = 1.e-36! mbsth is the threshold below which we treat the mass fluxes as zero (in mb/s)   mbsth = 1.e-15! Find the highest level top and bottom levels of convection   ktm = pver   kbm = pver   do i = il1g, il2g      ktm = min(ktm,jt(i))      kbm = min(kbm,mx(i))   end do! Loop ever each constituent   do m = 2, ncnst      if (doconvtran(m)) then! Gather up the constituent and set tend to zero         do k = 1,pver            do i =il1g,il2g               const(i,k) = q(ideep(i),k,m)               fisg(i,k) = fracis(ideep(i),k,m)            end do         end do! From now on work only with gathered data! Interpolate environment tracer values to interfaces         do k = 1,pver            km1 = max(1,k-1)            do i = il1g, il2g               minc = min(const(i,km1),const(i,k))               maxc = max(const(i,km1),const(i,k))               if (minc < 0) then                  cdifr = 0.               else                  cdifr = abs(const(i,k)-const(i,km1))/max(maxc,small)               endif! If the two layers differ significantly use a geometric averaging! procedure               if (cdifr > 1.E-6) then                  cabv = max(const(i,km1),maxc*1.e-12)                  cbel = max(const(i,k),maxc*1.e-12)                  chat(i,k) = log(cabv/cbel)/(cabv-cbel)*cabv*cbel               else             ! Small diff, so just arithmetic mean                  chat(i,k) = 0.5* (const(i,k)+const(i,km1))               end if! Provisional up and down draft values               conu(i,k) = chat(i,k)               cond(i,k) = chat(i,k)!              provisional tends               dcondt(i,k) = 0.            end do         end do! Do levels adjacent to top and bottom         k = 2         km1 = 1         kk = pver         do i = il1g,il2g            mupdudp = mu(i,kk) + du(i,kk)*dp(i,kk)            if (mupdudp > mbsth) then               conu(i,kk) = (+eu(i,kk)*fisg(i,kk)*const(i,kk)*dp(i,kk))/mupdudp            endif            if (md(i,k) < -mbsth) then               cond(i,k) =  (-ed(i,km1)*fisg(i,km1)*const(i,km1)*dp(i,km1))/md(i,k)            endif         end do! Updraft from bottom to top         do kk = pver-1,1,-1            kkp1 = min(pver,kk+1)            do i = il1g,il2g               mupdudp = mu(i,kk) + du(i,kk)*dp(i,kk)               if (mupdudp > mbsth) then                  conu(i,kk) = (  mu(i,kkp1)*conu(i,kkp1)+eu(i,kk)*fisg(i,kk)* &                                  const(i,kk)*dp(i,kk) )/mupdudp               endif            end do         end do! Downdraft from top to bottom         do k = 3,pver            km1 = max(1,k-1)            do i = il1g,il2g               if (md(i,k) < -mbsth) then                  cond(i,k) =  (  md(i,km1)*cond(i,km1)-ed(i,km1)*fisg(i,km1)*const(i,km1) &                                  *dp(i,km1) )/md(i,k)               endif            end do         end do         do k = ktm,pver            km1 = max(1,k-1)            kp1 = min(pver,k+1)            do i = il1g,il2g! version 1 hard to check for roundoff errors!               dcondt(i,k) =!     $                  +(+mu(i,kp1)* (conu(i,kp1)-chat(i,kp1))!     $                    -mu(i,k)*   (conu(i,k)-chat(i,k))!     $                    +md(i,kp1)* (cond(i,kp1)-chat(i,kp1))!     $                    -md(i,k)*   (cond(i,k)-chat(i,k))!     $                   )/dp(i,k)! version 2 hard to limit fluxes!               fluxin =  mu(i,kp1)*conu(i,kp1) + mu(i,k)*chat(i,k)!     $                 -(md(i,k)  *cond(i,k)   + md(i,kp1)*chat(i,kp1))!               fluxout = mu(i,k)*conu(i,k)     + mu(i,kp1)*chat(i,kp1)!     $                 -(md(i,kp1)*cond(i,kp1) + md(i,k)*chat(i,k))! version 3 limit fluxes outside convection to mass in appropriate layer! these limiters are probably only safe for positive definite quantitities! it assumes that mu and md already satify a courant number limit of 1               fluxin =  mu(i,kp1)*conu(i,kp1)+ mu(i,k)*min(chat(i,k),const(i,km1)) &                         -(md(i,k)  *cond(i,k) + md(i,kp1)*min(chat(i,kp1),const(i,kp1)))               fluxout = mu(i,k)*conu(i,k) + mu(i,kp1)*min(chat(i,kp1),const(i,k)) &                         -(md(i,kp1)*cond(i,kp1) + md(i,k)*min(chat(i,k),const(i,k)))               netflux = fluxin - fluxout               if (abs(netflux) < max(fluxin,fluxout)*1.e-12) then                  netflux = 0.               endif               dcondt(i,k) = netflux/dp(i,k)            end do         end do! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!         do k = kbm,pver            km1 = max(1,k-1)            do i = il1g,il2g               if (k == mx(i)) then! version 1!                  dcondt(i,k) = (1./dsubcld(i))*!     $              (-mu(i,k)*(conu(i,k)-chat(i,k))!     $               -md(i,k)*(cond(i,k)-chat(i,k))!     $              )! version 2!                  fluxin =  mu(i,k)*chat(i,k) - md(i,k)*cond(i,k)!                  fluxout = mu(i,k)*conu(i,k) - md(i,k)*chat(i,k)! version 3                  fluxin =  mu(i,k)*min(chat(i,k),const(i,km1)) - md(i,k)*cond(i,k)                  fluxout = mu(i,k)*conu(i,k) - md(i,k)*min(chat(i,k),const(i,k))                  netflux = fluxin - fluxout                  if (abs(netflux) < max(fluxin,fluxout)*1.e-12) then                     netflux = 0.                  endif!                  dcondt(i,k) = netflux/dsubcld(i)                  dcondt(i,k) = netflux/dp(i,k)               else if (k > mx(i)) then!                  dcondt(i,k) = dcondt(i,k-1)                  dcondt(i,k) = 0.               end if            end do         end do! Initialize to zero everywhere, then scatter tendency back to full array         dqdt(:,:,m) = 0.         do k = 1,pver            kp1 = min(pver,k+1)            do i = il1g,il2g               dqdt(ideep(i),k,m) = dcondt(i,k)            end do         end do      end if      ! for doconvtran   end do!   returnend subroutine convtran

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区91| 久久色成人在线| 91久久久免费一区二区| 91女神在线视频| 97se亚洲国产综合自在线观| 91免费观看视频在线| 色综合天天做天天爱| 色88888久久久久久影院野外| 色哟哟精品一区| 在线观看网站黄不卡| 欧美日韩精品电影| 4438成人网| 久久综合成人精品亚洲另类欧美 | 911精品产国品一二三产区| 欧美日韩另类一区| 日韩精品专区在线| 久久久久免费观看| 亚洲欧洲日产国产综合网| 亚洲精品你懂的| 日本中文字幕不卡| 国产福利视频一区二区三区| 99久久综合国产精品| 中文字幕一区免费在线观看| 国产精品嫩草99a| 一区二区三区中文在线观看| 日日噜噜夜夜狠狠视频欧美人| 麻豆久久一区二区| 大白屁股一区二区视频| 91黄色激情网站| 日韩欧美电影一二三| 中文字幕精品三区| 亚洲午夜一区二区| 精品无人区卡一卡二卡三乱码免费卡| 国产成人h网站| 在线观看91精品国产入口| 欧美成人三级电影在线| 中文字幕一区二区三区色视频| 亚洲午夜精品在线| 国产美女精品一区二区三区| 97精品久久久午夜一区二区三区| 欧美日韩精品欧美日韩精品一 | 欧美精品乱码久久久久久| 26uuu久久天堂性欧美| 最新成人av在线| 男人的j进女人的j一区| 99re视频精品| 欧美一级搡bbbb搡bbbb| 国产精品福利影院| 免费在线观看一区| 91在线视频播放地址| 日韩一卡二卡三卡| 亚洲毛片av在线| 国产激情视频一区二区三区欧美 | 日韩视频免费观看高清在线视频| 欧美国产激情二区三区| 日本网站在线观看一区二区三区| 成人精品免费看| 日韩一区二区视频| 亚洲人成人一区二区在线观看| 极品少妇xxxx精品少妇偷拍| 在线观看不卡一区| 欧美国产亚洲另类动漫| 麻豆精品一二三| 精品视频在线视频| 中文字幕在线观看不卡视频| 国产尤物一区二区| 欧美男男青年gay1069videost| 中文字幕一区二区三区蜜月| 国精品**一区二区三区在线蜜桃| 欧美日本国产视频| 亚洲欧美日韩久久| 成人午夜电影网站| 久久先锋影音av鲁色资源| 婷婷综合另类小说色区| 色婷婷精品久久二区二区蜜臂av| 国产色一区二区| 国产曰批免费观看久久久| 欧美一区二区啪啪| 亚洲v精品v日韩v欧美v专区| 色婷婷一区二区三区四区| 欧美激情在线看| 国产麻豆成人精品| 日韩欧美一区在线观看| 日韩国产精品大片| 欧美日韩一区二区三区四区| 一区二区三区欧美久久| 99re6这里只有精品视频在线观看| 国产视频一区在线播放| 国产一区二区三区精品视频| 日韩欧美你懂的| 免费成人在线观看| 制服丝袜成人动漫| 日韩激情视频在线观看| 欧美嫩在线观看| 视频一区中文字幕国产| 欧美久久久久久蜜桃| 亚洲国产精品久久不卡毛片 | 国产精品视频你懂的| 国产超碰在线一区| 久久蜜臀中文字幕| 国产成人一区二区精品非洲| 国产网红主播福利一区二区| 国产传媒日韩欧美成人| 国产视频一区二区在线| 成人午夜精品在线| 国产精品久久久久桃色tv| 99久久99久久免费精品蜜臀| 亚洲欧洲99久久| 色88888久久久久久影院野外| 亚洲综合色区另类av| 欧美亚州韩日在线看免费版国语版| 亚洲精品菠萝久久久久久久| 色偷偷久久人人79超碰人人澡| 亚洲一区二区三区美女| 精品污污网站免费看| 蜜臀a∨国产成人精品| 久久综合九色综合久久久精品综合| 国产激情视频一区二区在线观看| 中文字幕精品三区| 欧洲精品在线观看| 男男gaygay亚洲| 国产亚洲欧美色| 91丝袜美腿高跟国产极品老师 | 成人av影视在线观看| 综合激情网...| 欧美日本韩国一区| 激情偷乱视频一区二区三区| 中文字幕成人av| 在线免费不卡视频| 美女被吸乳得到大胸91| 欧美激情在线一区二区三区| 欧美自拍偷拍午夜视频| 久久疯狂做爰流白浆xx| 亚洲欧洲精品一区二区三区 | 亚洲亚洲人成综合网络| 日韩西西人体444www| 国产一区不卡视频| 一区二区三区自拍| 精品国产免费一区二区三区四区 | 粉嫩久久99精品久久久久久夜| 综合欧美亚洲日本| 欧美大片一区二区三区| eeuss鲁一区二区三区| 日韩精品色哟哟| 国产精品久久精品日日| 91 com成人网| 成人app在线| 日日摸夜夜添夜夜添国产精品| 国产日产欧美精品一区二区三区| 欧美在线999| 国产剧情一区在线| 亚洲成人一区二区| 欧美激情中文字幕| 91精品国产综合久久精品麻豆| 国产精品 欧美精品| 婷婷国产在线综合| 最新久久zyz资源站| 精品日韩在线观看| 欧美亚洲综合久久| 国产999精品久久久久久| 日韩有码一区二区三区| 亚洲天堂福利av| 日韩欧美一级片| 在线视频国内一区二区| 国产精品一品视频| 免费观看日韩av| 亚洲狠狠丁香婷婷综合久久久| 久久嫩草精品久久久久| 欧美一区日韩一区| 欧美亚洲免费在线一区| a在线欧美一区| 国产ts人妖一区二区| 欧美bbbbb| 亚洲国产精品久久一线不卡| 日韩一区在线免费观看| 国产欧美日产一区| 久久嫩草精品久久久精品| 欧美一二三区在线观看| 欧美日本国产一区| 91福利在线观看| 91欧美一区二区| eeuss鲁片一区二区三区在线观看| 国产一区 二区| 国产在线精品视频| 捆绑调教一区二区三区| 水蜜桃久久夜色精品一区的特点 | 国产精品自拍在线| 老司机一区二区| 喷白浆一区二区| 日本aⅴ亚洲精品中文乱码| 亚洲国产成人高清精品| 一区二区在线免费观看| 亚洲你懂的在线视频| 日韩一区在线免费观看| 亚洲欧美在线视频观看| 亚洲人妖av一区二区| 最新国产精品久久精品| 亚洲日本青草视频在线怡红院| 国产精品九色蝌蚪自拍| 国产精品欧美一级免费|