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

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

?? mkgridmod.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
?? 第 1 頁 / 共 2 頁
字號:
#include <misc.h>#include <preproc.h>module mkgridMod!----------------------------------------------------------------------- ! ! Purpose: ! Routines to create land model grid! ! Method: !! Author: Mariana Vertenstein! !-----------------------------------------------------------------------! $Id: mkgridMod.F90,v 1.9.2.2 2002/04/27 15:38:53 erik Exp $!-----------------------------------------------------------------------  use precision  use clm_varpar          !parameters   use clm_varsur          !surface variables   use clm_varctl          !run control variables  use fileutils, only : getfil  use areaMod             !area averaging routines  use spmdMod, only: masterproc  implicit none!=======================================================================contains!=======================================================================#if (defined OFFLINE)   subroutine mkgrid_offline!----------------------------------------------------------------------- ! ! Purpose: ! Obtain land model grid! ! Method: ! If namelist variable mksrf_offline_fgrid is the empty string, then! the corresponding file will be used to determine the land model grid! If namelist variable mksrf_offline is not the empty string, then ! the land model grid will be generated at run time !! Author: Mariana Vertenstein! !-----------------------------------------------------------------------    if (mksrf_offline_fgrid /= ' ') then       call read_grid_offline       offline_rdgrid = .true.    else       call create_grid_offline       offline_rdgrid = .false.    endif  end subroutine mkgrid_offline!=======================================================================  subroutine read_grid_offline!----------------------------------------------------------------------- ! ! Purpose: ! Read land model grid when mode is offline.! ! Method: ! If namelist variable mksrf_offline_fgrid is the empty string, then! the corresponding file will be used to determine the land model grid! Assume that the input data file has the land grid in the following ! form:!    lon                    => dimension!    lat                    => dimension!    lon(lsmlon)            => full grid longitudes!    nlon(lsmlat)           => reduced grid number of lats per lon!    rlon(lsmlon,lsmlat)    => reduced grid longitudes!    lat(lsmlat)            => grid latitudes!    oro(lsmlon,lsmlat)     => 2d land mask!    landfrac(lsmlon,lsmlat)=> 2d land fraction!! Author: Mariana Vertenstein! !-----------------------------------------------------------------------    include 'netcdf.inc'! ------------------------ local variables ------------------------    integer  :: i,j,k,n                 !indices    integer  :: nlon_i                  !number of input data longitudes    integer  :: nlat_i                  !number of input data latitudes    integer  :: ncid                    !netCDF file id     integer  :: dimid                   !netCDF dimension id    integer  :: varid                   !netCDF variable id    integer  :: ret                     !netCDF return code    real(r8) :: lon(lsmlon)             !input longitude array (full grid)    real(r8) :: lat(lsmlat)             !input latitude array (full grid)    real(r8) :: oro(lsmlon,lsmlat)      !input oro field     character(len=256) :: locfn         !local file name    logical  :: lndfrac                 !true if landfrac exists in file !-----------------------------------------------------------------------    write (6,*) 'Attempting to read land grid data .....'    write (6,'(72a1)') ("-",i=1,60)        call getfil (mksrf_offline_fgrid, locfn, 0)    call wrap_open(locfn, 0, ncid)        call wrap_inq_dimid  (ncid, 'lon', dimid)    call wrap_inq_dimlen (ncid, dimid, nlon_i)    if (nlon_i /= lsmlon) then       write(6,*)'RDGRID_OFFLINE: parameter lsmlon= ',lsmlon, &            'does not equal input nlon_i= ',nlon_i       call endrun    endif        call wrap_inq_dimid  (ncid, 'lat', dimid)    call wrap_inq_dimlen (ncid, dimid, nlat_i)    if (nlat_i /= lsmlat) then       write(6,*)'RDGRID_OFFLINE: parameter lsmlat= ',lsmlat, &            'does not equal input nlat_i= ',nlat_i       call endrun    endif    ! Determine grid longitudes for either full or reduced grid! if variable 'rlon' is not on grid file then have full grid! if variable 'rlon' is on grid file then have reduced grid    ret = nf_inq_varid (ncid, 'rlon', dimid)    if (ret == NF_NOERR) then       fullgrid = .false.    else       fullgrid = .true.    endif    if (fullgrid) then       numlon(:) = lsmlon       call wrap_inq_varid (ncid, 'lon' , varid)       call wrap_get_var_realx (ncid, varid, lon)       do j = 1,lsmlat          do i = 1,lsmlon             longxy(i,j) = lon(i)          end do       end do    else       call wrap_inq_varid (ncid, 'nlon' , varid)       call wrap_get_var_int (ncid, varid, numlon)       call wrap_inq_varid (ncid, 'rlon' , varid)       call wrap_get_var_realx (ncid, varid, longxy)    endif! Determine grid latitudes    call wrap_inq_varid (ncid, 'lat' , varid)    call wrap_get_var_realx (ncid, varid, lat)    do j = 1,lsmlat       do i =1,lsmlon          latixy(i,j) = lat(j)       end do    end do! Define land grid edges and grid cell areas    call celledge (lsmlat, lsmlon, numlon, longxy, latixy, &                   lats  , lonw  )    call cellarea (lsmlat, lsmlon, numlon, lats, lonw, &                   area   )! Determine land mask and land fraction    call wrap_inq_varid (ncid, 'ORO' , varid)    call wrap_get_var_realx (ncid, varid, oro)! Get land fraction if it exists, otherwise set according to land mask    ret = nf_inq_varid (ncid, 'LANDFRAC', dimid)    if (ret == NF_NOERR) then       lndfrac = .true.    else       lndfrac = .false.    endif    if (lndfrac) then      call wrap_inq_varid (ncid, 'LANDFRAC' , varid)      call wrap_get_var_realx (ncid, varid, landfrac)      do j = 1,lsmlat         do i = 1,numlon(j)            if (nint(oro(i,j)) == 1) then               landmask(i,j) = 1            else               landmask(i,j) = 0            endif         end do      end do    else      do j = 1,lsmlat         do i = 1,numlon(j)            if (nint(oro(i,j)) == 1) then               landmask(i,j) = 1               landfrac(i,j) = 1.0            else               landmask(i,j) = 0               landfrac(i,j) = 0.            endif         end do      end do    endif    write (6,'(72a1)') ("-",i=1,60)    write (6,*) 'Successfully read land grid data'    write (6,*)  end subroutine read_grid_offline!=======================================================================  subroutine create_grid_offline!----------------------------------------------------------------------- ! ! Purpose: ! Generate land model grid when mode is offline.! ! Method: ! Surface grid edges -- Grids do not have to be global. To allow this, grids ! must define the north, east, south, and west edges:!! If namelist variable mksrf_offline is not the empty string, then the land model! grid will be generated at run time using the settings of the! namelist variables!    o mksrf_offline_fnavyoro : 20 min navy orography dataset!    o mksrf_offline_edgen (edge(1)) : northern edge of grid (degrees): >  -90 and <= 90!    o mksrf_offline_edgee (edge(2)) : eastern edge of grid (degrees) : see following notes!    o mksrf_offline_edges (edge(3)) : southern edge of grid (degrees): >= -90 and <  90!    o mksrf_offline_edgew (edge(4)) : western edge of grid (degrees) : see following notes!! For partial grids, northern and southern edges are any latitude! between 90 (North Pole) and -90 (South Pole). Western and eastern! edges are any longitude between -180 and 180, with longitudes! west of Greenwich negative. That is, western edge >= -180 and < 180;! eastern edge > western edge and <= 180.! ! For global grids, northern and southern edges are 90 (North Pole)! and -90 (South Pole). The western edge of the longitude grid starts ! at the dateline if the grid is generated (the longitudes for each grid ! cell correspond with the edges (i.e., range from -180 to 180)). ! ! Author: Mariana Vertenstein! !-----------------------------------------------------------------------! ------------------------ local variables ------------------------    character(len=256) :: locfn                !local file name    integer  :: i,j,k,n                        !indices    integer  :: ii,ji,io,jo                    !indices    integer  :: ncid                           !netCDF file id     integer  :: dimid                          !netCDF dimension id    integer  :: varid                          !netCDF variable id    integer  :: ier                            !error status       integer  :: nlon_i                         !input number of longitudes    integer  :: nlat_i                         !input number of latitudes    real(r8) :: dx                             !land model cell width    real(r8) :: dy                             !land model cell length    real(r8) :: edge_i(4)                      !input grid: N,E,S,W edges (degrees)    real(r8), allocatable :: latixy_i(:,:)     !input grid: latitude (degrees)    real(r8), allocatable :: longxy_i(:,:)     !input grid: longitude (degrees)    integer , allocatable :: numlon_i(:)       !input grid: number longitude points by lat    real(r8), allocatable :: lon_i(:,:)        !input grid: longitude, west edge (degrees)    real(r8), allocatable :: lon_i_offset(:,:) !input grid: longitude, west edge (degrees)    real(r8), allocatable :: lat_i(:)          !input grid: latitude, south edge (degrees)    real(r8), allocatable :: area_i(:,:)       !input grid: cell area    real(r8), allocatable :: mask_i(:,:)       !input grid: mask (0, 1)    real(r8), allocatable :: fland_i(:,:)      !input grid: fractional land    real(r8) :: mask_o                         !output grid: mask (0, 1)    integer  :: novr_i2o                       !number of overlapping input cells    integer  :: iovr_i2o(maxovr)               !lon index of overlap input cell    integer  :: jovr_i2o(maxovr)               !lat index of overlap input cell    real(r8) :: wovr_i2o(maxovr)               !weight    of overlap input cell    real(r8) :: offset                         !used to shift x-grid 360 degrees        real(r8) :: fld_o(lsmlon,lsmlat)           !output grid: dummy field     real(r8) :: fld_i                          !input grid: dummy field     real(r8) :: sum_fldo                       !global sum of dummy output field    real(r8) :: sum_fldi                       !global sum of dummy input field    real(r8) :: relerr = 0.00001               !max error: sum overlap weights ne 1        real(r8) :: flandmin = 0.50                !minimum land fraction for grid cell to be called land  ! -----------------------------------------------------------------! Set numlon to uniform grid (offline ASSUMES that never have a reduced grid)    numlon(:) = lsmlon! Determine model grid edges    lsmedge(1) = mksrf_offline_edgen    lsmedge(2) = mksrf_offline_edgee    lsmedge(3) = mksrf_offline_edges    lsmedge(4) = mksrf_offline_edgew! Determine grid longitudes and latitudes in increments of dx and dy! Global latitude grid goes from south pole to north pole! Global longitude grid starts at Dateline with western edge on Dateline    dx = (mksrf_offline_edgee - mksrf_offline_edgew) / lsmlon

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本中文在线一区| 欧美成人aa大片| 亚洲精品高清视频在线观看| 日韩欧美在线观看一区二区三区| 成人av在线资源网| 久久久久久久性| 日产欧产美韩系列久久99| 国产又黄又大久久| 久久精品国产99国产| 亚洲三级电影网站| 久久综合九色综合97婷婷| 欧美一区二区在线不卡| 在线不卡a资源高清| 欧美一区二区三区在线电影| 国产精品中文欧美| 亚洲r级在线视频| 亚洲精品一区二区三区99| 99久久综合国产精品| 国产精品丝袜在线| 欧美一级二级三级蜜桃| 欧美日本一道本在线视频| 激情国产一区二区| 日韩国产在线观看一区| 久久69国产一区二区蜜臀| 国产精品主播直播| 东方欧美亚洲色图在线| 91网上在线视频| 91在线视频官网| 91亚洲精品乱码久久久久久蜜桃| 成人av在线影院| 在线观看国产一区二区| 国产成人av一区| 国产欧美一区二区在线观看| 国产精品亚洲专一区二区三区| 美女视频黄久久| 久久国产三级精品| 亚洲国产综合在线| 亚洲欧洲精品一区二区三区不卡| 日韩片之四级片| 国产亚洲精品aa午夜观看| 在线观看一区不卡| av一区二区三区| 91丨九色丨蝌蚪富婆spa| 成人激情午夜影院| 国产成人精品影院| 91色porny蝌蚪| 日韩欧美视频在线| 国产精品网友自拍| 一区二区三区免费| 青青草91视频| 精品中文字幕一区二区小辣椒| 久久99国产精品麻豆| 色综合天天综合网天天看片| 国产99久久久精品| 国产一区二区三区av电影| 91玉足脚交白嫩脚丫在线播放| 欧美日韩成人一区| 中文字幕欧美日本乱码一线二线| 亚洲一区二区三区三| 精品日产卡一卡二卡麻豆| 亚洲卡通欧美制服中文| 午夜影视日本亚洲欧洲精品| 国产在线精品一区二区三区不卡 | 日本91福利区| 国产一区二区三区免费| 欧美日韩久久一区| 国产精品沙发午睡系列990531| 亚洲同性gay激情无套| 欧洲亚洲精品在线| 成人h精品动漫一区二区三区| 欧美日韩亚洲另类| 国产精品传媒在线| 裸体健美xxxx欧美裸体表演| 91福利区一区二区三区| 欧美激情资源网| 麻豆专区一区二区三区四区五区| 色综合久久久久综合| 亚洲国产精品精华液2区45| 久久99精品网久久| 欧美欧美欧美欧美| 亚洲欧美经典视频| 成人免费看视频| 久久久久亚洲综合| 精彩视频一区二区三区| 欧美喷水一区二区| 亚洲一区二区三区四区在线观看| 成人免费视频一区| 国产亚洲成aⅴ人片在线观看| 蜜臀国产一区二区三区在线播放 | av电影天堂一区二区在线| 久久久蜜桃精品| 久草在线在线精品观看| 欧美一区二区视频网站| 性欧美疯狂xxxxbbbb| 欧美怡红院视频| 亚洲精品视频免费观看| 99九九99九九九视频精品| 亚洲国产精品av| 成人性生交大片免费看视频在线| 久久久青草青青国产亚洲免观| 精品在线一区二区三区| www精品美女久久久tv| 九九精品一区二区| 久久久久久电影| 国产一区不卡精品| 欧美激情在线观看视频免费| 国产mv日韩mv欧美| 欧美日韩免费在线视频| 全国精品久久少妇| 亚洲三级免费观看| www国产成人| 五月综合激情日本mⅴ| 亚洲二区在线观看| 亚洲v中文字幕| 337p粉嫩大胆噜噜噜噜噜91av| 欧美在线免费观看视频| 成人一区在线观看| 亚洲综合色噜噜狠狠| 欧美日韩在线不卡| 国产一级精品在线| 日日摸夜夜添夜夜添国产精品| 久久男人中文字幕资源站| 91免费看视频| 欧美日韩中文另类| 久久成人精品无人区| 免费在线成人网| 欧美一区二区三区公司| 亚洲一区电影777| 中文字幕精品综合| 88在线观看91蜜桃国自产| 成人午夜在线播放| 国产精品一区二区在线观看不卡 | 日韩成人av影视| 日韩一区二区在线免费观看| 91热门视频在线观看| 奇米四色…亚洲| 国产精品视频一二三| 精品日韩成人av| 欧美日韩不卡在线| 91麻豆swag| www.久久久久久久久| 亚洲成人在线免费| 亚洲黄色性网站| 最近中文字幕一区二区三区| 欧美一区二区三区男人的天堂| 欧美日韩一区国产| 欧美日韩亚洲另类| 菠萝蜜视频在线观看一区| 综合久久一区二区三区| 欧美日韩精品一区二区三区四区| 五月天亚洲精品| 日韩三级中文字幕| 91视频你懂的| 蜜臀av性久久久久蜜臀aⅴ| 亚洲欧洲成人精品av97| 欧美一区二区免费视频| 99r国产精品| 美日韩一区二区三区| 日韩美女视频19| 久久众筹精品私拍模特| 欧美又粗又大又爽| 国产精品综合在线视频| 1区2区3区国产精品| 欧美精品xxxxbbbb| 97久久精品人人澡人人爽| 极品少妇xxxx精品少妇| 一个色综合网站| 欧美激情中文字幕| 日韩一区二区在线观看视频播放| 91免费国产在线观看| 日韩精品一级二级| 亚洲人亚洲人成电影网站色| 精品国产制服丝袜高跟| 欧美群妇大交群的观看方式| av不卡在线播放| 国产老肥熟一区二区三区| 亚洲成人自拍偷拍| 中文字幕在线观看一区二区| 精品三级在线看| 在线播放日韩导航| 色婷婷久久久久swag精品| 国产成人精品亚洲午夜麻豆| 一区二区三区四区亚洲| 久久午夜老司机| 日韩一区二区精品葵司在线| 色悠久久久久综合欧美99| 成人免费看的视频| 国产成人av一区二区| 国内一区二区在线| 亚洲精品一区二区三区精华液| 午夜久久电影网| 在线观看网站黄不卡| 国产精品免费视频网站| www.亚洲人| 日韩一区二区免费电影| 亚洲国产综合91精品麻豆| 色综合视频一区二区三区高清| 日韩女同互慰一区二区| 亚洲第一搞黄网站| 91麻豆swag|