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

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

?? cldwat.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
?? 第 1 頁 / 共 4 頁
字號:
! the following lines calculate the slope parameter and snow mixing ratio! from the precip rate using the equations found in lin et al 83! in the most natural form, but it is expensive, so after some tedious! algebraic manipulation you can use the cheaper form found below!            vfalls = c*gam4pd/(6*lamdas**d)*sqrt(rhonot/rhocgs)!     $               *0.01   ! convert from cm/s to m/s!            snowmr(i) = snowfr*precab(i)/(rho(i)*vfalls*cldpr(i))!            snowmr(i) = ( prscgs(i)*mcon02 * (rhocgs**mcon03) )**mcon04!            lamdas = (prhonos/max(rhocgs*snowmr(i),small))**0.25!            csacw = mcon01*sqrt(rhonot/rhocgs)/(lamdas**thrpd)!! coefficient for collection by snow independent of phase!      csacx = mcon07*rhocgs**mcon08*prscgs(i)**mcon05!! collection of liquid by snow (lin et al 1983)!      psacw = csacx*liqmr(i)*esw#ifdef PERGRO! this is necessary for pergro      psacw = 0.#endif!! collection of ice by snow (lin et al 1983)!      psaci = csacx*icemr(i)*esi!! total conversion of condensate to precipitate!      ptot = pwaut + psaut + pracw + psacw + psaci!! the recipricol of cloud water amnt (or zero if no cloud water)!!         rcwm =  totmr(i)/(max(totmr(i),small)**2)!! turn the tendency back into a loss rate (1/seconds)!      if (totmr(i) > 0.) then         coef(i) = ptot/totmr(i)      else         coef(i) = 0.      endif      fwaut(i) = pwaut/max(ptot,small)      fsaut(i) = psaut/max(ptot,small)      fracw(i) = pracw/max(ptot,small)      fsacw(i) = psacw/max(ptot,small)      fsaci(i) = psaci/max(ptot,small)   end do#ifdef DEBUG   i = icollook(nlook)   if (lchnk == lchnklook(nlook) ) then      write (6,*)      write (6,*) '------', k      write (6,*) ' liqmr, rainmr,precab ', liqmr(i), rainmr(i), precab(i)*8.64e4      write (6,*) ' frac: waut,saut,racw,sacw,saci ', &           fwaut(i), fsaut(i), fracw(i), fsacw(i), fsaci(i)   endif#endif   returnend subroutine findmcnew!##############################################################################subroutine findsp (lchnk, ncol, q, t, p, tsp, qsp)!----------------------------------------------------------------------- ! ! Purpose: !     find the wet bulb temperature for a given t and q!     in a longitude height section!     wet bulb temp is the temperature and spec humidity that is !     just saturated and has the same enthalpy!     if q > qs(t) then tsp > t and qsp = qs(tsp) < q!     if q < qs(t) then tsp < t and qsp = qs(tsp) > q!! Method: ! a Newton method is used! first guess uses an algorithm provided by John Petch from the UKMO! we exclude points where the physical situation is unrealistic! e.g. where the temperature is outside the range of validity for the!      saturation vapor pressure, or where the water vapor pressure!      exceeds the ambient pressure, or the saturation specific humidity is !      unrealistic! ! Author: P. Rasch! !-----------------------------------------------------------------------!!     input arguments!   integer, intent(in) :: lchnk                 ! chunk identifier   integer, intent(in) :: ncol                  ! number of atmospheric columns   real(r8), intent(in) :: q(pcols,pver)        ! water vapor (kg/kg)   real(r8), intent(in) :: t(pcols,pver)        ! temperature (K)   real(r8), intent(in) :: p(pcols,pver)        ! pressure    (Pa)!! output arguments!   real(r8), intent(out) :: tsp(pcols,pver)      ! saturation temp (K)   real(r8), intent(out) :: qsp(pcols,pver)      ! saturation mixing ratio (kg/kg)!! local variables!   integer i                 ! work variable   integer k                 ! work variable   logical lflg              ! work variable   integer iter              ! work variable   integer l                 ! work variable   real(r8) omeps                ! 1 minus epsilon   real(r8) trinv                ! work variable   real(r8) es                   ! sat. vapor pressure   real(r8) desdt                ! change in sat vap pressure wrt temperature!     real(r8) desdp                ! change in sat vap pressure wrt pressure   real(r8) dqsdt                ! change in sat spec. hum. wrt temperature   real(r8) dgdt                 ! work variable   real(r8) g                    ! work variable   real(r8) weight(pcols)        ! work variable   real(r8) hlatsb               ! (sublimation)   real(r8) hlatvp               ! (vaporization)   real(r8) hltalt(pcols,pver)   ! lat. heat. of vap.   real(r8) tterm                ! work var.   real(r8) qs                   ! spec. hum. of water vapor   real(r8) tc                   ! crit temp of transition to ice! work variables   real(r8) t1, q1, dt, dq   real(r8) dtm, dqm   real(r8) qvd, a1, tmp   real(r8) rair   real(r8) r1b, c1, c2, c3   real(r8) denom   real(r8) dttol   real(r8) dqtol   integer doit(pcols)    real(r8) enin(pcols), enout(pcols)   real(r8) tlim(pcols)   omeps = 1.0 - epsqs   trinv = 1.0/ttrice   a1 = 7.5*log(10._r8)   rair =  287.04   c3 = rair*a1/cp   dtm = 0.    ! needed for iter=0 blowup with f90 -ei   dqm = 0.    ! needed for iter=0 blowup with f90 -ei   dttol = 1.e-4 ! the relative temp error tolerance required to quit the iteration   dqtol = 1.e-4 ! the relative moisture error tolerance required to quit the iteration!  tmin = 173.16 ! the coldest temperature we can deal with!! max number of times to iterate the calculation   iter = 8!   do k = k1mb,pver!! first guess on the wet bulb temperature!      do i = 1,ncol#ifdef DEBUG         if ( (lchnk == lchnklook(nlook) ) .and. (i == icollook(nlook) ) ) then            write (6,*) ' '            write (6,*) ' level, t, q, p', k, t(i,k), q(i,k), p(i,k)         endif#endif! limit the temperature range to that relevant to the sat vap pres tables         tlim(i) = min(max(t(i,k),173._r8),373._r8)         es = estblf(tlim(i))         denom = p(i,k) - omeps*es         qs = epsqs*es/denom         doit(i) = 0         enout(i) = 1.! make sure a meaningful calculation is possible         if (p(i,k) > 5.*es .and. qs > 0. .and. qs < 0.5) then!! Saturation specific humidity!             qs = min(epsqs*es/denom,1._r8)!! "generalized" analytic expression for t derivative of es!  accurate to within 1 percent for 173.16 < t < 373.16!! Weighting of hlat accounts for transition from water to ice! polynomial expression approximates difference between es over! water and es over ice from 0 to -ttrice (C) (min of ttrice is! -40): required for accurate estimate of es derivative in transition! range from ice to water also accounting for change of hlatv with t! above freezing where const slope is given by -2369 j/(kg c) = cpv - cw!             tc     = tlim(i) - t0             lflg   = (tc >= -ttrice .and. tc < 0.0)             weight(i) = min(-tc*trinv,1.0_r8)             hlatsb = hlatv + weight(i)*hlatf             hlatvp = hlatv - 2369.0*tc             if (tlim(i) < t0) then                hltalt(i,k) = hlatsb             else                hltalt(i,k) = hlatvp             end if             enin(i) = cp*tlim(i) + hltalt(i,k)*q(i,k)! make a guess at the wet bulb temp using a UKMO algorithm (from J. Petch)             tmp =  q(i,k) - qs             c1 = hltalt(i,k)*c3             c2 = (tlim(i) + 36.)**2             r1b    = c2/(c2 + c1*qs)             qvd   = r1b*tmp             tsp(i,k) = tlim(i) + ((hltalt(i,k)/cp)*qvd)#ifdef DEBUG             if ( (lchnk == lchnklook(nlook) ) .and. (i == icollook(nlook) ) ) then                write (6,*) ' relative humidity ', q(i,k)/qs                write (6,*) ' first guess ', tsp(i,k)             endif#endif             es = estblf(tsp(i,k))             qsp(i,k) = min(epsqs*es/(p(i,k) - omeps*es),1._r8)          else             doit(i) = 1             tsp(i,k) = tlim(i)             qsp(i,k) = q(i,k)             enin(i) = 1.          endif       end do   ! end do i!! now iterate on first guess!      do l = 1, iter         dtm = 0         dqm = 0         do i = 1,ncol            if (doit(i) == 0) then               es = estblf(tsp(i,k))!! Saturation specific humidity!               qs = min(epsqs*es/(p(i,k) - omeps*es),1._r8)!! "generalized" analytic expression for t derivative of es! accurate to within 1 percent for 173.16 < t < 373.16!! Weighting of hlat accounts for transition from water to ice! polynomial expression approximates difference between es over! water and es over ice from 0 to -ttrice (C) (min of ttrice is! -40): required for accurate estimate of es derivative in transition! range from ice to water also accounting for change of hlatv with t! above freezing where const slope is given by -2369 j/(kg c) = cpv - cw!               tc     = tsp(i,k) - t0               lflg   = (tc >= -ttrice .and. tc < 0.0)               weight(i) = min(-tc*trinv,1.0_r8)               hlatsb = hlatv + weight(i)*hlatf               hlatvp = hlatv - 2369.0*tc               if (tsp(i,k) < t0) then                  hltalt(i,k) = hlatsb               else                  hltalt(i,k) = hlatvp               end if               if (lflg) then                  tterm = pcf(1) + tc*(pcf(2) + tc*(pcf(3)+tc*(pcf(4) + tc*pcf(5))))               else                  tterm = 0.0               end if               desdt = hltalt(i,k)*es/(rgasv*tsp(i,k)*tsp(i,k)) + tterm*trinv               dqsdt = (epsqs + omeps*qs)/(p(i,k) - omeps*es)*desdt!              g = cp*(tlim(i)-tsp(i,k)) + hltalt(i,k)*q(i,k)- hltalt(i,k)*qsp(i,k)               g = enin(i) - (cp*tsp(i,k) + hltalt(i,k)*qsp(i,k))               dgdt = -(cp + hltalt(i,k)*dqsdt)               t1 = tsp(i,k) - g/dgdt               dt = abs(t1 - tsp(i,k))/t1               tsp(i,k) = max(t1,tmin)               es = estblf(tsp(i,k))               q1 = min(epsqs*es/(p(i,k) - omeps*es),1._r8)               dq = abs(q1 - qsp(i,k))/max(q1,1.e-12_r8)               qsp(i,k) = q1#ifdef DEBUG               if ( (lchnk == lchnklook(nlook) ) .and. (i == icollook(nlook) ) ) then                  write (6,*) ' rel chg lev, iter, t, q ', k, l, dt, dq, g               endif#endif               dtm = max(dtm,dt)               dqm = max(dqm,dq)! if converged at this point, exclude it from more iterations               if (dt < dttol .and. dq < dqtol) then                  doit(i) = 2               endif               enout(i) = cp*tsp(i,k) + hltalt(i,k)*qsp(i,k)! bail out if we are too near the end of temp range               if (tsp(i,k) < 174.16) then                  doit(i) = 4               endif            else            endif         end do              ! do i = 1,ncol         if (dtm < dttol .and. dqm < dqtol) then            go to 10         endif      end do                 ! do l = 1,iter10    continue      if (dtm > dttol .or. dqm > dqtol) then         do i = 1,ncol            if (doit(i) == 0) then               write (6,*) ' findsp not converging at point i, k ', i, k               write (6,*) ' t, q, p, enin ', t(i,k), q(i,k), p(i,k), enin(i)               write (6,*) ' tsp, qsp, enout ', tsp(i,k), qsp(i,k), enout(i)               call endrun ()            endif         end do      endif      do i = 1,ncol         if (doit(i) == 2 .and. abs((enin(i)-enout(i))/(enin(i)+enout(i))) > 1.e-4) then            write (6,*) ' the enthalpy is not conserved for point ', &                 i, k, enin(i), enout(i)            write (6,*) ' t, q, p, enin ', t(i,k), q(i,k), p(i,k), enin(i)            write (6,*) ' tsp, qsp, enout ', tsp(i,k), qsp(i,k), enout(i)            call endrun ()         endif      end do         end do                    ! level loop (k=1,pver)   returnend subroutine findspend module cldwat

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜在线观看视频| 久久亚洲精华国产精华液 | 亚洲一区二区在线观看视频| 日韩三级伦理片妻子的秘密按摩| 成人av在线电影| 日韩精品一卡二卡三卡四卡无卡| 日韩毛片视频在线看| 精品剧情在线观看| 欧美精品777| 91丨porny丨国产| 国产精品1024久久| 麻豆中文一区二区| 亚洲成人自拍偷拍| 亚洲三级理论片| 欧美激情一区在线| 精品欧美乱码久久久久久| 91国产精品成人| 91老司机福利 在线| 成人性生交大片免费看视频在线 | 中文字幕日韩精品一区 | 中文字幕 久热精品 视频在线| 717成人午夜免费福利电影| 91色视频在线| 成人app网站| 成人免费毛片a| 国产一区二区三区蝌蚪| 久久国产日韩欧美精品| 天天免费综合色| 亚洲午夜激情网站| 亚洲一区二区三区四区中文字幕| 成人免费在线播放视频| 日本一区二区电影| 中文字幕av不卡| 一区二区三区日韩欧美精品| 欧美激情一区二区三区四区| 精品国产99国产精品| 日韩免费看网站| 日韩欧美国产三级| 亚洲精品一区二区精华| 精品国产髙清在线看国产毛片| 日韩亚洲欧美高清| 日韩一区二区影院| 欧美一级片免费看| 精品乱人伦小说| 精品国产一二三区| 国产人成一区二区三区影院| 久久久99免费| 亚洲国产高清在线| 国产精品成人免费 | 激情欧美一区二区| 国产一区二区三区免费播放| 国产精品99久久久久久似苏梦涵| 国内成+人亚洲+欧美+综合在线 | 久久99精品国产.久久久久久| 蜜臀精品一区二区三区在线观看| 视频一区二区三区中文字幕| 免费成人在线网站| 国产精品99久久久久久久vr| jlzzjlzz欧美大全| 色悠悠久久综合| 337p亚洲精品色噜噜| 日韩免费观看高清完整版在线观看| 精品国产乱码91久久久久久网站| 欧美国产综合色视频| 亚洲欧美日韩久久| 天堂久久久久va久久久久| 韩国视频一区二区| www.在线欧美| 91精品国产高清一区二区三区| 日韩精品一区在线| 国产精品国产三级国产普通话三级 | 国产精品久久久久三级| 亚洲一区二三区| 精品综合久久久久久8888| 成人免费看片app下载| 91福利精品第一导航| 欧美成人国产一区二区| 成人欧美一区二区三区| 麻豆精品一区二区| 97久久超碰国产精品| 日韩一区二区电影在线| **网站欧美大片在线观看| 日韩精品乱码免费| 成人av小说网| 91精品国产黑色紧身裤美女| 国产精品久久久久久久久快鸭| 亚洲第一综合色| 国产 日韩 欧美大片| 欧美久久一区二区| 国产精品视频免费看| 天天影视色香欲综合网老头| 国产成人av一区二区三区在线 | 成人免费观看视频| 欧美精品九九99久久| 自拍视频在线观看一区二区| 日本成人在线网站| 一本高清dvd不卡在线观看| 精品国产一区二区三区忘忧草| 亚洲欧美另类在线| 国产**成人网毛片九色 | 2021久久国产精品不只是精品| 夜夜揉揉日日人人青青一国产精品| 精品一二三四在线| 欧美男生操女生| 综合av第一页| 成人综合婷婷国产精品久久 | 欧美在线观看18| 中文字幕不卡一区| 精品一区二区在线观看| 欧美最猛性xxxxx直播| 国产精品久久久久久久久晋中| 另类专区欧美蜜桃臀第一页| 欧美艳星brazzers| 国产精品美女久久久久久久久久久| 麻豆精品新av中文字幕| 欧美精品精品一区| 亚洲一区在线电影| 日本乱码高清不卡字幕| 综合久久久久久| 成人精品一区二区三区中文字幕 | 日韩精品一区二区在线| 午夜精品久久久久久久蜜桃app| 91一区二区在线| 中文字幕+乱码+中文字幕一区| 国产精品中文字幕一区二区三区| 久久久国产一区二区三区四区小说 | 日本丰满少妇一区二区三区| 亚洲国产成人在线| 国产精品亚洲人在线观看| 精品国产乱码久久久久久1区2区| 欧美aa在线视频| 日韩欧美一区二区三区在线| 日韩va亚洲va欧美va久久| 欧美日韩视频一区二区| 亚洲一区二区三区在线播放| 在线免费观看成人短视频| 一区二区三区四区不卡在线| 欧美影院一区二区| 亚洲成人激情综合网| 欧美色大人视频| 天堂一区二区在线| 日韩亚洲欧美综合| 激情深爱一区二区| 国产欧美视频一区二区三区| 高清av一区二区| 一色屋精品亚洲香蕉网站| 色综合久久中文字幕综合网| 亚洲欧美激情小说另类| 91久久精品网| 首页国产欧美久久| 日韩欧美高清dvd碟片| 黄页网站大全一区二区| 亚洲国产精华液网站w | 欧美人xxxx| 老司机精品视频在线| 久久人人爽人人爽| www.欧美亚洲| 视频一区中文字幕| 亚洲精品一线二线三线| www.66久久| 亚洲自拍偷拍图区| 日韩视频免费观看高清完整版| 国产乱子轮精品视频| 国产精品久久久久桃色tv| 欧美日韩在线精品一区二区三区激情 | 日韩一区二区在线观看| 国产成人免费视| 亚洲一级二级三级| 欧美成人一区二区三区片免费| 国产麻豆精品在线| 亚洲国产另类精品专区| 精品国精品自拍自在线| 99久久精品99国产精品| 香蕉久久一区二区不卡无毒影院| 精品成人一区二区三区| 91一区二区在线观看| 久久国产综合精品| 一区二区三区日韩在线观看| 欧美电影精品一区二区| 91亚洲精品一区二区乱码| 蜜臀91精品一区二区三区 | 91精品国产综合久久久久久| 国产精品一区二区在线观看网站| 亚洲欧美综合另类在线卡通| 欧美精品高清视频| 成人黄色小视频| 蜜桃视频在线观看一区二区| 日韩伦理电影网| 欧美成人一区二区三区片免费| 色综合久久中文综合久久97| 狠狠色丁香婷婷综合| 亚洲成人免费在线观看| 久久久国产午夜精品| 在线电影一区二区三区| www.在线成人| 国产九色精品成人porny| 亚洲激情网站免费观看| 欧美精品一区二| 欧美日韩一区二区电影| 99精品国产99久久久久久白柏 |