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

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

?? ccsm_msg.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
?? 第 1 頁 / 共 5 頁
字號:
          end do       end do    endif    numperlat = plon*nrcv    call compute_gsfactors (numperlat, numrecv, numsend, displs)    if ( masterproc ) then       call mpiscatterv (arget_buf, numsend, displs, mpir8, arget_spmd(1,1,beglat), &                         numrecv, mpir8, 0, mpicom)    else       call mpiscatterv (0.0_r8, numsend, displs, mpir8, arget_spmd(1,1,beglat), &                         numrecv, mpir8, 0, mpicom)    end if    do lat=beglat,endlat       do i=1,nlon(lat)          srfflx_state2d(lat)%wsx(i)    = -arget_spmd(i,1 ,lat) ! Atmosphere-surface flux          srfflx_state2d(lat)%wsy(i)    = -arget_spmd(i,2 ,lat) ! Atmosphere-surface flux          srfflx_state2d(lat)%lhf(i)    = -arget_spmd(i,3 ,lat) ! Atmosphere-surface flux          srfflx_state2d(lat)%shf(i)    = -arget_spmd(i,4 ,lat) ! Atmosphere-surface flux          srfflx_state2d(lat)%lwup(i)   = -arget_spmd(i,5 ,lat) ! Atmosphere-surface flux          srfflx_state2d(lat)%cflx(i,1) = -arget_spmd(i,6 ,lat) ! Atmosphere-surface flux          srfflx_state2d(lat)%asdir(i)  =  arget_spmd(i,7 ,lat) ! Surface state variable          srfflx_state2d(lat)%aldir(i)  =  arget_spmd(i,8 ,lat) ! Surface state variable          srfflx_state2d(lat)%asdif(i)  =  arget_spmd(i,9 ,lat) ! Surface state variable          srfflx_state2d(lat)%aldif(i)  =  arget_spmd(i,10,lat) ! Surface state variable          srfflx_state2d(lat)%ts(i)     =  arget_spmd(i,11,lat) ! Surface state variable          snowhland(i,lat)              =  arget_spmd(i,12,lat) ! Surface state variable          icefrac(i,lat)                =  arget_spmd(i,13,lat) ! Surface type fraction          ocnfrac(i,lat)                =  arget_spmd(i,14,lat) ! Surface type fraction          srfflx_state2d(lat)%tref(i)   =  arget_spmd(i,15,lat) ! Surface state variable       end do    end do#else!$OMP PARALLEL DO PRIVATE(lat,i)    do lat=beglat,endlat       do i=1,nlon(lat)          srfflx_state2d(lat)%wsx(i)    = -arget(i,lat,1) ! Atmosphere-surface flux          srfflx_state2d(lat)%wsy(i)    = -arget(i,lat,2) ! Atmosphere-surface flux          srfflx_state2d(lat)%lhf(i)    = -arget(i,lat,3) ! Atmosphere-surface flux          srfflx_state2d(lat)%shf(i)    = -arget(i,lat,4) ! Atmosphere-surface flux          srfflx_state2d(lat)%lwup(i)   = -arget(i,lat,5) ! Atmosphere-surface flux          srfflx_state2d(lat)%cflx(i,1) = -arget(i,lat,6) ! Atmosphere-surface flux          srfflx_state2d(lat)%asdir(i)  =  arget(i,lat,7) ! Surface state variable          srfflx_state2d(lat)%aldir(i)  =  arget(i,lat,8) ! Surface state variable          srfflx_state2d(lat)%asdif(i)  =  arget(i,lat,9) ! Surface state variable          srfflx_state2d(lat)%aldif(i)  =  arget(i,lat,10) ! Surface state variable          srfflx_state2d(lat)%ts(i)     =  arget(i,lat,11) ! Surface state variable          snowhland(i,lat)              =  arget(i,lat,12) ! Surface state variable          icefrac(i,lat)                =  arget(i,lat,13) ! Surface type fraction          ocnfrac(i,lat)                =  arget(i,lat,14) ! Surface type fraction          srfflx_state2d(lat)%tref(i)   =  arget(i,lat,15) ! Surface state variable       end do    end do#endif!! Set snowh over ice to zero since flux coupler only returns snowh over land!    snowhice(:,:) = 0.0!!    do lat=beglat,endlat       do i=1,nlon(lat)          if (icefrac(i,lat) + ocnfrac(i,lat) <= .999) then             landfrac(i,lat) = 1.             ocnfrac(i,lat) = 0.          else             landfrac(i,lat) = 0.             ocnfrac(i,lat) = 1.          end if       end do    end do!! Determine if stop at end of day!    if ( (.not. csmstop) .and. (ibuff(2)/=0) ) then       csmstop = .true.       if (masterproc) write(6,*) &       '(CCSMRCV): received stop at end of day signal from flux coupler'    end if!! Determine if write restart at end of day!    if ( (.not. csmrstrt) .and. (ibuff(21)/=0) ) then       csmrstrt = .true.       if (masterproc) write(6,*) &       '(CCSMRCV): received write restart at end of day signal from flux coupler'    else if ( ibuff(21) == 0 )then       csmrstrt = .false.    endif9099 format('[mp timing]  irtc = ',i20,' ',a)    return   end subroutine ccsmrcv  subroutine ccsmsnd!----------------------------------------------------------------------- ! ! Purpose: ! Send the message array to the csm driver.! ! Method: ! On steps where the data is to be sent to the coupler, fill the! message passing array with instantaneous atmospheric states, ! instantaneous downward radiative fluxes, averaged precipitation, ! instantaneous surface states and averaged surface fluxes. ! Condense the data into one array. The coupler has the convention that ! fluxes are positive downward. Note that precc and precl precipitation rates ! in units of m/sec. They are turned into fluxes by multiplying by 1000 kg/m^3.! ! Author: Byron Boville! !-----------------------------------------------------------------------    use comsrf, only: surface_state2d, srfflx_state2d#include <comctl.h>!---------------------------Local workspace-----------------------------    integer i,lat,n         ! indices    integer len             ! temporary length variable    real(r8) totrain        ! total rain    real(r8) totsnow        ! total snow#ifdef SPMD    integer numperlat         ! temporary length variable    integer numsend           ! number of items to send    integer numrecv(0:npes-1) ! number of items to receive    integer displs(0:npes-1)  ! displacement vector#endif!-----------------------------------------------------------------------!! Divide total precipitation and snowfall into rain and snowfall!    if (flxave) then!$OMP PARALLEL DO PRIVATE(lat,i)       do lat = beglat,endlat          do i=1,nlon(lat)             rainconv(i,lat) = ((precca(i,lat) - precsca(i,lat)))*1000.             rainlrsc(i,lat) = ((precla(i,lat) - precsla(i,lat)))*1000.             snowconv(i,lat) = precsca(i,lat)*1000.             snowlrsc(i,lat) = precsla(i,lat)*1000.          end do       end do    else!$OMP PARALLEL DO PRIVATE(lat,i)       do lat = beglat,endlat          do i = 1,nlon(lat)             rainconv(i,lat) = ((surface_state2d(lat)%precc(i) - surface_state2d(lat)%precsc(i)))*1000.             rainlrsc(i,lat) = ((surface_state2d(lat)%precl(i) - surface_state2d(lat)%precsl(i)))*1000.             snowconv(i,lat) = surface_state2d(lat)%precsc(i)*1000.             snowlrsc(i,lat) = surface_state2d(lat)%precsl(i)*1000.          end do       end do    end if!! If averaging flux over several timesteps, ensure rain and snow do not! exist simultaneously to satisfy a limitation in LSM.!    if (flxave) then!$OMP PARALLEL DO PRIVATE(lat,i,totrain,totsnow)       do lat = beglat,endlat          do i = 1,nlon(lat)             totrain = rainconv(i,lat) + rainlrsc(i,lat)              totsnow = snowconv(i,lat) + snowlrsc(i,lat)              if (totrain /= 0. .and. totsnow /= 0.) then                if (totrain >= totsnow) then                   rainconv(i,lat) = rainconv(i,lat) + snowconv(i,lat)                   rainlrsc(i,lat) = rainlrsc(i,lat) + snowlrsc(i,lat)                   prc_err(i,lat)  = snowconv(i,lat) + snowlrsc(i,lat)                   snowconv(i,lat) = 0.                   snowlrsc(i,lat) = 0.                else                   snowconv(i,lat) = snowconv(i,lat) + rainconv(i,lat)                   snowlrsc(i,lat) = snowlrsc(i,lat) + rainlrsc(i,lat)                   prc_err(i,lat)  = rainconv(i,lat) + rainlrsc(i,lat)                   rainconv(i,lat) = 0.                   rainlrsc(i,lat) = 0.                end if             else                prc_err(i,lat)  = 0.             end if          end do       end do    else!$OMP PARALLEL DO PRIVATE(lat)       do lat = beglat,endlat          prc_err(1:nlon(lat),lat)  = 0.       end do    end if#if (defined SPMD)!$OMP PARALLEL DO PRIVATE(lat,i)    do lat = beglat,endlat       do i = 1,nlon(lat)          arput_spmd(i, 1,lat)  =  surface_state2d(lat)%zbot(i)          ! Atmospheric state variable m          arput_spmd(i, 2,lat)  =  surface_state2d(lat)%ubot(i)          ! Atmospheric state variable m/s          arput_spmd(i, 3,lat)  =  surface_state2d(lat)%vbot(i)          ! Atmospheric state variable m/s          arput_spmd(i, 4,lat)  =  surface_state2d(lat)%tbot(i)          ! Atmospheric state variable K          arput_spmd(i, 5,lat)  =  surface_state2d(lat)%thbot(i)         ! Atmospheric state variable K          arput_spmd(i, 6,lat)  =  surface_state2d(lat)%pbot(i)          ! Atmospheric state variable Pa          arput_spmd(i, 7,lat)  =  psl(i,lat)           ! Atmospheric state variable Pa          arput_spmd(i, 8,lat)  =  surface_state2d(lat)%qbot(i)          ! Atmospheric state variable kg/kg          arput_spmd(i, 9,lat)  =  rho(i,lat)           ! Atmospheric state variable kg/m^3          arput_spmd(i,10,lat)  =  netsw(i,lat)         ! Atmospheric flux W/m^2          arput_spmd(i,11,lat)  =  surface_state2d(lat)%flwds(i)         ! Atmospheric flux W/m^2          arput_spmd(i,12,lat)  =  rainconv(i,lat)      ! Atmospheric flux kg/s/m^2            arput_spmd(i,13,lat)  =  rainlrsc(i,lat)      ! Atmospheric flux kg/s/m^2          arput_spmd(i,14,lat)  =  snowconv(i,lat)      ! Atmospheric flux kg/s/m^2          arput_spmd(i,15,lat)  =  snowlrsc(i,lat)      ! Atmospheric flux kg/s/m^2          arput_spmd(i,16,lat)  =  surface_state2d(lat)%soll(i)          ! Atmospheric flux W/m^2          arput_spmd(i,17,lat)  =  surface_state2d(lat)%sols(i)          ! Atmospheric flux W/m^2          arput_spmd(i,18,lat)  =  surface_state2d(lat)%solld(i)         ! Atmospheric flux W/m^2          arput_spmd(i,19,lat)  =  surface_state2d(lat)%solsd(i)         ! Atmospheric flux W/m^2       end do    end do    numperlat = plon*nsnd    call compute_gsfactors (numperlat, numsend, numrecv, displs)    if ( masterproc ) then       call mpigatherv (arput_spmd(1,1,beglat), numsend, mpir8, arput_buf, numrecv, &                        displs, mpir8, 0, mpicom)    else       call mpigatherv (arput_spmd(1,1,beglat), numsend, mpir8, 0.0_r8, numrecv, &                        displs, mpir8, 0, mpicom)    end if    if (masterproc) then       do n = 1,nsnd          do lat = 1,plat             arput(:nlon(lat),lat,n) = arput_buf(:nlon(lat),n,lat)            end do       end do    endif#else!$OMP PARALLEL DO PRIVATE(lat,i)    do lat = beglat,endlat       do i = 1,nlon(lat)          arput(i,lat, 1)  =  surface_state2d(lat)%zbot(i)          ! Atmospheric state variable m          arput(i,lat, 2)  =  surface_state2d(lat)%ubot(i)          ! Atmospheric state variable m/s          arput(i,lat, 3)  =  surface_state2d(lat)%vbot(i)          ! Atmospheric state variable m/s          arput(i,lat, 4)  =  surface_state2d(lat)%tbot(i)          ! Atmospheric state variable K          arput(i,lat, 5)  =  surface_state2d(lat)%thbot(i)         ! Atmospheric state variable K          arput(i,lat, 6)  =  surface_state2d(lat)%pbot(i)          ! Atmospheric state variable Pa          arput(i,lat, 7)  =  psl(i,lat)           ! Atmospheric state variable Pa          arput(i,lat, 8)  =  surface_state2d(lat)%qbot(i)          ! Atmospheric state variable kg/kg          arput(i,lat, 9)  =  rho(i,lat)           ! Atmospheric state variable kg/m^3          arput(i,lat,10)  =  netsw(i,lat)         ! Atmospheric flux W/m^2          arput(i,lat,11)  =  surface_state2d(lat)%flwds(i)         ! Atmospheric flux W/m^2          arput(i,lat,12)  =  rainconv(i,lat)      ! Atmospheric flux kg/s/m^2            arput(i,lat,13)  =  rainlrsc(i,lat)      ! Atmospheric flux kg/s/m^2          arput(i,lat,14)  =  snowconv(i,lat)      ! Atmospheric flux kg/s/m^2          arput(i,lat,15)  =  snowlrsc(i,lat)      ! Atmospheric flux kg/s/m^2          arput(i,lat,16)  =  surface_state2d(lat)%soll(i)          ! Atmospheric flux W/m^2          arput(i,lat,17)  =  surface_state2d(lat)%sols(i)          ! Atmospheric flux W/m^2          arput(i,lat,18)  =  surface_state2d(lat)%solld(i)         ! Atmospheric flux W/m^2          arput(i,lat,19)  =  surface_state2d(lat)%solsd(i)         ! Atmospheric flux W/m^2       end do    end do#endif!! Output to history file the snow and rain actually sent to coupler as well as the! error between what is sent and what is reported on history file in PRECT/PRECS!!$OMP PARALLEL DO PRIVATE(lat)      do lat = beglat,endlat         call outfld('CPLRAINC', rainconv(1,lat), plon, lat)         call outfld('CPLRAINL', rainlrsc(1,lat), plon, lat)         call outfld('CPLSNOWC', snowconv(1,lat), plon, lat)         call outfld('CPLSNOWL', snowlrsc(1,lat), plon, lat)         call outfld('CPLPRCER', prc_err(1,lat) , plon, lat)      end do!! Send buffer to coupler!    if (masterproc) then       call msgsnd    endif!    return  end subroutine ccsmsnd  subroutine ccsmfin!----------------------------------------------------------------------- ! ! Purpose: Send and receive final msgs at end of run.! ! Method: ! The coupler currently expects a final when nlend is true - ! this data is only written out the coupler restart file! restart file and is not used upon restart by the coupler ! for the cam component. The coupler also sends a final msg. ! This data is put into a dummy array! ! Author: Mariana Vertenstein! !-----------------------------------------------------------------------     use time_manager, only: get_nstep, get_prev_date#include <comctl.h>!---------------------------Local workspace-----------------------------    integer nstepcsm                 ! time step sent to flux coupler    integer cdatecsm,cseccsm         ! date,sec at beginning of current timestep    integer yr, mon, day             ! year, month, day components of cdatecsm!-----------------------------------------------------------------------    if (masterproc) then!! Determine final date to send to coupler!       nstepcsm = get_nstep() - 1       call get_prev_date(yr, mon, day, cseccsm)       cdatecsm = yr*10000 + mon*100 + day

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产小视频| 一本高清dvd不卡在线观看 | 国产乱码精品一区二区三区av | 欧美激情在线一区二区| 国产精品资源站在线| 久久欧美一区二区| 成人午夜电影网站| 日韩毛片一二三区| 欧美老女人第四色| 精品亚洲国产成人av制服丝袜 | 国产精品天美传媒| 91丨porny丨最新| 亚洲午夜在线观看视频在线| 6080国产精品一区二区| 久久精品国产77777蜜臀| 中文字幕精品一区二区精品绿巨人 | 亚洲高清一区二区三区| 日韩午夜激情av| 国产福利精品导航| 日韩理论电影院| 91精品国产综合久久婷婷香蕉| 国产麻豆91精品| 1024国产精品| 欧美高清视频不卡网| 国产一区二区三区免费播放| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 一区在线中文字幕| 欧美电影影音先锋| 国产乱码精品一区二区三| 亚洲精品视频自拍| 欧美成人vps| 99精品欧美一区二区三区小说| 午夜电影一区二区| 国产欧美日韩视频一区二区| 欧美天堂一区二区三区| 成人网在线播放| 看片网站欧美日韩| 亚洲精品乱码久久久久久| 精品国产凹凸成av人网站| 在线精品视频一区二区三四| 国产精品 欧美精品| 亚洲va欧美va人人爽| 日本一区二区三区免费乱视频 | 蜜臀av一区二区在线观看| 中文字幕一区av| 日韩精品一区二区三区视频| 欧美性一区二区| 不卡的av电影在线观看| 韩国精品一区二区| 午夜精品爽啪视频| 亚洲色大成网站www久久九九| 精品国产乱码久久| 欧美日韩精品一区二区三区| caoporm超碰国产精品| 国精产品一区一区三区mba桃花| 午夜一区二区三区视频| 亚洲精品菠萝久久久久久久| 国产精品久久免费看| 久久亚洲捆绑美女| 欧美电影免费提供在线观看| 欧美午夜片在线看| 色综合久久久久综合99| 不卡电影一区二区三区| 成人激情小说网站| 丁香另类激情小说| 国产综合色在线视频区| 精品一区二区三区在线播放视频| 日本视频在线一区| 日韩中文字幕一区二区三区| 夜夜夜精品看看| 亚洲日本电影在线| 亚洲欧美一区二区三区久本道91| 国产精品久久久久影院亚瑟| 中文字幕第一区二区| 中文字幕第一区二区| 国产精品欧美极品| 中文字幕欧美激情| 中文字幕一区二区三区av| 最新国产の精品合集bt伙计| 国产精品成人一区二区艾草| 自拍偷拍欧美激情| 亚洲日本va午夜在线影院| 怡红院av一区二区三区| 亚洲中国最大av网站| 亚洲成人免费在线观看| 午夜国产精品影院在线观看| 蜜臀国产一区二区三区在线播放| 日本不卡视频在线观看| 国内成人免费视频| 国产成人av福利| 成人一道本在线| 91免费看片在线观看| 色哟哟日韩精品| 欧美电影在哪看比较好| 欧美mv日韩mv国产| 国产欧美精品日韩区二区麻豆天美 | 成人免费观看视频| 色婷婷精品大在线视频| 欧美人与z0zoxxxx视频| 日韩欧美久久久| 欧美国产成人精品| 亚洲激情自拍偷拍| 麻豆一区二区三| 成人黄动漫网站免费app| 欧美中文字幕久久| 日韩视频一区在线观看| 国产亚洲一区二区三区在线观看 | 国产精品久久一卡二卡| 亚洲成人午夜影院| 国产精品一区二区久久精品爱涩| 91热门视频在线观看| 91精品国产综合久久精品性色 | 亚洲免费在线电影| 日本欧美肥老太交大片| 国产精品18久久久久久久网站| 99久久精品情趣| 日韩一级片网站| 国产精品福利影院| 全国精品久久少妇| 91农村精品一区二区在线| 欧美一区二区在线不卡| 中文字幕不卡在线| 午夜精品久久久久久久蜜桃app| 国产成人午夜视频| 538在线一区二区精品国产| 国产欧美一区二区三区网站 | 国产一区二区在线视频| 欧美综合色免费| 久久久精品综合| 日韩av网站免费在线| caoporn国产一区二区| 欧美一级生活片| 亚洲精品va在线观看| 国产91精品精华液一区二区三区| 91精品国产入口| 日日夜夜免费精品视频| 国产98色在线|日韩| 91麻豆精品国产无毒不卡在线观看| 国产精品天干天干在线综合| 美女视频黄免费的久久 | 国产精品乱子久久久久| 久久精品国产77777蜜臀| 欧美午夜精品免费| 国产精品久久久久久久久免费桃花| 久久99精品久久久久久国产越南 | 色综合天天综合色综合av | 日韩欧美一区二区久久婷婷| 亚洲欧美日韩综合aⅴ视频| 国模套图日韩精品一区二区| 欧美精品成人一区二区三区四区| 亚洲免费在线看| 99精品视频一区二区| 国产精品天干天干在线综合| 国产乱人伦精品一区二区在线观看| 制服.丝袜.亚洲.另类.中文| 亚洲国产视频直播| 色欧美片视频在线观看在线视频| 国产精品免费免费| 高清成人免费视频| 国产免费观看久久| 国产精品自在在线| 久久精品在线免费观看| 国产乱人伦偷精品视频免下载| 久久一日本道色综合| 另类中文字幕网| 26uuu欧美| 国产精品一区免费在线观看| 国产亚洲欧美日韩俺去了| 国产麻豆日韩欧美久久| 欧美一区二区三区日韩| 日韩精品亚洲一区二区三区免费| 欧美色图片你懂的| 日韩福利电影在线| 3d动漫精品啪啪一区二区竹菊| 日本最新不卡在线| 日韩欧美一区在线观看| 久久精工是国产品牌吗| 2020国产精品久久精品美国| 国产电影一区在线| 中文幕一区二区三区久久蜜桃| 国产v综合v亚洲欧| 国产精品久久看| 欧美日韩中文字幕精品| 亚洲福利一二三区| 欧美一级精品在线| 国产精选一区二区三区| 国产精品视频免费看| 日本高清不卡一区| 午夜不卡av免费| 久久青草欧美一区二区三区| 99久久精品国产麻豆演员表| 亚洲一区二区三区四区在线观看 | 久久伊99综合婷婷久久伊| 成人精品高清在线| 亚洲精品免费一二三区| 欧美精品乱人伦久久久久久| 国产在线精品视频| 亚洲伦理在线免费看| 欧美精三区欧美精三区| 国产精品一区二区久激情瑜伽|