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

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

?? inidat.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
?? 第 1 頁 / 共 2 頁
字號:
#include <misc.h>#include <params.h>module inidat!BOP!! !MODULE: inidat --- dynamics-physics coupling module!! !USES:   use precision   use comspe   use chemistry, only: chem_init_mix! !PUBLIC MEMBER FUNCTIONS:   public read_inidat, copy_inidat! !PUBLIC DATA MEMBERS:   real(r8), allocatable :: ps_tmp(:,:)   real(r8), allocatable :: u3s_tmp(:,:,:)   real(r8), allocatable :: v3s_tmp(:,:,:)   real(r8), allocatable :: uv_local(:,:,:)   real(r8), allocatable :: t3_tmp(:,:,:)   real(r8), allocatable :: q3_tmp(:,:,:,:)   real(r8), allocatable :: q3_local(:,:,:,:)   real(r8), allocatable :: qcwat_tmp(:,:,:)    real(r8), allocatable :: lcwat_tmp(:,:,:)    real(r8), allocatable :: phis_tmp(:,:)   real(r8), allocatable :: landfrac_tmp(:,:)                     real(r8), allocatable :: landm_tmp(:,:)   real(r8), allocatable :: sgh_tmp(:,:)   real(r8), allocatable :: ts_tmp(:,:)   real(r8), allocatable :: tsice_tmp(:,:)   real(r8), allocatable :: tssub_tmp(:,:,:)   real(r8), allocatable :: sicthk_tmp(:,:)   real(r8), allocatable :: snowhice_tmp(:,:)                   real(r8) zgsint_tmp!! !DESCRIPTION:!!      This module provides !!      \begin{tabular}{|l|l|} \hline \hline!        read\_inidat    &   \\ \hline!        copy\_inidat    &   \\ \hline !                                \hline!      \end{tabular}!! !REVISION HISTORY:!   YY.MM.DD   ?????      Creation!   00.06.01   Grant      First attempt at modifying for LRDC!   01.10.01   Lin        Various revisions!   01.01.15   Sawyer     Bug fixes for SPMD mode!   01.03.26   Sawyer     Added ProTeX documentation!!EOP!-----------------------------------------------------------------------contains!-----------------------------------------------------------------------!BOP! !IROUTINE: read_inidat --- read initial dataset!! !INTERFACE:    subroutine read_inidat! !USES:      use precision      use pmgrid      use pspect      use rgrid      use comsrf,    only: plevmx,srfflx_state      use commap      use physconst, only: gravit      use history, only: fillvalue      use constituents, only: pcnst, pnats, cnst_name, qmin      use tracers, only: nusr_adv, nusr_nad, ixuadv, ixunad, ixcldw      implicit none      include 'netcdf.inc'!------------------------------Commons----------------------------------#include <comctl.h>#include <comqfl.h>#include <comlun.h>#include <perturb.h>! !DESCRIPTION:!!   Read initial dataset and spectrally truncate as appropriate.!! !REVISION HISTORY:!!   00.06.01   Grant      First attempt at modifying for LRDC!   00.10.01   Lin        Various revisions!   01.01.15   Sawyer     Bug fixes for SPMD mode!   01.03.09   Eaton      Modifications!   01.03.26   Sawyer     Added ProTeX documentation!!EOP!-----------------------------------------------------------------------!BOC!! !LOCAL VARIABLES:      integer i,j,k,m,lat       ! grid and constituent indices      integer ihem              ! hemisphere index      real(r8) pdelb(plond,plev)! pressure diff between interfaces      real(r8) pertval          ! perturbation value      real(r8) zgssum           ! partial sums of phis      integer ii, ic!! Netcdf related variables!      integer lonsiz, latsiz, levsiz ! Dimension sizes      integer londimid, levdimid, latdimid ! Dimension ID's      integer tid, qid  ! Variable ID's      integer tracid(pcnst+pnats) ! Variable ID's      integer phisid, sghid, psid ! Variable ID's      integer landmid#if ( ! defined COUP_CSM )      integer tsid, ts1id, ts2id, ts3id, ts4id,tsiceid ! Variable ID's#endif      integer sicid,  snowhiceid           ! Variable ID's      integer landfracid        ! Variable ID's      integer usid, vsid      integer strt2d(3)         ! start lon, lat, time indices for netcdf 2-d      integer strt3d(4)         ! start lon, lev, lat, time for netcdf 3-d      data strt2d/3*1/          ! Only index 2 will ever change      data strt3d/4*1/          ! Only indices 2,3 will ever change      integer cnt2d(3)          ! lon, lat, time counts for netcdf 2-d      integer cnt3d(4)          ! lon, lat, lev, time counts for netcdf 2-d      data cnt2d/plon,1,1/      ! 2-d arrs: Always grab only a "plon" slice      data cnt3d/plon,plev,plat,1/ ! 3-d arrs: Always grab a full time slice      integer ndims2d           ! number of dimensions      integer dims2d(NF_MAX_VAR_DIMS) ! variable shape      integer ndims3d           ! number of dimensions      integer dims3d(NF_MAX_VAR_DIMS) ! variable shape      integer tmptype      integer natt, ret, attlen ! netcdf return values      logical phis_hires        ! true => PHIS came from hi res topo      real(r8) arr3d(plon,plev,plat)      character*(NF_MAX_NAME) tmpname      character*256 text      character*80 trunits      ! tracer untis      real(r8) splon_arr3d(plon,plev,plat)!     real(r8) splat_arr3d(plon,plev,splat)   ! Glenn Grant's original code      real(r8) splat_arr3d(plon,plev,plat-1)  ! temporary patch until splat = plat-1      integer slatid, slatdimid, slatsiz      integer slonid, slondimid, slonsiz      integer cnt3dus(4)        ! index counts for netcdf U staggered grid      integer cnt3dvs(4)        ! index counts for netcdf V staggered grid!      data cnt3dus/plon,plev,splat,1/ ! 3-d arrs: Always grab a full time slice! SJL      integer platm1      parameter (platm1=plat-1)      data cnt3dus/plon,plev,platm1,1/ ! temporary patch      data cnt3dvs/plon,plev,plat,1/ ! 3-d arrs: Always grab a full time slice!!-----------------------------------------------------------------------! Allocate memory for temporary arrays!-----------------------------------------------------------------------!! Note if not masterproc still might need to allocate array for spmd case! since each processor calls MPI_scatter !      allocate ( ps_tmp(plond,plat) )      allocate ( u3s_tmp(plon,plat,plev) )      allocate ( v3s_tmp(plon,plat,plev) )      allocate ( t3_tmp(plond,plev,plat) )                   allocate ( q3_tmp(plond,plev,pcnst+pnats,plat) )       allocate ( qcwat_tmp(plond,plev,plat) )       allocate ( lcwat_tmp(plond,plev,plat) )       allocate ( phis_tmp(plond,plat) )              allocate ( landm_tmp(plond,plat) )                        allocate ( sgh_tmp(plond,plat) )                       allocate ( ts_tmp(plond,plat) )                         allocate ( tsice_tmp(plond,plat) )                         allocate ( tssub_tmp(plond,plevmx,plat) )               allocate ( sicthk_tmp(plond,plat) )                     allocate ( snowhice_tmp(plond,plat) )                      allocate ( landfrac_tmp(plond,plat) )                !!-----------------------------------------------------------------------! Read in input variables!-----------------------------------------------------------------------      if (masterproc) then!! Get dimension IDs and lengths !         call wrap_inq_dimid  (ncid_ini, 'lat', latdimid)         call wrap_inq_dimlen (ncid_ini, latdimid, latsiz)         call wrap_inq_dimid  (ncid_ini, 'lev', levdimid)         call wrap_inq_dimlen (ncid_ini, levdimid, levsiz)         call wrap_inq_dimid  (ncid_ini, 'lon', londimid)         call wrap_inq_dimlen (ncid_ini, londimid, lonsiz)         call wrap_inq_dimid  (ncid_ini, 'slat', slatdimid)         call wrap_inq_dimlen (ncid_ini, slatdimid, slatsiz)         call wrap_inq_dimid  (ncid_ini, 'slon', slondimid)         call wrap_inq_dimlen (ncid_ini, slondimid, slonsiz)!! Get variable id's ! Check that all tracer units are in mass mixing ratios!!         call wrap_inq_varid (ncid_ini, 'U'   , uid)!         call wrap_inq_varid (ncid_ini, 'V'   , vid)         call wrap_inq_varid (ncid_ini, 'slat', slatid)         call wrap_inq_varid (ncid_ini, 'slon', slonid)         call wrap_inq_varid (ncid_ini, 'US'  , usid)         call wrap_inq_varid (ncid_ini, 'VS'  , vsid)         call wrap_inq_varid (ncid_ini, 'T'   , tid)         call wrap_inq_varid (ncid_ini, 'Q'   , qid)         call wrap_inq_varid (ncid_ini, 'PS'  , psid)         call wrap_inq_varid (ncid_ini, 'PHIS', phisid)         call wrap_inq_varid (ncid_ini, 'SGH' , sghid)         call wrap_inq_varid (ncid_ini, 'LANDM', landmid)#if ( ! defined COUP_CSM )!! For land-fraction check if the variable name LANDFRAC is on the dataset if not assume FLAND!         if ( nf_inq_varid(ncid_ini, 'LANDFRAC', landfracid ) == NF_NOERR ) then            call wrap_inq_varid (ncid_ini, 'LANDFRAC', landfracid)         else            call wrap_inq_varid (ncid_ini, 'FLAND', landfracid)         end if         call wrap_inq_varid (ncid_ini, 'TS', tsid)         call wrap_inq_varid (ncid_ini, 'TSICE', tsiceid)         call wrap_inq_varid (ncid_ini, 'TS1', ts1id)         call wrap_inq_varid (ncid_ini, 'TS2', ts2id)         call wrap_inq_varid (ncid_ini, 'TS3', ts3id)         call wrap_inq_varid (ncid_ini, 'TS4', ts4id)         call wrap_inq_varid (ncid_ini, 'SNOWHICE', snowhiceid)#if ( defined COUP_SOM )         call wrap_inq_varid (ncid_ini, 'SICTHK', sicid)#endif#endif         if (readtrace) then            do m=2,pcnst+pnats               call wrap_inq_varid (NCID_INI,cnst_name(m), tracid(m))               call wrap_get_att_text (NCID_INI,tracid(m),'units', trunits)               if (trunits(1:5) .ne. 'KG/KG' .and. trunits(1:5) .ne. 'kg/kg') then                  write(6,*)'INIDAT: tracer units for tracer = ', &                            cnst_name(m),' must be in KG/KG'                  call endrun               endif            end do         end if!! Check dimension ordering for one 2-d and one 3-d field.! Assume other arrays of like rank will have dimensions ordered the same.!         call wrap_inq_var (ncid_ini, psid, tmpname, tmptype, &                            ndims2d, dims2d, natt)         if (dims2d(1).ne.londimid .or. dims2d(2).ne.latdimid .or. &             ndims2d.gt.3) then            write(6,*)'INIDAT: Bad number of dims or ordering on 2d fld'            call endrun         end if!! Check for presence of 'from_hires' attribute to decide whether to filter!         ret = nf_inq_attlen (ncid_ini, phisid, 'from_hires', attlen)         if (ret.eq.NF_NOERR .and. attlen.gt.256) then            write(6,*)'INIDAT: from_hires attribute length is too long'            call endrun         end if         ret = nf_get_att_text (ncid_ini, phisid, 'from_hires', text)         if (ret.eq.NF_NOERR .and. text(1:4).eq.'true') then            phis_hires = .true.!            write(6,*)'INIDAT: Will filter input PHIS: attribute ', &!                      'from_hires is true'         else            phis_hires = .false.!            write(6,*)'INIDAT: Will not filter input PHIS: attribute ', &!                      'from_hires is either false or not present'         end if!! Read in 2d fields.  ! For stand alone run: get surface temp and 4 (sub)surface temp fields! For stand alone run with slab-ocean: get sea-ice thickness and snow cover!         do j=1,plat            strt2d(2) = j            if (ideal_phys .or. aqua_planet) then               do i=1,nlon(j)                  phis_tmp(i,j) = 0.                  sgh_tmp (i,j) = 0.               end do            else               call wrap_get_vara_realx (ncid_ini, phisid, strt2d, cnt2d, &                                         phis_tmp(1,j))               call wrap_get_vara_realx (ncid_ini, sghid , strt2d, cnt2d, &                                         sgh_tmp(1,j))            endif            call wrap_get_vara_realx (ncid_ini, landmid, strt2d, cnt2d, &                                      landm_tmp(1,j))            call wrap_get_vara_realx (ncid_ini, psid, strt2d, cnt2d, &                                      ps_tmp(1,j))#if ( ! defined COUP_CSM )            if (aqua_planet) then               do i=1,nlon(j)                  landfrac_tmp(i,j) = 0.               end do            else               call wrap_get_vara_realx (ncid_ini, landfracid, strt2d, cnt2d, &                                         landfrac_tmp(1,j))            endif            call wrap_get_vara_realx (ncid_ini, tsid, strt2d, cnt2d, &                                           ts_tmp(1,j))            call wrap_get_vara_realx (ncid_ini, tsiceid, strt2d, cnt2d, &                                           tsice_tmp(1,j))            call wrap_get_vara_realx (ncid_ini, ts1id, strt2d, cnt2d, &                                           tssub_tmp(1,1,j))            call wrap_get_vara_realx (ncid_ini, ts2id, strt2d, cnt2d, &                                           tssub_tmp(1,2,j))            call wrap_get_vara_realx (ncid_ini, ts3id, strt2d, cnt2d, &                                           tssub_tmp(1,3,j))            call wrap_get_vara_realx (ncid_ini, ts4id, strt2d, cnt2d, &                                           tssub_tmp(1,4,j))!! Set sea-ice thickness and snow cover:!#if ( defined COUP_SOM )            call wrap_get_vara_realx(ncid_ini, sicid, strt2d, cnt2d, sicthk_tmp(1,j))#endif            call wrap_get_vara_realx(ncid_ini, snowhiceid, strt2d, cnt2d, snowhice_tmp(1,j))#endif         end do!! Read in 3d fields.  ! Staggered grid variables and transpose         call wrap_get_vara_realx(ncid_ini,usid, strt3d, cnt3dus, splat_arr3d)         do k = 1, plev!! SJL: initialize j=1 because later on u3s_tmp will be copied to u3s using f90 array syntax               do i = 1, plon                  u3s_tmp(i,1,k) = fillvalue               enddo!            do j = 1, plat-1               do i = 1, plon                  u3s_tmp(i,j+1,k) = splat_arr3d(i,k,j)               enddo            enddo         enddo         call wrap_get_vara_realx(ncid_ini,vsid, strt3d, cnt3dvs, splon_arr3d)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费版在线看| 久久se精品一区二区| 东方欧美亚洲色图在线| 日韩三级电影网址| 日本人妖一区二区| 欧美久久久久久蜜桃| 亚洲www啪成人一区二区麻豆| 在线区一区二视频| 亚洲国产精品自拍| 日韩午夜av电影| 国产一本一道久久香蕉| 久久久久久久电影| 粉嫩aⅴ一区二区三区四区五区| 日本一区二区电影| 91浏览器在线视频| 亚洲一二三区在线观看| 欧美日韩高清在线| 国产精品亚洲а∨天堂免在线| 国产日韩成人精品| 岛国一区二区三区| 亚洲美女偷拍久久| 日韩一二三四区| 国产一区二区三区香蕉 | 亚洲欧美另类在线| 色呦呦一区二区三区| 亚洲人快播电影网| 精品视频免费看| 久久99国产精品成人| 国产日韩高清在线| 日本精品视频一区二区三区| 亚洲成人先锋电影| www激情久久| 97久久久精品综合88久久| 国产精品国产精品国产专区不蜜| 色综合色狠狠综合色| 亚洲超丰满肉感bbw| 日韩精品自拍偷拍| 日韩国产高清影视| 国产欧美日韩综合| 欧美亚洲免费在线一区| 狠狠网亚洲精品| 中文字幕乱码一区二区免费| 欧美一区二区网站| 国产成人精品一区二区三区网站观看| 欧美国产日韩精品免费观看| 欧美亚洲图片小说| 丁香激情综合国产| 日本午夜精品视频在线观看| 久久久久久一级片| 欧美亚洲一区三区| 成人在线综合网| 天天综合色天天综合| 亚洲人精品一区| 欧美精品一区二| 在线视频欧美精品| 国产米奇在线777精品观看| 日韩极品在线观看| 亚洲女同ⅹxx女同tv| 精品国产一区二区三区久久久蜜月| 99精品在线免费| 成人永久免费视频| 免费成人结看片| 亚洲宅男天堂在线观看无病毒| 久久人人爽爽爽人久久久| 欧美一区二区在线免费观看| 日本电影亚洲天堂一区| 国产sm精品调教视频网站| 欧美aaaaa成人免费观看视频| 亚洲国产成人91porn| 最新久久zyz资源站| 久久综合av免费| 91精品国模一区二区三区| 欧美午夜影院一区| 91碰在线视频| 东方欧美亚洲色图在线| 精品在线播放免费| 久久精品二区亚洲w码| 日韩电影一区二区三区| 亚洲一级二级三级| 亚洲欧美日韩成人高清在线一区| 精品少妇一区二区三区在线播放| 日韩一级大片在线| 91精品免费观看| 欧美久久免费观看| 欧美做爰猛烈大尺度电影无法无天| 国产不卡免费视频| 国产成人日日夜夜| 国产一区二区不卡老阿姨| 国产成人精品www牛牛影视| 韩国毛片一区二区三区| 激情六月婷婷综合| 成人黄色大片在线观看| 成人精品电影在线观看| 99免费精品在线| 欧美制服丝袜第一页| 91福利小视频| 欧美色精品在线视频| 欧美日韩久久久| 日韩一区二区三区av| 精品捆绑美女sm三区| 久久午夜色播影院免费高清| 国产亚洲综合av| 亚洲一级电影视频| 国产性色一区二区| 亚洲欧洲成人自拍| 一区二区三区精品| 三级成人在线视频| 粉嫩av一区二区三区粉嫩| 91香蕉视频黄| 51午夜精品国产| 国产欧美一区二区精品仙草咪| 日本一区二区三级电影在线观看| 亚洲欧洲日韩综合一区二区| 亚洲国产视频a| 狠狠色狠狠色综合| 色综合久久天天| 欧美成人三级在线| 亚洲人亚洲人成电影网站色| 水野朝阳av一区二区三区| 国产一区视频导航| 欧美在线三级电影| 久久众筹精品私拍模特| 亚洲一区二区三区四区在线观看 | 日韩三级中文字幕| 综合久久久久久久| 蜜桃精品视频在线| 91色婷婷久久久久合中文| 欧美成人官网二区| 有坂深雪av一区二区精品| 国产美女在线精品| 欧美片在线播放| 中文字幕在线观看不卡视频| 免费视频最近日韩| 日本韩国一区二区| 国产偷国产偷亚洲高清人白洁| 亚洲一区二区三区爽爽爽爽爽| 黄色精品一二区| 337p亚洲精品色噜噜噜| 亚洲精品亚洲人成人网在线播放| 国产一区二区在线电影| 欧美一卡二卡在线| 亚洲午夜电影在线观看| 成人免费高清视频在线观看| 日韩免费观看高清完整版在线观看 | 日韩影视精彩在线| 一本一道久久a久久精品 | 国产精品成人在线观看| 国产一区二区三区综合| 日韩欧美黄色影院| 日韩黄色在线观看| 精品视频一区二区三区免费| 最好看的中文字幕久久| 成人性生交大片免费看中文网站| 日韩一区二区在线观看视频| 亚洲一区二区三区在线看| 色香蕉久久蜜桃| 亚洲色欲色欲www在线观看| 不卡欧美aaaaa| 国产精品欧美一级免费| 成人深夜在线观看| 欧美激情一区不卡| 粉嫩高潮美女一区二区三区| 久久久亚洲高清| 国产精品羞羞答答xxdd| 国产午夜亚洲精品羞羞网站| 精品一区二区三区在线视频| 日韩精品中午字幕| 久久精品久久久精品美女| 欧美一级黄色大片| 久久精品国产一区二区| 欧美一级夜夜爽| 蜜臀av一区二区| 精品免费日韩av| 精品一区免费av| 国产欧美一区二区精品性色超碰| 国产成人av影院| 国产精品国产自产拍在线| 色偷偷一区二区三区| 一区二区三区在线视频观看58| 欧洲一区二区三区在线| 婷婷国产在线综合| 日韩免费一区二区| 国产盗摄女厕一区二区三区| 中文天堂在线一区| 色呦呦国产精品| 亚洲成a人v欧美综合天堂| 日韩欧美国产系列| 国产91露脸合集magnet| 亚洲欧洲精品一区二区精品久久久| 97精品视频在线观看自产线路二| 一区二区三区中文在线观看| 欧美日本一道本| 国产裸体歌舞团一区二区| 136国产福利精品导航| 欧美色视频一区| 黄色日韩三级电影| 亚洲男同性视频| 日韩一区二区在线免费观看| 国产精品一区在线观看乱码 | 国产福利精品一区|