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

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

?? driver.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
字號:
#include <misc.h>#include <preproc.h>subroutine driver (doalb, eccen, obliqr, lambm0, mvelpp)!-----------------------------------------------------------------------!! Purpose:! clm model driver!! Method:! Calling sequence:!! -> histend   Determines if current time step is the end of history interval!! -> calendr   Generate the calendar day (1.00 -> 365.99), month (1 -> 12),!              and day (1 -> 31) used to calculate the surface albedos and!              leaf and stem areas for the next time step!! -> loop over patch points calling for each patch point:!    -> Hydrology1          canopy interception and precip on ground!    -> Biogeophysics1      leaf temperature and surface fluxes!    -> Biogeophysics_Lake  lake temperature and surface fluxes!    -> Biogeophysics2      soil/snow and ground temp and update surface fluxes!    -> Hydrology2          surface and soil hydrology!    -> Hydrology_Lake      lake hydrology!    -> EcosystemDyn:       ecosystem dynamics: phenology, vegetation, soil carbon!    -> SurfaceAlbedo:      albedos for next time step!      -> SnowAlbedo:       snow albedos: direct beam!      -> SnowAlbedo:       snow albedos: diffuse!      -> SoilAlbedo:       soil/lake albedos!      -> TwoStream:        absorbed, reflected, transmitted solar fluxes (vis dir)!      -> TwoStream:        absorbed, reflected, transmitted solar fluxes (vis dif)!      -> TwoStream:        absorbed, reflected, transmitted solar fluxes (nir dir)!      -> TwoStream:        absorbed, reflected, transmitted solar fluxes (nir dif)!    -> BalanceCheck        check for errors in energy and water balances!    -> histUpdate:         accumulate history fields over history time interval!!  -> Rtmriverflux          calls RTM river routing model!!  -> histHandler           write history and restart files if appropriate!! Author: Mariana Vertenstein!!-----------------------------------------------------------------------! $Id: driver.F90,v 1.11.2.5.6.1 2002/05/13 19:25:03 erik Exp $!-----------------------------------------------------------------------  use precision  use clm_varder  use clm_varpar    , only : maxpatch  use clm_varmap    , only : begpatch, endpatch, numpatch, numland, landvec  use clm_varctl    , only : fsurdat, wrtdia, csm_doflxave    use histHandlerMod, only : histHandler, histend, do_restwrite  use restFileMod   , only : restwrt   use inicFileMod   , only : inicwrt, do_inicwrite   use mvegFileMod   , only : interpmonthlyveg  use time_manager  , only : get_step_size, get_curr_calday, get_curr_date, get_nstep#if (defined RTM)  use RtmMod        , only : Rtmriverflux#endif#if (defined SPMD)  use spmdMod       , only : masterproc, npes, compute_mpigs_patch  use mpishorthand  , only : mpir8, mpilog, mpicom #else  use spmdMod       , only : masterproc#endif#if (defined COUP_CSM)  use clm_csmMod    , only : csm_dosndrcv, csm_recv, csm_send, csm_flxave, &                             dorecv, dosend, csmstop_now#endif  use shr_sys_mod   , only : shr_sys_flush  implicit none! ------------------- arguments -----------------------------------  logical , intent(in) :: doalb   !true if time for surface albedo calculation  real(r8), intent(in) :: eccen   !Earth's orbital eccentricity  real(r8), intent(in) :: obliqr  !Earth's obliquity in radians  real(r8), intent(in) :: lambm0  !Mean longitude of perihelion at the vernal equinox (radians)  real(r8), intent(in) :: mvelpp  !Earth's moving vernal equinox long. of perihelion + pi (radians)! -----------------------------------------------------------------! ---------------------- local variables --------------------------  integer  :: i,j,k,l,m           !loop/array indices  integer  :: yrp1                !year (0, ...) for nstep+1  integer  :: monp1               !month (1, ..., 12) for nstep+1  integer  :: dayp1               !day of month (1, ..., 31) for nstep+1  integer  :: secp1               !seconds into current date for nstep+1     real(r8) :: caldayp1            !calendar day for nstep+1  integer  :: dtime               !timestep size [seconds]  integer  :: nstep               !timestep index  real(r8) :: buf1d(begpatch:endpatch) !temporary buffer   real(r8) :: tsxyav              !average ts for diagnostic output#if (defined SPMD)  real(r8) :: gather1d(numpatch)  !temporary  integer  :: numrecvv(0:npes-1)  !vector of items to be received    integer  :: displsv(0:npes-1)   !displacement vector  integer  :: numsend             !number of items to be sent  integer  :: ier                 !error code#endif! -----------------------------------------------------------------  call t_startf('clm_driver')! determine time step  nstep = get_nstep() ! ----------------------------------------------------------------------! Coupler receive! ----------------------------------------------------------------------#if (defined COUP_CSM)!! Determine if information should be sent/received to/from flux coupler!  call csm_dosndrcv(doalb)!! Get atmospheric state and fluxes from flux coupler!  if (dorecv) then     call csm_recv()     if (csmstop_now) then        call t_stopf('clm_driver')        RETURN     endif  endif#endif! ----------------------------------------------------------------------! Determine if end of history interval! ----------------------------------------------------------------------  call histend ()! ----------------------------------------------------------------------! Calendar information for next time step! o caldayp1 = calendar day (1.00 -> 365.99) for cosine solar zenith angle!              calday is based on Greenwich time! o monp1    = month (1 -> 12) for leaf area index and stem area index! o dayp1    = day (1 -> 31)   for leaf area index and stem area index! ----------------------------------------------------------------------  dtime = get_step_size()  caldayp1 = get_curr_calday(offset=dtime)    call get_curr_date(yrp1, monp1, dayp1, secp1, offset=dtime)! ----------------------------------------------------------------------! Determine weights for time interpolation of monthly vegetation data.! This also determines whether it is time to read new monthly vegetation and! obtain updated leaf area index [mlai1,mlai2], stem area index [msai1,msai2],! vegetation top [mhvt1,mhvt2] and vegetation bottom [mhvb1,mhvb2]. The! weights obtained here are used in subroutine ecosystemdyn to obtain time! interpolated values.! ----------------------------------------------------------------------  if (doalb) call interpMonthlyVeg (fsurdat, monp1, dayp1)! ----------------------------------------------------------------------! LOOP 1! ----------------------------------------------------------------------  call t_startf('clm_loop1')!$OMP PARALLEL DO PRIVATE (K,J)  do k = begpatch, endpatch    ! begin 1st loop over patches!! Initial set of variables!     clm(k)%nstep = nstep     clm(k)%h2osno_old = clm(k)%h2osno  ! snow mass at previous time step     clm(k)%frac_veg_nosno = clm(k)%frac_veg_nosno_alb!! Determine if will cap snow!     if (clm(k)%h2osno > 1000.) then        clm(k)%do_capsnow = .true.     else        clm(k)%do_capsnow = .false.     endif!! Energy for non-lake points!     if (.not. clm(k)%lakpoi) then!! Initial set of previous time step variables!        do j = clm(k)%snl+1, 0       ! ice fraction of snow at previous time step           clm(k)%frac_iceold(j) = clm(k)%h2osoi_ice(j)/(clm(k)%h2osoi_liq(j)+clm(k)%h2osoi_ice(j))        enddo!! Determine beginning water balance (water balance at previous time step)!        clm(k)%begwb = clm(k)%h2ocan + clm(k)%h2osno        do j = 1, nlevsoi           clm(k)%begwb = clm(k)%begwb + clm(k)%h2osoi_ice(j) + clm(k)%h2osoi_liq(j)        enddo!! Determine canopy interception and precipitation onto ground surface.! Determine the fraction of foliage covered by water and the fraction! of foliage that is dry and transpiring. Initialize snow layer if the! snow accumulation exceeds 10 mm.!        call Hydrology1(clm(k))!! Determine leaf temperature and surface fluxes based on ground! temperature from previous time step.!        call Biogeophysics1(clm(k))     else if (clm(k)%lakpoi) then!! Determine lake temperature and surface fluxes!        call Biogeophysics_Lake (clm(k))     endif     if (.not. clm(k)%lakpoi) then!! Ecosystem dynamics: phenology, vegetation, soil carbon.! Also updates snow fraction!        call EcosystemDyn (clm(k), doalb, .false.)     else if (clm(k)%lakpoi) then! Needed for global history output        clm(k)%fpsn = 0.       endif!! Albedos for next time step!     if (doalb) then        call SurfaceAlbedo (clm(k), caldayp1, eccen, obliqr, lambm0, mvelpp)     endif!! THIS WILL EVENTUALLY MARK THE END OF THE PATCH LOOP AND! THE BEGINNING OF THE SINGLE COLUMN SOIL LOOP(S)!! Determine soil/snow temperatures including ground temperature and! update surface fluxes for new ground temperature.!     if (.not. clm(k)%lakpoi) call Biogeophysics2(clm(k))  end do     !$OMP END PARALLEL DO  call t_stopf('clm_loop1')! ----------------------------------------------------------------------! Coupler send! ----------------------------------------------------------------------#if (defined COUP_CSM)!! Average fluxes over interval if appropriate! Surface states sent to the flux coupler states are not time averaged!     if (csm_doflxave) call csm_flxave()!! Send fields to flux coupler! Send states[n] (except for snow[n-1]), time averaged fluxes for [n,n-1,n-2],! albedos[n+1], and ocnrof_vec[n]!     if (dosend) call csm_send()#endif! ----------------------------------------------------------------------! LOOP 2! ----------------------------------------------------------------------  call t_startf('clm_loop2')!$OMP PARALLEL DO PRIVATE (K)  do k = begpatch, endpatch   ! begin 2nd loop over patches!! Vertical (column) soil and surface hydrology!     if (.not. clm(k)%lakpoi) call Hydrology2 (clm(k))!! Lake hydrology!     if (clm(k)%lakpoi) call Hydrology_Lake (clm(k))!! Update Snow Age (needed for surface albedo calculation - but is! really a column type property!     call SnowAge (clm(k))!! Fraction of soil covered by snow - really a column property!     clm(k)%frac_sno = clm(k)%snowdp/(10.*clm(k)%zlnd + clm(k)%snowdp)!! Check the energy and water balance!     call BalanceCheck (clm(k))  end do    !$OMP END PARALLEL DO  call t_stopf('clm_loop2')! ----------------------------------------------------------------------! Update history fields and internally accumulated fields! ----------------------------------------------------------------------  call t_startf('histup')  call histUpdate ()   call t_stopf('histup')! ----------------------------------------------------------------------! Write global average diagnostics to standard output! ----------------------------------------------------------------------  if (wrtdia) then     buf1d(begpatch:endpatch) = clm(begpatch:endpatch)%t_rad#if (defined SPMD)     call compute_mpigs_patch(1, numsend, numrecvv, displsv)     call mpi_gatherv (buf1d(begpatch), numsend , mpir8, &          gather1d, numrecvv, displsv, mpir8, 0, mpicom, ier)#endif     if (masterproc) then        tsxyav = 0._r8        do m = 1, maxpatch           do l = 1, numland              k = landvec%patch(l,m)#if (defined SPMD)              tsxyav = tsxyav + gather1d(k)*landvec%wtxy(l,m)#else              tsxyav = tsxyav + buf1d(k)*landvec%wtxy(l,m)#endif           end do        end do        tsxyav = tsxyav / numland        write (6,1000) nstep,tsxyav1000    format (1x,'nstep = ',i10,'   TS = ',e21.15)     end if  else#if (!defined COUP_CAM)     if (masterproc) then        write(6,*)'clm2: completed timestep ',nstep        call shr_sys_flush(6)     endif#endif  endif#if (defined RTM)! ----------------------------------------------------------------------! Route surface and subsurface runoff into rivers! ----------------------------------------------------------------------  call t_startf('clm_rtm')  call Rtmriverflux ()  call t_stopf('clm_rtm')#endif! ----------------------------------------------------------------------! Write history, restart files and initial conditions file if appropriate! ----------------------------------------------------------------------  call t_startf('clm_output')  call histhandler ()  if (do_restwrite()) call restwrt ()  if (do_inicwrite()) call inicwrt ()  call t_stopf('clm_output')  call t_stopf('clm_driver')  returnend subroutine driver

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆9l精品三级站| 中文字幕在线观看不卡| 国产精品午夜春色av| 奇米888四色在线精品| 国产一区二区视频在线| 日本一区免费视频| 99久久精品情趣| 午夜伦欧美伦电影理论片| 欧美日韩国产欧美日美国产精品| 五月天久久比比资源色| 日韩三级视频中文字幕| 风间由美一区二区av101| 亚洲少妇最新在线视频| 欧美日韩精品欧美日韩精品| 美女一区二区在线观看| 国产亚洲精品福利| 91福利视频在线| 美女看a上一区| 一区在线播放视频| 宅男噜噜噜66一区二区66| 国产成人综合在线| 亚洲五月六月丁香激情| 久久这里只精品最新地址| 色中色一区二区| 国内精品伊人久久久久av一坑| 国产精品麻豆久久久| 欧美日韩国产高清一区| 国产成人av一区| 天天免费综合色| 国产精品国产a级| 日韩欧美激情在线| 在线观看亚洲a| 国产成人精品一区二| 日欧美一区二区| 国产精品久久久久久久久免费相片| 欧美精品第1页| 99国产麻豆精品| 狠狠色丁香久久婷婷综| 亚洲午夜免费电影| 久久久久久久久久久久久女国产乱| 欧美亚洲图片小说| 成人免费视频国产在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| **性色生活片久久毛片| 久久婷婷国产综合精品青草| 欧美日韩一二三区| 91免费在线播放| 丁香六月久久综合狠狠色| 日本不卡中文字幕| 亚洲v日本v欧美v久久精品| 中文字幕在线免费不卡| 国产欧美一区二区三区鸳鸯浴 | 久久综合中文字幕| 欧美性xxxxx极品少妇| 成人av第一页| 狠狠色狠狠色综合系列| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲v精品v日韩v欧美v专区| 一区二区三区 在线观看视频| 国产精品素人视频| 久久婷婷久久一区二区三区| 欧美一区二区高清| 制服丝袜av成人在线看| 欧美日韩精品免费| 91久久精品一区二区三| bt欧美亚洲午夜电影天堂| 春色校园综合激情亚洲| 国产九色sp调教91| 国产高清成人在线| 国产麻豆精品在线观看| 国产美女一区二区三区| 国产一区91精品张津瑜| 国产电影一区在线| 国产高清亚洲一区| 高清免费成人av| 丰满放荡岳乱妇91ww| 成人99免费视频| 一道本成人在线| 欧美三级中文字幕| 欧美电影在哪看比较好| 日韩一区二区三区高清免费看看| 6080午夜不卡| 欧美精品一区在线观看| 日本一区二区三区四区在线视频 | 免费成人你懂的| 蜜臀av一区二区三区| 九九国产精品视频| 国产.欧美.日韩| 色综合久久综合| 欧美日韩高清在线播放| 日韩欧美你懂的| 国产欧美日韩不卡| 亚洲综合免费观看高清完整版 | 亚洲色图视频网| 亚洲福利国产精品| 免费日本视频一区| 国产精品一二三区在线| 91一区二区在线观看| 欧美午夜寂寞影院| 日韩亚洲国产中文字幕欧美| 久久综合网色—综合色88| 国产精品国产a| 亚洲国产精品自拍| 国产精品一级在线| 色综合视频在线观看| 日韩欧美精品三级| 国产精品国产三级国产专播品爱网| 亚洲黄色av一区| 美女在线视频一区| 一本久久精品一区二区| 欧美日韩久久一区| 久久一留热品黄| 亚洲一区av在线| 国产东北露脸精品视频| 欧美综合久久久| 久久久99精品免费观看| 亚洲午夜激情网页| 国产成人免费网站| 欧美日韩黄色影视| 国产精品毛片无遮挡高清| 日韩**一区毛片| 色噜噜狠狠色综合中国| 26uuu久久天堂性欧美| 亚洲综合色在线| 国产精品综合久久| 91麻豆精品国产91久久久| 亚洲四区在线观看| 国产精品一区二区在线播放| 欧美色综合影院| 欧美国产激情二区三区| 日韩电影免费在线看| 91猫先生在线| 日本一区二区成人| 久久er99热精品一区二区| 欧洲视频一区二区| 国产精品第五页| 国产 日韩 欧美大片| 日韩欧美色综合| 日韩不卡手机在线v区| 色老汉av一区二区三区| 国产精品青草久久| 国产一区二区三区免费播放| 欧美卡1卡2卡| 一区二区高清视频在线观看| 成a人片国产精品| 欧美激情一二三区| 国产综合久久久久久鬼色| 欧美一区二区三区小说| 亚洲国产精品久久不卡毛片| 成人精品国产免费网站| 久久久久久9999| 久久99精品国产麻豆婷婷| 欧美一区二区三区在| 亚洲成年人影院| 欧美日韩中字一区| 亚洲成人激情综合网| 欧美制服丝袜第一页| 亚洲欧美国产毛片在线| 色综合久久中文综合久久牛| 国产精品久久久久婷婷| 成人免费看片app下载| 欧美激情中文字幕一区二区| 国产成人av一区二区三区在线 | 亚洲日本一区二区| 成人免费看的视频| 亚洲天堂网中文字| 色综合久久久久久久久久久| 一区二区三区日韩精品| 欧洲精品在线观看| 亚洲成人久久影院| 日韩一区二区免费电影| 久草这里只有精品视频| 2021久久国产精品不只是精品| 国产自产v一区二区三区c| 欧美精品一区二区三区视频 | 亚洲黄色在线视频| 欧美天天综合网| 日韩av一区二区三区四区| 精品国产区一区| 亚洲精品一区二区三区四区高清| 久久综合九色综合欧美就去吻| 欧美三级视频在线观看| 一区二区三区四区激情| 91精品国产综合久久香蕉麻豆| 欧美aaaaaa午夜精品| 久久亚洲春色中文字幕久久久| 久久激情综合网| 欧美国产亚洲另类动漫| 在线观看日产精品| 国产精品一线二线三线| 99麻豆久久久国产精品免费| 国产成人在线电影| 蜜臀av性久久久久蜜臀aⅴ流畅| 中文字幕亚洲区| 久久久久久毛片| 国产日韩欧美综合在线| 久久综合九色综合久久久精品综合| 欧洲精品中文字幕| 日韩一级片在线播放| 日韩欧美的一区二区|