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

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

?? clm_map.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
字號(hào):
#include <misc.h>#include <preproc.h>subroutine clm_map (wtxy) !----------------------------------------------------------------------- ! ! Purpose: ! Build 1d subgrid patch <-> 2d grid mapping indices and weights! ! Method: ! Build mapping indices and weights: [lsmlon]x[lsmlat] 2d grid <->! [numland] vector of land points <-> [numpatch] vector of subgrid patches. ! Allow for variable longitudinal resolution: [numlon] <= [lsmlon]! The land surface model works by gathering all the land points on a! [lon]x[lat] grid into a vector of [numland] land points. This! is then expanded into a vector of [numpatch] subgrid patches, allowing! for up to [maxpatch] subgrid patches per land point. ! [ixy], [jxy], [patch], and [land] are indices for the mapping: ! [lsmlon]x[lsmlat] grid <-> [numland] vector of land points <-> ! [numpatch] vector of subgrid points. [landvec%wtxy] are the weights ! to obtain the grid average from the subgrid patches.!! Author: Gordon Bonan! !-----------------------------------------------------------------------! $Id: clm_map.F90,v 1.2.6.5.6.1 2002/05/13 19:25:01 erik Exp $!-----------------------------------------------------------------------  use precision  use clm_varpar , only : lsmlon, lsmlat, maxpatch  use clm_varsur , only : numlon, landmask  use clm_varmap , only : numland, numpatch, begpatch, endpatch, &                          begland, endland, landvec, patchvec, mapvar_ini  use clm_varder , only : clm_varder_ini    use histFileMod, only : histvar_ini  use mvegFileMod, only : monthveg_ini   #if (defined SPMD)  use spmdMod    , only : masterproc, iam, npes, proc_landi, proc_landf, proc_landpts, &                          proc_patchi, proc_patchf, proc_patchpts, spmd_init_patch  #else  use spmdMod,     only : masterproc#endif  implicit none! ------------------------ arguments----------------------------------  real(r8), intent(in) :: wtxy(lsmlon,lsmlat,maxpatch) !subgrid patch weights! --------------------------------------------------------------------! ------------------------ local variables ---------------------------  integer  :: i,j,l,m,n,p                 !indices  integer  :: li,lf                       !land indices  integer  :: nland                       !number of land points  integer  :: npatch                      !number of patch points   real(r8) :: sumwts                      !sum of wtxy over patches  real(r8) :: procwt                      !weight of processor patches  real(r8), allocatable :: land_wt(:)     !weight of patches for land point  integer , allocatable :: land_patchs(:) !numger of patches for land point! --------------------------------------------------------------------#if (defined SPMD)! ----------------------------------------------------------------------! Initialize spmd arrays for number of land/patch points per processor! ----------------------------------------------------------------------  call spmd_init_patch#endif! --------------------------------------------------------------------! Find total number of land grid cells [numland] and total number of ! patches [numpatch] allowing for multiple subgrid patches in a grid cell.! --------------------------------------------------------------------  npatch = 0  nland = 0  do j = 1, lsmlat     do i = 1, numlon(j)        if (landmask(i,j) == 1) then                    nland = nland+1                               !land point number           do m = 1, maxpatch                              if (wtxy(i,j,m) > 0.)  npatch = npatch+1   !subgrid patch number           end do        end if     end do  end do  numland = nland  numpatch = npatch  if (masterproc) then     write (6,*)' Surface Grid Characteristics'     write (6,*)'   longitude points         = ',lsmlon     write (6,*)'   latitude points          = ',lsmlat     write (6,*)'   minimum longitude points = ',minval(numlon)     write (6,*)'   maximum longitude points = ',maxval(numlon)     write (6,*)'   land points on grid                    = ',numland     write (6,*)'   total points including subgrid patches = ',numpatch     write (6,*)  endif       ! --------------------------------------------------------------------! Find beginning and ending patch index for each process! --------------------------------------------------------------------#if (!defined SPMD)  begland   = 1  endland   = numland  begpatch  = 1  endpatch  = numpatch#else  if (npes > numpatch) then     write(6,*)'CLM_MAP: asking for more processors than patches'     call endrun  endif  allocate (land_wt(numland))   allocate (land_patchs(numland))  procwt = 1./npes   nland  = 0  sumwts = 0.  do j = 1, lsmlat     do i = 1, numlon(j)        if (landmask(i,j) == 1) then                            nland  = nland+1           npatch = 0           do m = 1, maxpatch                                         if (wtxy(i,j,m) > 0.) npatch = npatch+1           end do           land_wt(nland) = real(npatch)/real(numpatch)           sumwts = sumwts + land_wt(nland)           land_patchs(nland) = npatch        end if     end do  end do  write(6,*)'SUM: iam= ',iam,' sumwts= ',sumwts  nland = 0  npatch = 0  do p = 0, npes-1     proc_landi(p) = nland + 1     proc_patchi(p) = npatch + 1      sumwts = 0.     do l = proc_landi(p), numland        sumwts = sumwts + land_wt(l)        npatch = npatch + land_patchs(l)        if ((sumwts>=procwt .and. (p/=npes-1)) .or. (npatch==numpatch)) then           nland = l           proc_landf(p) = nland           proc_patchf(p) = npatch           EXIT        elseif (npatch > numpatch) then           write(6,*)'CLM_MAP: iam= ',iam,' p= ',p,' max patches exceeded'           write(6,*)'npatch = ',npatch,' numpatch= ',numpatch           call endrun        endif     end do     proc_patchpts(p) = proc_patchf(p) - proc_patchi(p) + 1      proc_landpts(p) = proc_landf(p) - proc_landi(p) + 1  end do  begpatch = proc_patchi(iam)  endpatch = proc_patchf(iam)   begland  = proc_landi(iam)  endland  = proc_landf(iam)  write(6,*)'iam= ',iam,' begland = ',proc_landi(iam) ,' endland = ',proc_landf(iam),&       ' total land points = ',proc_landpts(iam)  write(6,*)'iam= ',iam,' begpatch= ',proc_patchi(iam),' endpatch= ',endpatch, &       ' total patch pionts= ',proc_patchpts(iam)  deallocate (land_wt)  deallocate (land_patchs)#endif! --------------------------------------------------------------------! Allocate dynamic memory! --------------------------------------------------------------------  call mapvar_ini  call clm_varder_ini  call histvar_ini  call monthveg_ini! --------------------------------------------------------------------! Build 1d land vector and 1d patch vector mapping components! --------------------------------------------------------------------! Determine land vector and patch vector mapping components  landvec%wtxy(:,:) = 0._r8  patchvec%wtxy(:)  = 0._r8  npatch = 0  nland  = 0  do j = 1, lsmlat     do i = 1, numlon(j)        if (landmask(i,j) == 1) then                            nland = nland+1                                      landvec%ixy(nland) = i                       !land longitude index           landvec%jxy(nland) = j                       !land latitude index           do m = 1, maxpatch                                         if (wtxy(i,j,m) > 0.) then                                 npatch = npatch+1                                       landvec%patch(nland,m) = npatch        !land subgrid patch number                 landvec%wtxy(nland,m)  = wtxy(i,j,m)   !land subgrid weights                 patchvec%ixy(npatch)   = i             !patch longitude index                 patchvec%jxy(npatch)   = j             !patch latitude index                 patchvec%mxy(npatch)   = m             !patch subgrid index of lnd point                 patchvec%wtxy(npatch)  = wtxy(i,j,m)   !patch weight                 patchvec%land(npatch)  = nland         !patch land index              end if           end do        end if     end do  end do! Initialize land vector patches with zero weights to first patch with ! non-zero weight  do l = 1, numland     n = 0     do m = maxpatch, 1, -1        if (landvec%wtxy(l,m) > 0.) n = m     end do     if (n == 0) then        write (6,*) 'CLM_MAP error: n = 0'        call endrun     end if     do m = 1, maxpatch        if (landvec%wtxy(l,m) == 0.) then           landvec%patch(l,m) = landvec%patch(l,n)        endif     end do  end do! Error check: make sure weights sum to one for each land cell  do l = 1, numland     i = landvec%ixy(l)     j = landvec%jxy(l)     sumwts = 0     do m = 1, maxpatch        sumwts = sumwts + landvec%wtxy(l,m)     end do     if (abs(sumwts-1.) > 1.e-05) then        write (6,*) 'CLM_MAP error: weights do not sum to 1'        write (6,*) 'lon = ',i,' lat = ',j,' :sum = ',sumwts        call endrun     end if  end do  returnend subroutine clm_map

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲线精品一区二区三区| 亚洲美女一区二区三区| 99国产精品久久久久久久久久 | 国产精品一二三四区| 一区二区三区鲁丝不卡| 国产午夜精品一区二区三区嫩草| 欧美在线观看一二区| 国产乱码精品一区二区三| 日韩av在线播放中文字幕| 综合网在线视频| 国产亚洲福利社区一区| 欧美一级片在线| 91国产免费看| 91免费观看视频在线| 国产成人在线看| 狠狠色2019综合网| 麻豆一区二区三| 日韩二区在线观看| 亚洲国产人成综合网站| 亚洲人成伊人成综合网小说| 欧美激情综合五月色丁香| 久久中文字幕电影| 欧美精品一区二区三区蜜桃视频| 欧美精品一级二级三级| 欧美视频中文一区二区三区在线观看| 成人aaaa免费全部观看| 国产aⅴ精品一区二区三区色成熟| 极品少妇xxxx精品少妇偷拍| 蜜桃视频一区二区| 美女视频第一区二区三区免费观看网站| 亚洲韩国一区二区三区| 亚洲国产美国国产综合一区二区| 亚洲品质自拍视频网站| 亚洲人成网站在线| 亚洲色大成网站www久久九九| 中文字幕一区二区三区av| 国产精品福利影院| 亚洲天堂2014| 亚洲视频一区二区在线观看| 国产精品二三区| 中文字幕亚洲在| 亚洲美女少妇撒尿| 一区二区三区四区在线播放| 亚洲精品高清在线| 夜夜爽夜夜爽精品视频| 亚洲一区二区黄色| 午夜视频在线观看一区二区| 午夜视频在线观看一区二区| 视频精品一区二区| 美腿丝袜亚洲色图| 激情小说亚洲一区| 成人精品视频一区| 色噜噜狠狠成人网p站| 在线免费观看视频一区| 在线综合+亚洲+欧美中文字幕| 5566中文字幕一区二区电影| 日韩午夜在线播放| 国产三级精品视频| 亚洲女子a中天字幕| 亚洲影视资源网| 久久精品国产亚洲5555| 国产盗摄精品一区二区三区在线| aa级大片欧美| 欧美嫩在线观看| 久久久久久久久蜜桃| 亚洲欧洲精品一区二区精品久久久| 成人免费在线播放视频| 亚洲国产成人av好男人在线观看| 美女视频第一区二区三区免费观看网站| 国产毛片精品国产一区二区三区| eeuss鲁一区二区三区| 欧美系列在线观看| 欧美mv和日韩mv国产网站| 国产精品国产三级国产普通话99| 亚洲成人一区在线| 国产精品18久久久| 欧美亚男人的天堂| 久久亚洲精品国产精品紫薇| 综合久久综合久久| 精品一区二区三区不卡| 91麻豆6部合集magnet| 欧美高清hd18日本| 国产精品久久久久7777按摩| 亚洲成人激情综合网| 国产一区激情在线| 欧美日韩一卡二卡| 国产女同互慰高潮91漫画| 香蕉加勒比综合久久| 国产91露脸合集magnet | 一本色道综合亚洲| 日韩欧美在线123| 亚洲视频免费在线| 精品午夜久久福利影院| 色激情天天射综合网| 久久女同精品一区二区| 亚洲成人av一区二区三区| 丁香天五香天堂综合| 91超碰这里只有精品国产| 国产精品久久久久久亚洲毛片| 日本亚洲视频在线| 在线观看亚洲精品视频| 欧美国产激情一区二区三区蜜月| 亚洲观看高清完整版在线观看| 粉嫩绯色av一区二区在线观看| 91精品婷婷国产综合久久| 亚洲男人电影天堂| 福利一区二区在线| 26uuu亚洲| 蜜桃视频在线观看一区二区| 91福利区一区二区三区| 国产片一区二区| 国内精品第一页| 91精品国产综合久久久蜜臀图片| 亚洲久本草在线中文字幕| 粉嫩av一区二区三区| 精品免费日韩av| 日韩电影一区二区三区四区| 欧美性一区二区| 亚洲欧美国产毛片在线| caoporm超碰国产精品| 久久综合九色综合97婷婷女人| 日韩成人精品在线| 欧美日韩精品二区第二页| 亚洲资源中文字幕| 欧美午夜寂寞影院| 一区二区三区在线免费观看| 91丝袜美腿高跟国产极品老师 | 国内久久精品视频| 欧美大片日本大片免费观看| 免费观看在线综合| 欧美久久久久久久久中文字幕| 亚洲自拍偷拍综合| 欧美日韩免费观看一区二区三区| 亚洲精品高清在线观看| 欧美伊人久久久久久久久影院 | 日本特黄久久久高潮| 777精品伊人久久久久大香线蕉| 亚洲一级电影视频| 欧美疯狂做受xxxx富婆| 日本不卡中文字幕| 精品日韩欧美在线| 久久99国产精品免费网站| 26uuu国产在线精品一区二区| 久久99精品久久久久| 久久久久久久综合色一本| 粉嫩绯色av一区二区在线观看| 国产精品视频线看| 色婷婷av久久久久久久| 午夜激情一区二区| 日韩免费在线观看| 国产精品77777| 亚洲人成精品久久久久久| 欧美在线看片a免费观看| 日本sm残虐另类| 国产亚洲成aⅴ人片在线观看 | 精品久久久久香蕉网| 国产美女在线精品| 中文字幕一区二| 欧美区一区二区三区| 美日韩一级片在线观看| 中文字幕免费不卡| 欧美亚一区二区| 久久91精品久久久久久秒播| 国产精品人成在线观看免费| 色哟哟日韩精品| 青青草成人在线观看| 欧美极品美女视频| 欧美三级中文字幕| 国产自产v一区二区三区c| 亚洲人一二三区| 欧美一级爆毛片| 播五月开心婷婷综合| 五月天亚洲精品| 国产婷婷一区二区| 欧美三级日韩三级| 激情综合色综合久久综合| 亚洲欧洲综合另类| 精品久久五月天| 在线看一区二区| 韩国一区二区三区| 亚洲国产精品天堂| 欧美激情一区二区三区四区 | 中文字幕 久热精品 视频在线| 色哟哟一区二区| 国产成人在线看| 青青草原综合久久大伊人精品| 国产精品久久久久三级| 日韩亚洲电影在线| 欧美自拍丝袜亚洲| 懂色av一区二区三区免费看| 日日夜夜免费精品视频| 最新日韩av在线| 日韩亚洲国产中文字幕欧美| 色一情一乱一乱一91av| 激情综合五月婷婷| 日韩影院精彩在线| 一区二区三区在线免费| 中文字幕精品一区| 欧美精品一区二区高清在线观看| 在线观看中文字幕不卡|