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

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

?? ccsm_msg.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
?? 第 1 頁 / 共 5 頁
字號:
!---------------------------Local workspace-----------------------------    integer i,lat,n                ! longitude,latitude,count indices    integer nstep                  ! current time step    integer nstepcsm               ! time step sent to flux coupler    integer yr, mon, day           ! year, month, day components of cdatecsm    integer cdatecsm,cseccsm       ! current date,sec     integer msgpday                ! number of send/recv msgs per day    logical nextsw                 ! set to true for next sw calculation    real(r8) dtime                 ! timestep size    real(r8) albshift              ! albedo calculation time shift!-----------------------------------------------------------------------    nstep = get_nstep()    dtime = get_step_size()!! Determine time step sent to flux coupler and corresponding date.!    if (nstep==0) then                      nstepcsm = nstep       call get_curr_date(yr, mon, day, cseccsm)       cdatecsm = yr*10000 + mon*100 + day    else       nstepcsm = nstep - 1       call get_prev_date(yr, mon, day, cseccsm)       cdatecsm = yr*10000 + mon*100 + day    end if!! Determine albedo calculation time shift, which is the time interval ! from nstepcsm until the next short wave calculation.    if (nstep /= 0) then                      if (flxave) then          albshift = nint((nstep+iradsw-nstepcsm)*dtime)       else          nextsw = .false.          n = 1          do while (.not. nextsw)             nextsw = (mod((nstep+n-1),iradsw)==0)             if (nextsw) albshift = nint((nstep+n-nstepcsm)*dtime)             n = n+1          end do       endif    else       albshift = nint(iradsw*dtime) + dtime    endif!! Determine number of send/recv msgs per day!    if (flxave) then                       msgpday = nint(86400./dtime)/iradsw     else       msgpday = nint(86400./dtime)          endif!! Determine ibuff array!    ibuff(:)  = 0    ibuff(4)  = cdatecsm            ! model date (yyyymmdd)    ibuff(5)  = cseccsm             ! elapsed seconds in current day    ibuff(6)  = nstepcsm            ! model time step     ibuff(7)  = plon                ! number of model longitudes    ibuff(8)  = plat                ! number of model latitudes    ibuff(9)  = msgpday             ! number of send/recv msgs per day    ibuff(32) = albshift            ! albedo calculation time shift!! Send data to coupler!    call shr_msg_send_i (ibuff, size(ibuff), SHR_MSG_TID_CPL, SHR_MSG_TAG_A2C)    call shr_msg_send_r (arput, size(arput), SHR_MSG_TID_CPL, SHR_MSG_TAG_A2C)    if (csm_timing) then       irtc_s = shr_sys_irtc()       write(6,9099) irtc_s,'a->d sending'    end if9099 format('[mp timing]  irtc = ',i20,' ',a)    return  end subroutine msgsnd!===============================================================================  subroutine ccsmave (iradsw, nstep, dosw)!----------------------------------------------------------------------- ! ! Purpose: ! Average the input fluxes to lsm between solar radiation times.! ! Method: ! Currently, the only flux requiring averaging is the precipitation, ! since the radiative fluxes are constant over the averaging interval.! ! Author: Byron Boville! !-----------------------------------------------------------------------    use comsrf, only: surface_state2d!------------------------------Arguments--------------------------------    integer, intent(in) :: iradsw  ! solar radiation interval    integer, intent(in) ::  nstep  ! time step number    logical, intent(in) ::  dosw   ! time to compute averages (solar radiation time)!-----------------------------------------------------------------------!---------------------------Local workspace-----------------------------    integer i,lat    ! longitude,level,latitude indices    real(r8) rcount  ! reciprocal of count!-----------------------------------------------------------------------!! If iradsw == 1, then no averaging is required!    if (iradsw == 1) return!! Set the counter and normalizing factor!    if (nstep == 0) countfa = 0    countfa = countfa + 1    if (dosw) then       rcount = 1./countfa    end if!$OMP PARALLEL DO PRIVATE(lat,i)    do lat = beglat,endlat       if (countfa == 1) then          do i = 1, nlon(lat)             precca(i,lat)  = surface_state2d(lat)%precc(i)                precla(i,lat)  = surface_state2d(lat)%precl(i)                precsca(i,lat) = surface_state2d(lat)%precsc(i)                precsla(i,lat) = surface_state2d(lat)%precsl(i)             end do!! Final call of averaging interval, complete averaging and copy data back!       else if (dosw) then          do i = 1, nlon(lat)             precca(i,lat)  = rcount*(precca(i,lat) + surface_state2d(lat)%precc(i))             precla(i,lat)  = rcount*(precla(i,lat) + surface_state2d(lat)%precl(i))             precsca(i,lat) = rcount*(precsca(i,lat) + surface_state2d(lat)%precsc(i))             precsla(i,lat) = rcount*(precsla(i,lat) + surface_state2d(lat)%precsl(i))          end do!! Intermediate call, add data to accumulators!       else          do i = 1, nlon(lat)             precca(i,lat)  = precca(i,lat) + surface_state2d(lat)%precc(i)                precla(i,lat)  = precla(i,lat) + surface_state2d(lat)%precl(i)                precsca(i,lat) = precsca(i,lat) + surface_state2d(lat)%precsc(i)                precsla(i,lat) = precsla(i,lat) + surface_state2d(lat)%precsl(i)             end do       end if    end do!! Reset the counter if the average was just computed!    if (dosw) then       countfa = 0    end if    return  end subroutine ccsmave!===============================================================================  subroutine ccsm_msg_getorb!----------------------------------------------------------------------- ! ! Purpose: Get orbital values from flux coupler! ! Method: ! ! Author: Erik Kluzek! !-----------------------------------------------------------------------     use physconst, only:#include <comctl.h>#include <comsol.h>!--------------------------Local Variables------------------------------    integer cplcdate           ! current date from coupler          integer cplcsec            ! elapsed sec on current date        integer info_time          ! T => turn on msg-passing timing    integer maj_vers           ! Coupler major message compatibility version    integer min_vers           ! Coupler minor message compatibility version    integer ierr               ! Return error  !!-----------------------------------------------------------------------!    if (masterproc) then!! Receive first ibuff message from coupler. This is currently only used! to determine if output csm timing will occur.!       ibuff(:) = 0       call shr_msg_recv_i (ibuff, nibuff, SHR_MSG_TID_CPL, SHR_MSG_TAG_C2AI)       ierr      = ibuff( 1)  ! error code       cplcdate  = ibuff( 4)  ! current date from coupler       cplcsec   = ibuff( 5)  ! elapsed sec on current date       info_time = ibuff(11)  ! T => turn on msg-passing timing       maj_vers  = ibuff(40)  ! Coupler message major version       min_vers  = ibuff(41)  ! Coupler message minor version       ncbuff    = ibuff(42)  ! Size of character data to recieve       write(6,*)'(CCSM_MSG_GET_ORB): recd d->a initial ibuf msg_id = ',SHR_MSG_TAG_C2AI       call shr_sys_flush(6)!! Check that the version of the message from the coupler is version expected!       call ccsm_msg_compat(maj_vers, min_vers, SHR_MSG_A_MAJ_V04, SHR_MSG_A_MIN_V00)!! Receive first floating point rbuff message from coupler.!       rbuff(:) = 0.0       call shr_msg_recv_r (rbuff, nibuff, SHR_MSG_TID_CPL, SHR_MSG_TAG_C2AI)       spval  = rbuff(1)      !Special flag value for data       eccen  = rbuff(2)      !Earth's eccentricity of orbit       obliqr = rbuff(3)      !Earth's Obliquity radians       lambm0 = rbuff(4)      !longitude of perihelion at v-equinox       mvelpp = rbuff(5)      !Earth's Moving vernal equinox of orbit + pi!! Check that data sent is good data and not the special value!       call ccsm_compat_check_spval(spval, eccen ,'Eccentricity' )       call ccsm_compat_check_spval(spval, obliqr,'Obliquity' )       call ccsm_compat_check_spval(spval, lambm0,'long of perh.' )       call ccsm_compat_check_spval(spval, mvelpp,'Moving lon of perh')       write(6,*)'(CCSM_MSG_GET_ORB): eccen:  ', eccen       write(6,*)'(CCSM_MSG_GET_ORB): obliqr: ', obliqr       write(6,*)'(CCSM_MSG_GET_ORB): lambm0: ', lambm0       write(6,*)'(CCSM_MSG_GET_ORB): mvelpp: ', mvelpp       write(6,*)'(CCSM_MSG_GET_ORB): recd d->a initial real buf msg_id = ',SHR_MSG_TAG_C2AI       call shr_sys_flush(6)!! Receive character data cbuff message from coupler.!       if ( ncbuff > 0 )then          call shr_msg_recv_c (cbuff, ncbuff, SHR_MSG_TID_CPL, SHR_MSG_TAG_C2AI)          write(6,*)'(CCSM_MSG_GET_ORB): recd d->a initial char. buf msg_id= ',SHR_MSG_TAG_C2AI          call shr_sys_flush(6)       end if!! Determine if will output csm timing info.!       if (info_time == 0) then          csm_timing = .false.       else          csm_timing = .true.       endif    endif ! End of if-masterproc#if ( defined SPMD )    call mpibcast(spval , 1, mpir8, 0, mpicom)    call mpibcast(eccen , 1, mpir8, 0, mpicom)    call mpibcast(obliqr, 1, mpir8, 0, mpicom)    call mpibcast(lambm0, 1, mpir8, 0, mpicom)    call mpibcast(mvelpp, 1, mpir8, 0, mpicom)#endif    return  end subroutine ccsm_msg_getorb!===============================================================================  subroutine ccsm_msg_sendgrid!----------------------------------------------------------------------- ! ! Purpose: ! Send grid to flux coupler! ! Method: ! ! Author: Mariana Vertenstein! !-----------------------------------------------------------------------    use infnan    use commap, only: latdeg, londeg    use dycore, only: dycore_is    use time_manager, only: get_nstep, get_step_size#include <comctl.h>!--------------------------Local Variables------------------------------    integer lat, lon              ! loop indices    integer nstep                  ! current time step    integer msgpday               ! number of send/recv msgs per day    integer(SHR_KIND_IN) ::  mask(plon,plat)       ! Mask of valid data    real(r8) dtime                ! timestep size [s]    real(r8) area(plon,plat)      ! Area in radians squared for each grid point    real(r8) clondeg(plon,plat)   ! Longitude grid    real(r8) clatdeg(plon,plat)   ! latitude grid as 2 dimensional array    real(r8) ns_vert(4,plon,plat) ! latitude grid vertices    real(r8) ew_vert(4,plon,plat) ! longitude grid vertices    real(r8) del_theta            ! difference in latitude at a grid point    real(r8) del_phi              ! difference in longitude at a grid point    real(r8) pie                  ! mathmatical constant 3.1415...    real(r8) degtorad             ! convert degrees to radians!-----------------------------------------------------------------------    if (masterproc) then       nstep = get_nstep()       dtime = get_step_size()!! Determine number of send/recv msgs per day!       if (flxave) then                          msgpday = nint(86400./dtime)/iradsw        else          msgpday = nint(86400./dtime)             endif       write(6,*)'(CCSM_MSG_SENDGRID): there are ',msgpday,' send/recv msgs per day'       call shr_sys_flush(6)!! Determine ibuff sent to coupler!       ibuff(:) = 0

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精久久久久久| 国产日韩精品一区二区浪潮av | 日本高清视频一区二区| 欧美激情一区二区在线| 国产成人av一区| 国产欧美日韩亚州综合| 国产一区二区三区免费| 久久久综合网站| 国产成人在线视频免费播放| 国产日产欧美一区| 成人av在线一区二区| 综合久久给合久久狠狠狠97色| 不卡欧美aaaaa| 国产精品福利一区二区| 91视频免费观看| 亚洲综合一二三区| 欧美日韩久久久一区| 五月天亚洲精品| 91精品国产一区二区三区| 蜜桃精品视频在线| 久久日一线二线三线suv| 国产精品影视在线| 亚洲国产精品精华液ab| 99久久国产综合色|国产精品| 亚洲男女一区二区三区| 欧美日韩在线播放三区四区| 日韩av在线播放中文字幕| 91精品一区二区三区久久久久久 | 日本精品免费观看高清观看| 亚洲自拍偷拍欧美| 欧美一区二区成人6969| 国产专区综合网| 国产精品青草久久| 在线观看成人免费视频| 日韩精品久久久久久| 欧美r级电影在线观看| 成人免费高清在线观看| 樱花影视一区二区| 欧美一卡2卡三卡4卡5免费| 国产做a爰片久久毛片| 国产精品天美传媒沈樵| 色呦呦一区二区三区| 午夜精品久久久久久| 精品美女在线播放| 懂色中文一区二区在线播放| 日韩美女啊v在线免费观看| 欧美美女喷水视频| 国产一区不卡视频| 亚洲精品免费电影| 精品国免费一区二区三区| 懂色av一区二区夜夜嗨| 亚洲一区二区三区中文字幕在线| 日韩欧美国产午夜精品| k8久久久一区二区三区 | 日本欧洲一区二区| 久久精品一区四区| 欧美无砖专区一中文字| 精品影视av免费| 亚洲色图都市小说| 欧美一区二区三区成人| 国产宾馆实践打屁股91| 亚洲国产视频a| 久久久精品黄色| 欧美在线免费观看亚洲| 国产精品综合av一区二区国产馆| 亚洲人成伊人成综合网小说| 日韩精品一区二| 欧美大片国产精品| 成人免费视频免费观看| 丝袜美腿亚洲一区二区图片| 国产女人18水真多18精品一级做| 欧美精三区欧美精三区| 成人av网址在线观看| 日产国产欧美视频一区精品| 中文字幕欧美一| 精品久久久久久久久久久久包黑料| 91视频xxxx| 激情综合色播激情啊| 亚洲福利一区二区| 国产精品国产三级国产aⅴ入口 | 欧美日韩精品欧美日韩精品| 国产成人综合在线播放| 秋霞成人午夜伦在线观看| 一区二区中文字幕在线| 欧美精品一区二区蜜臀亚洲| 欧美性猛交xxxx黑人交| 成人午夜电影网站| 青青青伊人色综合久久| 亚洲综合色丁香婷婷六月图片| 日本一区二区成人在线| 欧美videofree性高清杂交| 欧美午夜精品一区二区三区 | 成人美女在线观看| 裸体一区二区三区| 亚洲高清免费在线| 亚洲欧洲精品一区二区三区| 久久久久久亚洲综合影院红桃| 欧美一区二区三区成人| 欧美日韩午夜精品| 欧洲一区二区三区在线| 99精品视频一区二区三区| 韩国精品免费视频| 欧美aaaaaa午夜精品| 亚洲第一福利视频在线| 综合婷婷亚洲小说| 国产精品毛片久久久久久久| 久久久久久亚洲综合| 欧美电影免费观看高清完整版在线 | 99国产精品久久| 国产91高潮流白浆在线麻豆| 激情六月婷婷久久| 蜜臂av日日欢夜夜爽一区| 日韩在线一二三区| 亚洲国产精品嫩草影院| 亚洲精品亚洲人成人网| 亚洲婷婷综合久久一本伊一区| 国产精品美女久久久久av爽李琼| 久久色视频免费观看| 久久免费午夜影院| 国产视频在线观看一区二区三区 | 日韩欧美一区在线| 3d动漫精品啪啪| 91精品国产综合久久久蜜臀粉嫩| 欧美日韩成人在线| 678五月天丁香亚洲综合网| 欧美色视频一区| 欧美日韩精品欧美日韩精品一 | 国内成人精品2018免费看| 蜜桃传媒麻豆第一区在线观看| 日本va欧美va精品发布| 免费在线观看成人| 免费观看成人鲁鲁鲁鲁鲁视频| 美日韩一区二区三区| 久久不见久久见中文字幕免费| 蜜臀精品一区二区三区在线观看 | 婷婷亚洲久悠悠色悠在线播放| 亚洲成年人网站在线观看| 五月综合激情婷婷六月色窝| 日日摸夜夜添夜夜添精品视频| 日本网站在线观看一区二区三区 | 一区二区三区在线播| 亚洲永久精品国产| 亚洲成人av中文| 日韩1区2区3区| 紧缚奴在线一区二区三区| 国产乱妇无码大片在线观看| 成人精品免费视频| 91麻豆国产精品久久| 欧美三级电影在线看| 7777精品伊人久久久大香线蕉经典版下载| 欧美精品第一页| 精品久久久久久久久久久院品网| 久久久久国产免费免费| 18涩涩午夜精品.www| 亚洲国产精品久久人人爱蜜臀| 蜜臀久久99精品久久久画质超高清 | 欧美日韩一区二区不卡| 91精品国产综合久久久久久久| 精品久久久久久综合日本欧美| 久久久国产精品不卡| 中文字幕一区二区日韩精品绯色| 一区二区成人在线| 日韩avvvv在线播放| 国产ts人妖一区二区| 色婷婷久久久综合中文字幕| 欧美伦理电影网| 久久你懂得1024| 一区二区三区美女视频| 美日韩一区二区| av成人老司机| 这里只有精品视频在线观看| 国产午夜亚洲精品午夜鲁丝片| 亚洲免费观看视频| 日本va欧美va精品发布| 成人黄色大片在线观看| 欧美在线制服丝袜| 久久亚洲一区二区三区四区| 亚洲精品国产a| 久久99精品久久久久久动态图| 99久久精品久久久久久清纯| 制服.丝袜.亚洲.中文.综合| 国产精品青草久久| 日本成人中文字幕在线视频| 成人激情午夜影院| 8v天堂国产在线一区二区| 中文字幕欧美激情| 五月婷婷色综合| 成人精品国产免费网站| 欧美电影在线免费观看| 国产欧美一区二区精品秋霞影院| 亚洲午夜国产一区99re久久| 国产一区不卡视频| 欧美精品在线视频| 国产精品午夜春色av| 日本不卡高清视频| 91视频国产观看| 久久免费电影网| 五月天网站亚洲| 91视频.com| 国产日韩欧美a|