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

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

?? convert_pft.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
字號:
program convert_pft  implicit none  include 'netcdf.inc'!-----------------------------------------------------------------! make surface type netcdf file!-----------------------------------------------------------------  integer, parameter :: r8 = selected_real_kind(12)  integer, parameter :: nlon = 720        !input grid : longitude points  integer, parameter :: nlat = 360        !input grid : latitude  points  integer, parameter :: numpft = 16       !number of plant types  real(r8) :: lon(nlon)                   !longitude dimension array (1d)  real(r8) :: lat(nlat)                   !latitude dimension array (1d)   real(r8) :: longxy(nlon,nlat)           !longitude dimension array (2d)          real(r8) :: latixy(nlon,nlat)           !longitude dimension array (2d)  real(r8) :: edge(4)                     !N,E,S,W edges of grid  real(r8) :: dx,dy                       !grid increments  real(r8) :: landmask(nlon,nlat)         !fraction of land  real(r8) :: pct_pft(nlon,nlat,0:numpft) !percent pft  integer :: dimlon_id                    !netCDF dimension id  integer :: dimlat_id                    !netCDF dimension id  integer :: dimpft_id                    !netCDF dimension id  integer :: lon_id                       !1d longitude array id  integer :: lat_id                       !1d latitude array id  integer :: longxy_id                    !2d longitude array id  integer :: latixy_id                    !2d latitude array id  integer :: edgen_id                     !northern edge of grid (edge(1)) id  integer :: edgee_id                     !eastern  edge of grid (edge(2)) id  integer :: edges_id                     !southern edge of grid (edge(3)) id  integer :: edgew_id                     !western  edge of grid (edge(4)) id  integer :: landmask_id                  !landmask id  integer :: pct_pft_id                   !pct_pft id  integer :: i,j,m                        !indices  integer :: ndata = 1                    !input unit  integer :: ncid                         !netCDF file id  integer :: dim1_id(1)                   !netCDF dimension id for 1-d variables  integer :: dim2_id(2)                   !netCDF dimension id for 2-d variables  integer :: dim3_id(3)                   !netCDF dimension id for 3-d variables  integer :: status                       !status  character(len=80) :: filei, fileo       !input,output filenames  character(len=80) :: name,unit          !netCDF attributes!-----------------------------------------------------------------! Determine input and output file names  filei = '/ptmp/slevis/lsmv2_2/input/0.5x0.5/pft-igbp.5x.5'  fileo = '/ptmp/slevis/lsmv2_2/input/0.5x0.5/mksrf_pft.nc'! -----------------------------------------------------------------! Determine grid for input data !! Data are 0.5 x 0.5 degree, stored in latitude bands,! from south to north. In a given latitude band, data begin! at the dateline and proceed eastward. So first data! point (x(1,1)) is a box centered at 89.75S, 179.75W!!   89.5S  ---------------------!          |         |         |!          |    x    |    x    |!          |  (1,1)  |  (2,1)  |!          |         |         |!   90.0S  ---------------------!        180.W     179.5W    179.0W! -----------------------------------------------------------------! Define North, East, South, West edges of grid  edge(1) =   90.  edge(2) =  180.  edge(3) =  -90.  edge(4) = -180.! Make latitudes and longitudes at center of grid cell  dx = (edge(2)-edge(4)) / nlon  dy = (edge(1)-edge(3)) / nlat  do j = 1, nlat     do i = 1, nlon        latixy(i,j) = (edge(3)+dy/2.) + (j-1)*dy        longxy(i,j) = (edge(4)+dx/2.) + (i-1)*dx       end do  end do  lat(:) = latixy(1,:)  lon(:) = longxy(:,1)! -----------------------------------------------------------------! Create netcdf file! -----------------------------------------------------------------! Define global attributes  call wrap_create (fileo, nf_clobber, ncid)  call wrap_put_att_text (ncid, nf_global, 'data_type', 'pft_data')! Define dimensions  call wrap_def_dim (ncid, 'lon', nlon    , dimlon_id)  call wrap_def_dim (ncid, 'lat', nlat    , dimlat_id)  call wrap_def_dim (ncid, 'pft', numpft+1, dimpft_id)! Define grid variables  name = 'lon'  unit = 'degrees east'  dim1_id(1) = dimlon_id  call wrap_def_var (ncid,'LON', nf_float, 1, dim1_id, lon_id)  call wrap_put_att_text (ncid, lon_id, 'long_name', name)  call wrap_put_att_text (ncid, lon_id, 'units'    , unit)  name = 'lat'  unit = 'degrees north'  dim1_id(1) = dimlat_id  call wrap_def_var (ncid,'LAT', nf_float, 1, dim1_id, lat_id)  call wrap_put_att_text (ncid, lat_id, 'long_name', name)  call wrap_put_att_text (ncid, lat_id, 'units'    , unit)  name = 'longitude-2d'  unit = 'degrees east'  dim2_id(1) = dimlon_id  dim2_id(2) = dimlat_id  call wrap_def_var (ncid, 'LONGXY', nf_float, 2, dim2_id, longxy_id)  call wrap_put_att_text (ncid, longxy_id, 'long_name', name)  call wrap_put_att_text (ncid, longxy_id, 'units'    , unit)  name = 'latitude-2d'  unit = 'degrees north'  dim2_id(1) = dimlon_id  dim2_id(2) = dimlat_id  call wrap_def_var (ncid, 'LATIXY', nf_float, 2, dim2_id, latixy_id)  call wrap_put_att_text (ncid, latixy_id, 'long_name', name)  call wrap_put_att_text (ncid, latixy_id, 'units'    , unit)  name = 'northern edge of surface grid'  unit = 'degrees north'  call wrap_def_var (ncid, 'EDGEN', nf_float, 0, 0, edgen_id)  call wrap_put_att_text (ncid, edgen_id, 'long_name', name)  call wrap_put_att_text (ncid, edgen_id, 'units'    , unit)  name = 'eastern edge of surface grid'  unit = 'degrees east'  call wrap_def_var (ncid, 'EDGEE', nf_float, 0, 0, edgee_id)  call wrap_put_att_text (ncid, edgee_id, 'long_name', name)  call wrap_put_att_text (ncid, edgee_id, 'units'    , unit)  name = 'southern edge of surface grid'  unit = 'degrees north'  call wrap_def_var (ncid, 'EDGES', nf_float, 0, 0, edges_id)  call wrap_put_att_text (ncid, edges_id, 'long_name', name)  call wrap_put_att_text (ncid, edges_id, 'units'    , unit)  name = 'western edge of surface grid'  unit = 'degrees east'  call wrap_def_var (ncid, 'EDGEW', nf_float, 0, 0, edgew_id)  call wrap_put_att_text (ncid, edgew_id, 'long_name', name)  call wrap_put_att_text (ncid, edgew_id, 'units'    , unit)! Define pft variables  name = 'land mask'  unit = 'unitless'  dim2_id(1) = dimlon_id  dim2_id(2) = dimlat_id  call wrap_def_var (ncid ,'LANDMASK' ,nf_float, 2, dim2_id, landmask_id)  call wrap_put_att_text (ncid, landmask_id, 'long_name', name)  call wrap_put_att_text (ncid, landmask_id, 'units'    , unit)  name = 'percent pft'  unit = 'unitless'  dim3_id(1) = dimlon_id  dim3_id(2) = dimlat_id  dim3_id(3) = dimpft_id  call wrap_def_var (ncid ,'PCT_PFT' ,nf_float, 3, dim3_id, pct_pft_id)  call wrap_put_att_text (ncid, pct_pft_id, 'long_name', name)  call wrap_put_att_text (ncid, pct_pft_id, 'units'    , unit)! End of definitions  status = nf_enddef(ncid)! Read in formatted surface data  open (unit=ndata,file=trim(filei),status='unknown',&       form='formatted',iostat=status)  if (status .ne. 0) then     write (6,*)'failed to open ',trim(filei),' on unit ',&          ndata,' ierr=',status     stop  end if  do j = 1, nlat     do i = 1, nlon        read (ndata,*) landmask(i,j),(pct_pft(i,j,m),m=0,numpft)        if (landmask(i,j) == 100.) landmask(i,j) = 1.     end do  end do  close(ndata)! Write variables  call wrap_put_var_realx (ncid, lon_id     , lon)  call wrap_put_var_realx (ncid, lat_id     , lat)  call wrap_put_var_realx (ncid, longxy_id  , longxy)  call wrap_put_var_realx (ncid, latixy_id  , latixy)  call wrap_put_var_realx (ncid, edgen_id   , edge(1))  call wrap_put_var_realx (ncid, edgee_id   , edge(2))  call wrap_put_var_realx (ncid, edges_id   , edge(3))  call wrap_put_var_realx (ncid, edgew_id   , edge(4))  call wrap_put_var_realx (ncid, landmask_id, landmask)  call wrap_put_var_realx (ncid, pct_pft_id , pct_pft)  call wrap_close(ncid)end program convert_pft!===============================================================================subroutine wrap_create (path, cmode, ncid)  implicit none  include 'netcdf.inc'  integer, parameter :: r8 = selected_real_kind(12)  character(len=*) path  integer cmode, ncid, ret  ret = nf_create (path, cmode, ncid)  if (ret.ne.NF_NOERR) call handle_error (ret)end subroutine wrap_create!===============================================================================subroutine wrap_def_dim (nfid, dimname, len, dimid)  implicit none  include 'netcdf.inc'  integer, parameter :: r8 = selected_real_kind(12)  integer :: nfid, len, dimid  character(len=*) :: dimname  integer ret  ret = nf_def_dim (nfid, dimname, len, dimid)  if (ret.ne.NF_NOERR) call handle_error (ret)end subroutine wrap_def_dim!===============================================================================subroutine wrap_def_var (nfid, name, xtype, nvdims, vdims, varid)  implicit none  include 'netcdf.inc'  integer, parameter :: r8 = selected_real_kind(12)  integer :: nfid, xtype, nvdims, varid  integer :: vdims(nvdims)  character(len=*) :: name  integer ret  ret = nf_def_var (nfid, name, xtype, nvdims, vdims, varid)  if (ret.ne.NF_NOERR) call handle_error (ret)end subroutine wrap_def_var!===============================================================================subroutine wrap_put_att_text (nfid, varid, attname, atttext)  implicit none  include 'netcdf.inc'  integer, parameter :: r8 = selected_real_kind(12)  integer :: nfid, varid  character(len=*) :: attname, atttext  integer :: ret, siz  siz = len_trim(atttext)  ret = nf_put_att_text (nfid, varid, attname, siz, atttext)  if (ret.ne.NF_NOERR) call handle_error (ret)end subroutine wrap_put_att_text!===============================================================================subroutine wrap_put_var_realx (nfid, varid, arr)  implicit none  include 'netcdf.inc'  integer, parameter :: r8 = selected_real_kind(12)  integer :: nfid, varid  real(r8) :: arr(*)  integer :: ret#ifdef CRAY  ret = nf_put_var_real (nfid, varid, arr)#else  ret = nf_put_var_double (nfid, varid, arr)#endif  if (ret.ne.NF_NOERR) call handle_error (ret)end subroutine wrap_put_var_realx!===============================================================================subroutine wrap_put_var_int (nfid, varid, arr)  implicit none  include 'netcdf.inc'  integer, parameter :: r8 = selected_real_kind(12)  integer :: nfid, varid  integer :: arr(*)  integer :: ret  ret = nf_put_var_int (nfid, varid, arr)  if (ret.ne.NF_NOERR) call handle_error (ret)end subroutine wrap_put_var_int  !===============================================================================subroutine wrap_close (ncid)  implicit none  include 'netcdf.inc'  integer, parameter :: r8 = selected_real_kind(12)  integer :: ncid  integer :: ret  ret = nf_close (ncid)  if (ret.ne.NF_NOERR) then     write(6,*)'WRAP_CLOSE: nf_close failed for id ',ncid     call handle_error (ret)  end ifend subroutine wrap_close!===============================================================================subroutine handle_error(ret)  implicit none  include 'netcdf.inc'  integer :: ret  if (ret .ne. nf_noerr) then     write(6,*) 'NCDERR: ERROR: ',nf_strerror(ret)     call abort  endifend subroutine handle_error!===============================================================================

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲精品一区二区三区在线观看| 久久久激情视频| 精品福利一区二区三区免费视频| 亚洲国产精品传媒在线观看| 日本在线不卡视频| 91香蕉视频污| 欧美激情在线一区二区| 毛片av一区二区三区| 欧美视频自拍偷拍| 亚洲素人一区二区| 成人小视频免费在线观看| 91麻豆精品国产自产在线观看一区 | 亚洲免费av在线| 国产成a人亚洲| 欧美精品一区二区久久久| 视频一区在线播放| 欧美三级在线视频| 亚洲欧美日韩国产另类专区| 成人免费va视频| 国产农村妇女精品| 国产.欧美.日韩| 久久免费精品国产久精品久久久久| 热久久免费视频| 欧美日韩国产123区| 亚洲午夜久久久久久久久久久 | 亚洲欧美激情视频在线观看一区二区三区 | 欧美性色黄大片| 亚洲一区二区视频| 日本福利一区二区| 亚洲综合自拍偷拍| 在线免费观看不卡av| 亚洲精品日日夜夜| 欧美三级电影网站| 亚洲高清免费一级二级三级| 欧美性大战久久久久久久| 亚洲1区2区3区4区| 欧美日韩免费一区二区三区 | 成人亚洲精品久久久久软件| 久久久久久黄色| 成人av午夜电影| 一区二区在线免费观看| 欧美日韩国产首页在线观看| 日韩电影免费在线看| 日韩丝袜情趣美女图片| 国产精品中文欧美| 中文字幕乱码亚洲精品一区| 一本一道波多野结衣一区二区| 亚洲男人的天堂在线aⅴ视频| 欧美艳星brazzers| 日本系列欧美系列| 欧美激情综合在线| 欧美天天综合网| 免费一级片91| 国产精品毛片a∨一区二区三区| 99在线热播精品免费| 亚洲午夜精品在线| 精品日本一线二线三线不卡| 风间由美一区二区三区在线观看| 亚洲蜜臀av乱码久久精品| 欧美丰满少妇xxxbbb| 国产精品亚洲一区二区三区在线| 中文字幕 久热精品 视频在线 | 成人深夜视频在线观看| 亚洲综合免费观看高清完整版在线 | 欧美伊人精品成人久久综合97| 麻豆一区二区99久久久久| 欧美国产精品一区| 欧美欧美午夜aⅴ在线观看| 国产精品一区二区在线播放 | 欧美国产精品中文字幕| 欧美综合亚洲图片综合区| 国产一区二区三区四区在线观看| 中文字幕一区二区在线观看| 欧美精品丝袜久久久中文字幕| 高清成人免费视频| 青青青爽久久午夜综合久久午夜| 国产精品人成在线观看免费| 欧美丝袜自拍制服另类| 成人福利视频在线看| 黄页网站大全一区二区| 亚洲夂夂婷婷色拍ww47| 国产精品妹子av| 日韩免费高清电影| 色婷婷综合久久久中文字幕| 国内久久精品视频| 无码av免费一区二区三区试看| 国产精品电影院| 国产视频一区在线播放| 欧美一区二区三区播放老司机| 99热这里都是精品| 狠狠狠色丁香婷婷综合久久五月| 亚洲v日本v欧美v久久精品| 亚洲欧洲一区二区在线播放| 久久色视频免费观看| 91精品午夜视频| 欧美日韩一卡二卡三卡| 色婷婷综合久久久久中文一区二区| 国产福利一区二区| 另类小说一区二区三区| 爽爽淫人综合网网站| 亚洲成a人片在线观看中文| 一区二区三区高清在线| 日韩国产一区二| 亚洲成人免费在线观看| 亚洲已满18点击进入久久| 国产精品久久久久aaaa| 亚洲国产高清aⅴ视频| 欧美激情中文不卡| 国产精品久久久一本精品| 国产嫩草影院久久久久| 欧美国产一区在线| 国产精品美女久久久久aⅴ| 中文一区一区三区高中清不卡| 国产日韩一级二级三级| 国产欧美精品在线观看| 国产欧美一区二区精品忘忧草| 精品国产sm最大网站免费看| 亚洲精品一区二区三区99| 日韩精品一区二区三区在线播放| 日韩无一区二区| 久久久久88色偷偷免费| 国产午夜精品一区二区三区视频| 精品91自产拍在线观看一区| 国产人成亚洲第一网站在线播放| 国产欧美一区二区在线| 欧美激情一区二区三区四区| 中文字幕一区二区在线播放| 亚洲综合免费观看高清完整版在线| 亚洲一区二区三区中文字幕在线| 亚洲成人av免费| 麻豆91在线播放| 国产一区二区0| k8久久久一区二区三区| 色哟哟一区二区在线观看 | 石原莉奈在线亚洲三区| 蜜臀av一级做a爰片久久| 国产一区二区电影| 91捆绑美女网站| 欧美一级艳片视频免费观看| 国产偷国产偷亚洲高清人白洁| 亚洲欧洲成人自拍| 亚洲成人激情社区| 精品一区二区免费视频| 成人av免费在线观看| 精品视频在线免费看| 久久久五月婷婷| 亚洲精品中文在线影院| 日韩有码一区二区三区| 成人app在线| 欧美挠脚心视频网站| 久久精品人人做人人综合| 亚洲在线观看免费视频| 国产一区激情在线| 欧美在线小视频| 亚洲精品在线观看网站| 中文字幕在线视频一区| 奇米综合一区二区三区精品视频| 成人在线一区二区三区| 在线成人免费视频| 国产精品乱人伦| 久久精品免费观看| 91福利视频网站| 中文字幕精品在线不卡| 日韩精品一二三| 91偷拍与自偷拍精品| 精品国产一区二区亚洲人成毛片| 亚洲一二三区在线观看| 成人免费高清在线| 欧美第一区第二区| 亚洲最色的网站| 99久久er热在这里只有精品66| 欧美一区二区三区四区视频 | 国产在线国偷精品产拍免费yy| 欧美性色综合网| 亚洲欧美国产高清| 成人午夜又粗又硬又大| 日韩久久久精品| 婷婷综合在线观看| 欧美性猛交xxxx乱大交退制版| 欧美国产一区在线| 国产麻豆精品一区二区| 欧美一级久久久久久久大片| 亚洲欧美日韩国产一区二区三区| 国产成人精品一区二区三区四区| 欧美电视剧免费观看| 日本欧美久久久久免费播放网| 欧美亚洲图片小说| 亚洲精品欧美激情| 91网站在线观看视频| 一区二区中文字幕在线| av成人免费在线| 亚洲欧美在线aaa| 成人国产精品免费观看动漫 | 亚洲一区二区精品久久av| 91极品美女在线| 一区二区三区91| 欧美日韩一区二区三区高清 | 亚洲摸摸操操av| 91福利在线看| 亚洲一区二区三区四区在线观看|