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

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

?? atmdrvmod.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
?? 第 1 頁 / 共 4 頁
字號:
                clm(k)%forc_rain = 0.                clm(k)%forc_snow = forc_precc(k)+forc_precl(k)             endif          else             clm(k)%itypprc   = 0             clm(k)%forc_rain = 0.             clm(k)%forc_snow = 0          endif! Derive new fields (potential temperature, vapor pressure, ! air density, CO2, and O2) and copy solar radiations          clm(k)%forc_th  = clm(k)%forc_t * (clm(k)%forc_psrf/clm(k)%forc_pbot)**(rair/cpair)          clm(k)%forc_vp  = clm(k)%forc_q*clm(k)%forc_pbot / (0.622+0.378*clm(k)%forc_q)          clm(k)%forc_rho = (clm(k)%forc_pbot-0.378*clm(k)%forc_vp) / (rair*clm(k)%forc_t)          clm(k)%forc_co2 = pco2*clm(k)%forc_pbot          clm(k)%forc_o2  = po2*clm(k)%forc_pbot          clm(k)%forc_solad(1) = forc_sols(k)               clm(k)%forc_solad(2) = forc_soll(k)              clm(k)%forc_solai(1) = forc_solsd(k)                clm(k)%forc_solai(2) = forc_solld(k)            end do!$OMP END PARALLEL DO    end if! Reset open_data     if (open_data) then       open_data = .false.    !reset to false     elseif (kda == 1 .and. mcsec == 0) then       open_data = .true.     !for next time step    endif    return  end subroutine atmdrv!=======================================================================  subroutine atm_getgrid()!----------------------------------------------------------------------- ! ! Purpose: ! Obtain atmospheric grid data!! Method: ! Read offline grid data and allocate dynamic memory! ! Author: Mariana Vertenstein! !-----------------------------------------------------------------------    use precision    use infnan    use clm_varder    use clm_varpar  , only : lsmlon, lsmlat    use clm_varctl  , only : offline_atmdir    use clm_varcon  , only : rair, cpair, po2, pco2    use clm_varmap  , only : begpatch, endpatch    use clm_varsur  , only : numlon, longxy, latixy, lsmedge    use fileutils   , only : getfil    use time_manager, only : get_curr_date#if (defined SPMD)    use mpishorthand, only : mpiint, mpir8, mpicom#endif    implicit none    include 'netcdf.inc'! ------------------------ local variables ---------------------------    integer :: kda                !day (1 -> 31)    integer :: kmo                !month (1 -> 12)    integer :: kyr                !year (0 -> ...)    integer :: ksec               !current seconds of current date (0 -> 86400)    integer :: mcsec              !current time of day [seconds]    character(len=  7) :: ext     !month-year extension, e.g., 01-0005    character(len=256) :: filenam !full file name, atmdir + ext    character(len=256) :: locfn   !full file name in case atmdir is in MSS    logical :: lexist             !true => file exists, used when looking for a file    integer :: dimid              !netCDF dimension id    integer :: varid              !netCDF variable id    integer :: ier                !error status! ----------------------------------------------------------------------    if (masterproc) then! Build [month]-[year] extension for file name to be read! append extension to path name to get full file name       call get_curr_date(kyr, kmo, kda, mcsec)       write (ext,'(i4.4,"-",i2.2)') kyr,kmo       filenam = trim(offline_atmdir) // '/' // ext // '.nc'        call getfil(filenam, locfn, 1)       inquire (file = locfn, exist = lexist)       if (.not. lexist) then          write(6,*) 'ATM_GETGRID error: could not find initial atm datafile'           call endrun       endif       ! Open netCDF data file and get lengths of lat,lon,time dimensions       call wrap_open (locfn, nf_nowrite, ncid)              call wrap_inq_dimid  (ncid, 'lon', dimid)       call wrap_inq_dimlen (ncid, dimid, atmlon)              call wrap_inq_dimid  (ncid, 'lat', dimid)       call wrap_inq_dimlen (ncid, dimid, atmlat)              call wrap_inq_dimid  (ncid, 'time', dimid)       call wrap_inq_dimlen (ncid, dimid, ntim)       if (ntim == 0) then          write (6,*) 'ATM_GETGRID error: zero input time slices'          call endrun       end if           endif  !end of if-masterproc block#if (defined SPMD)     call mpi_bcast (atmlon, 1, mpiint, 0, mpicom, ier)    call mpi_bcast (atmlat, 1, mpiint, 0, mpicom, ier)#endif! Allocate space for dynamic variables    if (.not. allocated_data) then       if (masterproc) write(6,*)' ATM_GETRID: allocating dynamic space'       allocate (numlon_a (atmlat))             allocate (latixy_a (atmlon,atmlat))           allocate (longxy_a (atmlon,atmlat))           allocate (forc_txy_a (atmlon,atmlat))          allocate (forc_uxy_a (atmlon,atmlat))          allocate (forc_vxy_a (atmlon,atmlat))          allocate (forc_qxy_a (atmlon,atmlat))          allocate (zgcmxy_a (atmlon,atmlat))          allocate (prcxy_a  (atmlon,atmlat))          allocate (prlxy_a  (atmlon,atmlat))          allocate (flwdsxy_a(atmlon,atmlat))          allocate (forc_solsxy_a (atmlon,atmlat))          allocate (forc_sollxy_a (atmlon,atmlat))          allocate (forc_solsdxy_a(atmlon,atmlat))          allocate (forc_solldxy_a(atmlon,atmlat))          allocate (forc_pbotxy_a (atmlon,atmlat))          allocate (forc_psrfxy_a (atmlon,atmlat))          allocate (x        (atmlon,atmlat,14))       allocated_data = .true.    endif! Extract atmospheric data grid information and close file    if (masterproc) then              call wrap_inq_varid(ncid, 'EDGEN', varid)       call wrap_get_var_realx(ncid, varid, edge_a(1))              call wrap_inq_varid(ncid, 'EDGEE', varid)       call wrap_get_var_realx(ncid, varid, edge_a(2))              call wrap_inq_varid(ncid, 'EDGES', varid)       call wrap_get_var_realx(ncid, varid, edge_a(3))              call wrap_inq_varid(ncid, 'EDGEW', varid)       call wrap_get_var_realx(ncid, varid, edge_a(4))              call wrap_inq_varid(ncid, 'LONGXY', varid)       call wrap_get_var_realx(ncid, varid, longxy_a)              call wrap_inq_varid(ncid,'LATIXY', varid)       call wrap_get_var_realx(ncid, varid, latixy_a)              call wrap_close (ncid)       write (6,*) 'ATM_GETGRID: closing data for ',trim(locfn)           endif !end of if-masterproc block#if (defined SPMD)     call mpi_bcast (edge_a  , size(edge_a)  , mpir8 , 0, mpicom, ier)    call mpi_bcast (longxy_a, size(longxy_a), mpir8 , 0, mpicom, ier)    call mpi_bcast (latixy_a, size(latixy_a), mpir8 , 0, mpicom, ier)#endif    return  end subroutine atm_getgrid!=======================================================================  subroutine atm_openfile (kda, kmo, kyr, locfn, itim, atmmin)!----------------------------------------------------------------------- ! ! Purpose: ! open atmospheric forcing netCDF file!! Method: ! ! Author: Mariana Vertenstein! !-----------------------------------------------------------------------    use precision    use clm_varctl, only : offline_atmdir    use fileutils , only : getfil #if (defined SPMD)    use mpishorthand, only : mpiint, mpicom#endif    implicit none    include 'netcdf.inc' ! ------------------------ arguments ---------------------------------    integer, intent(in)  :: kda             !day (1 -> 31)    integer, intent(in)  :: kmo             !month (1 -> 12)    integer, intent(in)  :: kyr             !year (0 -> ...)    character(len=*), intent(inout) :: locfn  !history file to open and read    integer, intent(out) :: itim            !time index used in atm_readdata    integer, intent(out) :: atmmin          !temporal resolution of atm data (in minutes)! -----------------------------------------------------------------! ------------------------ local variables ---------------------------    integer :: i,j,k,n                !do loop indices    integer :: dimid                  !netCDF dimension id    integer :: status                 !netCDF error status    integer :: cyc                    !current cycle    integer :: nyr                    !year extension to data file name, e.g., 05    integer :: pyr = 0                !complete years of data since basedate    integer :: nmo = 0                !number of months past basedate    integer :: mmo = -1               !number of months past end of data     integer :: ier                    !error status    character(len=256) :: filenam     !full file name, atmdir + ext    character(len=256) :: locfnlast   !full file name saved from last call    character(len=  7) :: ext         !month-year extension, e.g., 01-0005    logical :: lexist                 !true => file exists, used when looking for a file    integer :: ndaypm(12) =      &    !number of days per month    	     (/ 31,28,31,30,31,30,31,31,30,31,30,31 /)                  integer :: minpday = 1440         !minutes per day! -----------------------------------------------------------------    if (masterproc) then! Build [month]-[year] extension for file name to be read! append extension to path name to get full file name! first save old locfn, then obtain the file if it exists, and! finally check if file to be opened exists (e.g. if are at the! end of the set of files to be cycled, then the next file will! not exists and will have to go back to beginning of data set       write (ext,'(i4.4,"-",i2.2)') kyr,kmo       filenam = trim(offline_atmdir) //'/'// ext // '.nc'        locfnlast = locfn       call getfil(filenam, locfn, 1)       inquire (file = locfn, exist = lexist)! If file exists...!   makes sure that if run was restarted within the same month!   that the original 'initial' run was started, then nmo will !   not count that month twice! If file doesn't exist...!   go to to beginning of data set (by repeating the process of !   creating extension, appending to path name and looking for !   the file       if (lexist) then          if (locfn /= locfnlast) nmo = nmo + 1 !months past base date          pyr = nmo / 12      !years past base date        elseif (nmo == 0) then          write(6,*) 'ATM_OPENFILE error: could not find initial atm datafile'           call endrun       else          mmo = mmo + 1       !(months-1) past end of data          cyc = mmo / (pyr*12) !cycles since end of data          nyr = kyr - pyr * (cyc + 1) !rewind to beginning of dataset          write (ext,'(i4.4,"-",i2.2)') kyr,kmo          filenam = trim(offline_atmdir) //'/'// ext // '.nc'           call getfil(filenam, locfn, 1)          inquire (file = locfn, exist = lexist)          if (.not. lexist) then             if (nmo < 12) then                write(6,*) 'ATM_OPENFILE error: You must supply at least a'                write(6,*) 'year of input data if you wish to'                write(6,*) 'cycle through it more than once'             else                write(6,*) 'ATM_OPENFILE error: Not finding ',locfn             end if             call endrun          end if       end if! Open netCDF data file and get lengths of lat,lon,time dimensions! Do this only at the first timestep of the run or of the month       call wrap_open (locfn, nf_nowrite, ncid)       call wrap_inq_dimid  (ncid, 'lon', dimid)       call wrap_inq_dimlen (ncid, dimid, nlon)       call wrap_inq_dimid  (ncid, 'lat', dimid)       call wrap_inq_dimlen (ncid, dimid, nlat)       call wrap_inq_dimid  (ncid, 'time', dimid)       call wrap_inq_dimlen (ncid, dimid, ntim)       if (ntim == 0) then          write (6,*) 'ATM_OPENFILE error: zero input time slices'          call endrun       end if       if (nlon /= atmlon) then          write (6,*) 'ATM_OPENFILE error: nlon = ',nlon, &               ' in data file not equal to atmlon = ',atmlon,' first read in'          call endrun       end if       if (nlat /= atmlat) then          write (6,*) 'ATM_READDATA error: nlat = ',nlat, &               ' in data file not equal to atmlat = ',atmlat,' first read in'          call endrun

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美国三级日本三级久久99| 亚洲另类在线制服丝袜| 亚洲国产精品t66y| 亚洲黄网站在线观看| 天堂成人国产精品一区| 国产在线播精品第三| 97精品电影院| 日韩一级黄色大片| 中文字幕 久热精品 视频在线| 一区二区三区在线不卡| 蜜桃精品视频在线| 波多野结衣欧美| 欧美三区在线视频| 国产亚洲欧美日韩日本| 亚洲图片欧美色图| 国产福利一区二区三区在线视频| 色综合欧美在线视频区| 日韩三级伦理片妻子的秘密按摩| 国产喂奶挤奶一区二区三区| 亚洲bt欧美bt精品| 成人免费毛片片v| 91精品国产综合久久精品麻豆| 国产日本欧洲亚洲| 日韩高清欧美激情| 99久久国产免费看| 日韩精品自拍偷拍| 亚洲综合视频在线| 成人性视频免费网站| 正在播放一区二区| 一区二区三区欧美在线观看| 国产美女一区二区三区| 欧美电影在线免费观看| 日韩一区日韩二区| 国产麻豆精品95视频| 欧美老肥妇做.爰bbww| 亚洲欧洲一区二区在线播放| 精品一区二区三区不卡 | 久久久亚洲高清| 亚洲成精国产精品女| 99亚偷拍自图区亚洲| 久久综合五月天婷婷伊人| 视频一区视频二区在线观看| 91在线国内视频| 久久精品在这里| 美女视频第一区二区三区免费观看网站| 91免费视频观看| 国产日韩v精品一区二区| 麻豆一区二区99久久久久| 欧美日韩三级一区二区| 亚洲欧美日韩国产手机在线 | 中文一区二区完整视频在线观看| 蜜桃久久久久久| 欧美日韩极品在线观看一区| 亚洲欧美日韩中文播放| av亚洲产国偷v产偷v自拍| 久久久久久久久久久久久久久99| 另类小说欧美激情| 欧美一区三区四区| 日韩精品亚洲专区| 欧美日韩在线三区| 亚洲第一久久影院| 欧美午夜寂寞影院| 亚洲国产精品自拍| 91福利精品第一导航| 亚洲免费观看高清| 在线免费观看日本一区| 樱桃视频在线观看一区| 91丝袜高跟美女视频| 18成人在线观看| 97久久超碰国产精品电影| 欧美国产激情二区三区| 成人黄色片在线观看| 中文字幕 久热精品 视频在线| 国产成人日日夜夜| 国产精品国产三级国产| 99久免费精品视频在线观看| 亚洲欧洲av一区二区三区久久| 不卡一卡二卡三乱码免费网站 | 色婷婷久久99综合精品jk白丝| 综合久久久久久久| 91福利区一区二区三区| 亚洲v日本v欧美v久久精品| 欧美日韩dvd在线观看| 亚洲午夜在线电影| 欧美一区二区三区在| 久久99精品久久久| 欧美极品aⅴ影院| 色综合婷婷久久| 天天影视网天天综合色在线播放| 91精品福利在线一区二区三区 | 久久嫩草精品久久久精品一| 高清视频一区二区| 亚洲免费观看高清在线观看| 精品视频在线视频| 日韩成人伦理电影在线观看| 精品国产伦理网| 国产成人精品一区二区三区四区 | 成人午夜激情影院| 亚洲视频一二三| 欧美剧情片在线观看| 久久99久久99精品免视看婷婷 | 不卡的av在线| 洋洋成人永久网站入口| 91精品久久久久久久久99蜜臂| 狠狠狠色丁香婷婷综合久久五月| 亚洲国产经典视频| 在线观看一区日韩| 奇米777欧美一区二区| 国产欧美日韩在线| 欧美系列日韩一区| 激情六月婷婷久久| 亚洲免费观看高清完整| 日韩视频免费观看高清完整版| 国产成人精品亚洲777人妖| 一区二区三区日韩精品视频| 精品国产污污免费网站入口| 不卡的av中国片| 青青草视频一区| 国产精品电影一区二区三区| 欧美一区欧美二区| 99精品热视频| 精久久久久久久久久久| 亚洲色图视频网| 精品国产伦一区二区三区免费| 91麻豆免费看| 国产综合久久久久影院| 一区二区三区中文字幕电影| 久久―日本道色综合久久| 91福利视频在线| 国产夫妻精品视频| 日本不卡免费在线视频| 国产精品久久福利| 日韩一区二区三区精品视频| 99久久国产综合色|国产精品| 老司机一区二区| 亚洲综合偷拍欧美一区色| 国产亚洲一区二区在线观看| 欧美日韩免费一区二区三区视频| 成人免费毛片高清视频| 精品影院一区二区久久久| 亚洲卡通欧美制服中文| 国产喷白浆一区二区三区| 欧美精品在线观看播放| 一本色道综合亚洲| 国产成人三级在线观看| 男男视频亚洲欧美| 亚洲一级不卡视频| 一区在线观看免费| 久久久久国产精品人| 日韩一级视频免费观看在线| 91久久精品网| 99麻豆久久久国产精品免费 | 国产精品你懂的在线欣赏| 日韩欧美aaaaaa| 91精品国产色综合久久不卡蜜臀 | 日本亚洲视频在线| 亚洲一卡二卡三卡四卡五卡| 日韩码欧中文字| 国产日韩欧美制服另类| 日韩免费高清电影| 51精品秘密在线观看| 在线欧美一区二区| 色综合一个色综合亚洲| av色综合久久天堂av综合| 国产69精品久久久久毛片 | 国产精品网站在线播放| 久久亚洲影视婷婷| 精品国产乱码久久久久久老虎| 91精品久久久久久久久99蜜臂| 欧美日韩久久久一区| 欧美亚日韩国产aⅴ精品中极品| 99久久精品99国产精品| av电影天堂一区二区在线| 成人在线视频一区| 不卡的av中国片| 99视频一区二区| 91在线视频播放地址| 99在线精品观看| 色综合视频一区二区三区高清| www.欧美色图| 一本久道久久综合中文字幕| 91亚洲精品乱码久久久久久蜜桃| 成人中文字幕电影| 99视频超级精品| 日本乱人伦一区| 欧美日韩视频专区在线播放| 欧美另类z0zxhd电影| 欧美一区二区在线看| 日韩亚洲国产中文字幕欧美| 日韩精品一区二区三区在线观看| 精品国产1区二区| 国产色产综合色产在线视频| 欧美高清在线一区二区| 国产精品免费人成网站| 亚洲视频一区二区在线观看| 一区二区三区精品| 爽爽淫人综合网网站| 日本成人在线网站| 激情文学综合插| 成人黄色国产精品网站大全在线免费观看|