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

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

?? mod_comm.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
?? 第 1 頁 / 共 5 頁
字號:
! Recv data from north      if ( jlast < jm ) then        j = jlast + 1#if !defined(USE_MLP)#if !defined(MPI2)        nread = nread + 1        call mpi_wait(rqest(nread), Status, ierror)#endif        tdisp = igosouth*idimsize + (ncall_r-1)*idimsize*nbuf        call BufferUnPack3d(q, 1, im, jfirst-nd_s, jlast+nd_n, kfirst, klast, &                               1, im, j,           j,          kfirst, klast, &                               buff_r(tdisp+1))#else!$omp parallel do private(i, k)         do k=kfirst,klast            do i=1,im               q(i,j,k) = g_4d(i,j,k,1)             enddo         enddo#endif      endif#if !defined(USE_MLP)      if (ncall_r == ncall_s) then#if !defined(MPI2)        call mpi_waitall(nsend, sqest, Stats, ierror)        nrecv = 0        nread = 0        nsend = 0#endif        ncall_s = 0        ncall_r = 0      endif#endif      end subroutine mp_recv_n!-----      subroutine mp_send2_ns(im, jm, jfirst, jlast, kfirst, klast, nd, q1, q2)!-----      implicit none      integer, intent(in):: im, jm, jfirst, jlast      integer, intent(in):: kfirst, klast !careful: klast might be klast+1      integer, intent(in):: nd      real, intent(in):: q1(im,jfirst-nd:jlast+nd,kfirst:klast)       real, intent(in):: q2(im,jfirst-nd:jlast+nd,kfirst:klast) ! Local:      integer i, k      integer src, dest      integer qsize      integer recv_tag, send_tag      integer displ#if !defined(USE_MLP) && defined(MPI2)      integer p, tmpsize, mysize      integer(kind=MPI_ADDRESS_KIND) mydisp#endif#if !defined(USE_MLP)      ncall_s = ncall_s + 1#if defined(MPI2)      if (ncall_s == 1) then        call MPI_WIN_FENCE(MPI_MODE_NOPRECEDE, buffwin, ierror)      endif#endif! Send to south      if ( jfirst > 1 ) then#if !defined(MPI2)! Start recv to north        src = gid - 1        recv_tag = src        qsize = im*2*(klast-kfirst+1)        nrecv = nrecv + 1        tdisp = igonorth*idimsize + (ncall_s-1)*idimsize*nbuf        call mpi_irecv(buff_r(tdisp+1), qsize, mp_precision, src, &                       recv_tag, commglobal, rqest(nrecv), ierror)#endif        dest = gid - 1        qsize = im*(klast-kfirst+1)*2        tdisp = igosouth*idimsize + (ncall_s-1)*idimsize*nbuf        call BufferPack3d(q1, 1, im, jfirst-nd, jlast+nd, kfirst, klast, &                              1, im, jfirst,    jfirst,   kfirst, klast, &                              buff_s(tdisp+1))        displ = im*(klast-kfirst+1)        call BufferPack3d(q2, 1, im, jfirst-nd, jlast+nd, kfirst, klast, &                              1, im, jfirst,    jfirst,   kfirst, klast, &                              buff_s(displ+tdisp+1))#if defined(MPI2)!$omp parallel do private(p,tmpsize,mysize,mydisp)        do p=1,numcpu          tmpsize = ceiling(real(qsize)/real(numcpu))          mysize = MIN(tmpsize, MAX(qsize-(tmpsize*(p-1)),0))          mydisp = tdisp + (p-1)*tmpsize          call MPI_PUT(buff_s(mydisp+1), mysize, mp_precision, dest, &                       mydisp, mysize, mp_precision, buffwin, ierror)        enddo#else        send_tag = gid        nsend = nsend + 1        call mpi_isend(buff_s(tdisp+1), qsize, mp_precision, dest, &                       send_tag, commglobal, sqest(nsend), ierror)#endif      endif! Send to north      if ( jlast < jm ) then#if !defined(MPI2)! Start recv to south        src = gid + 1        recv_tag = src        qsize = im*2*(klast-kfirst+1)        nrecv = nrecv + 1        tdisp = igosouth*idimsize + (ncall_s-1)*idimsize*nbuf        call mpi_irecv(buff_r(tdisp+1), qsize, mp_precision, src, &                       recv_tag, commglobal, rqest(nrecv), ierror)#endif        dest = gid + 1        qsize = im*(klast-kfirst+1)*2        tdisp = igonorth*idimsize + (ncall_s-1)*idimsize*nbuf        call BufferPack3d(q1, 1, im, jfirst-nd, jlast+nd, kfirst, klast, &                              1, im, jlast,     jlast,    kfirst, klast, &                              buff_s(tdisp+1))        displ = im*(klast-kfirst+1)        call BufferPack3d(q2, 1, im, jfirst-nd, jlast+nd, kfirst, klast, &                              1, im, jlast,     jlast,    kfirst, klast, &                              buff_s(displ+tdisp+1))#if defined(MPI2)!$omp parallel do private(p,tmpsize,mysize,mydisp)        do p=1,numcpu          tmpsize = ceiling(real(qsize)/real(numcpu))          mysize = MIN(tmpsize, MAX(qsize-(tmpsize*(p-1)),0))          mydisp = tdisp + (p-1)*tmpsize          call MPI_PUT(buff_s(mydisp+1), mysize, mp_precision, dest, &                       mydisp, mysize, mp_precision, buffwin, ierror)        enddo#else        send_tag = gid        nsend = nsend + 1        call mpi_isend(buff_s(tdisp+1), qsize, mp_precision, dest, &                       send_tag, commglobal, sqest(nsend), ierror)#endif      endif#else#include "mlp_ptr.h"!$omp parallel do private(i, k)      do k=kfirst,klast! Send to south      if ( jfirst > 1 ) then           do i=1,im              g_t1(i,jfirst,k,1) = q1(i,jfirst,k)              g_t1(i,jfirst,k,2) = q2(i,jfirst,k)           enddo      endif! Send to north      if ( jlast < jm ) then           do i=1,im              g_t1(i,jlast,k,1) = q1(i,jlast,k)              g_t1(i,jlast,k,2) = q2(i,jlast,k)           enddo      endif      enddo#endif      end subroutine mp_send2_ns!-----      subroutine mp_recv2_ns(im, jm, jfirst, jlast, kfirst, klast, nd, q1, q2)!-----      implicit none      integer, intent(in):: im, jm, jfirst, jlast      integer, intent(in):: kfirst, klast !careful: klast might be klast+1      integer, intent(in):: nd      real, intent(inout):: q1(im,jfirst-nd:jlast+nd,kfirst:klast)       real, intent(inout):: q2(im,jfirst-nd:jlast+nd,kfirst:klast) ! Local:      integer i,j, k, n      integer displ#if !defined(USE_MLP)      ncall_r = ncall_r + 1#if defined(MPI2)      if (ncall_r == 1) then        call MPI_WIN_FENCE(MPI_MODE_NOSTORE + MPI_MODE_NOSUCCEED, &                           buffwin, ierror)      endif#endif! Recv from south      if ( jfirst > 1 ) then#if !defined(MPI2)        nread = nread + 1        call mpi_wait(rqest(nread), Status, ierror)#endif        j = jfirst - 1        tdisp = igonorth*idimsize + (ncall_r-1)*idimsize*nbuf        call BufferUnPack3d(q1, 1, im, jfirst-nd, jlast+nd, kfirst, klast, &                                1, im, j,         j,        kfirst, klast, &                                buff_r(tdisp+1))        displ = im*(klast-kfirst+1)        call BufferUnPack3d(q2, 1, im, jfirst-nd, jlast+nd, kfirst, klast, &                                1, im, j,         j,        kfirst, klast, &                                buff_r(displ+tdisp+1))      endif! Recv from north      if ( jlast < jm ) then#if !defined(MPI2)        nread = nread + 1        call mpi_wait(rqest(nread), Status, ierror)#endif        j = jlast + 1        tdisp = igosouth*idimsize + (ncall_r-1)*idimsize*nbuf        call BufferUnPack3d(q1, 1, im, jfirst-nd, jlast+nd, kfirst, klast, &                                1, im, j,         j,        kfirst, klast, &                                buff_r(tdisp+1))        displ = im*(klast-kfirst+1)        call BufferUnPack3d(q2, 1, im, jfirst-nd, jlast+nd, kfirst, klast, &                                1, im, j,         j,        kfirst, klast, &                                buff_r(displ+tdisp+1))      endif      if (ncall_r == ncall_s) then#if !defined(MPI2)        call mpi_waitall(nsend, sqest, Stats, ierror)        nrecv = 0        nread = 0        nsend = 0#endif        ncall_s = 0        ncall_r = 0      endif#else#include "mlp_ptr.h"!$omp parallel do private(i, j, k)      do k=kfirst,klast! Recv data from south      if ( jfirst > 1 ) then            j = jfirst - 1            do i=1,im               q1(i,j,k) = g_t1(i,j,k,1)                q2(i,j,k) = g_t1(i,j,k,2)             enddo      endif! Recv data from north      if ( jlast < jm ) then            j = jlast + 1            do i=1,im               q1(i,j,k) = g_t1(i,j,k,1)                q2(i,j,k) = g_t1(i,j,k,2)             enddo      endif      enddo#endif      end subroutine mp_recv2_ns      subroutine mp_send_pe(im, jm, jfirst, jlast, kfirst, klast, p)!-----      implicit none      integer, intent(in):: im, jm, jfirst, jlast, kfirst, klast      real, intent(in):: p(im,kfirst:klast,jfirst:jlast)       integer i, k      integer src, dest      integer qsize      integer recv_tag, send_tag#if !defined(USE_MLP) && defined(MPI2)      integer n, tmpsize, mysize      integer(kind=MPI_ADDRESS_KIND) mydisp#endif#if defined(USE_MLP)#include "mlp_ptr.h"#endif#if !defined(USE_MLP)      ncall_s = ncall_s + 1#if defined(MPI2)      if (ncall_s == 1) then        call MPI_WIN_FENCE(MPI_MODE_NOPRECEDE, buffwin, ierror)      endif#endif#endif#if !defined(USE_MLP) && !defined(MPI2)! Start recv from south      if ( jfirst > 1 ) then         src = gid - 1         recv_tag = src         qsize = im*(klast-kfirst+1)         nrecv = nrecv + 1         tdisp = igonorth*idimsize + (ncall_s-1)*idimsize*nbuf         call mpi_irecv(buff_r(tdisp+1), qsize, mp_precision, src, &                        recv_tag, commglobal, rqest(nrecv), ierror)      endif#endif! Send data to North      if ( jlast < jm ) then#if !defined(USE_MLP)        dest = gid + 1        qsize = im*(klast-kfirst+1)        tdisp = igonorth*idimsize + (ncall_s-1)*idimsize*nbuf        call BufferPack2d(p(1,1,jlast), 1, im, kfirst, klast, &                                        1, im, kfirst, klast, &                                        buff_s(tdisp+1))#if defined(MPI2)!$omp parallel do private(n,tmpsize,mysize,mydisp)        do n=1,numcpu          tmpsize = ceiling(real(qsize)/real(numcpu))          mysize = MIN(tmpsize, MAX(qsize-(tmpsize*(n-1)),0))          mydisp = tdisp + (n-1)*tmpsize          call MPI_PUT(buff_s(mydisp+1), mysize, mp_precision, dest, &                       mydisp, mysize, mp_precision, buffwin, ierror)        enddo#else        send_tag = gid        nsend = nsend + 1        call mpi_isend(buff_s(tdisp+1), qsize, mp_precision, dest, &                       send_tag, commglobal, sqest(nsend), ierror)#endif#else!$omp parallel do private(i, k)         do k=kfirst,klast            do i=1,im               g_t2(i,k,jlast) = p(i,k,jlast)            enddo         enddo#endif      endif      end subroutine mp_send_pe!-----      subroutine mp_recv_pe(im, jm, jfirst, jlast, kfirst, klast, pesouth)!-----      implicit none      integer, intent(in):: im, jm, jfirst, jlast, kfirst, klast      real, intent(inout):: pesouth(im,kfirst:klast)       integer i, j, k, n#if defined(USE_MLP)#include "mlp_ptr.h"#endif#if !defined(USE_MLP)      ncall_r = ncall_r + 1#if defined(MPI2)      if (ncall_r == 1) then        call MPI_WIN_FENCE(MPI_MODE_NOSTORE + MPI_MODE_NOSUCCEED, &                           buffwin, ierror)      endif#endif#endif! Recv from south      if ( jfirst > 1 ) then#if !defined(USE_MLP)#if !defined(MPI2)        nread = nread + 1        call mpi_wait(rqest(nread), Status, ierror)#endif        tdisp = igonorth*idimsize + (ncall_r-1)*idimsize*nbuf        call BufferUnPack2d(pesouth, 1, im, kfirst, klast, &                                     1, im, kfirst, klast, &                                     buff_r(tdisp+1))#else!$omp parallel do private(i, j, k)         do k=kfirst,klast            j = jfirst - 1            do i=1,im               pesouth(i,k) = g_t2(i,k,j)            enddo         enddo#endif      endif#if !defined(USE_MLP)      if (ncall_r == ncall_s) then#if !defined(MPI2)        call mpi_waitall(nsend, sqest, Stats, ierror)        nrecv = 0        nread = 0        nsend = 0#endif        ncall_s = 0        ncall_r = 0      endif#endif      end subroutine mp_recv_pe      subroutine mp_send(dest, src, qsize_s, qsize_r, b_s, b_r)!-----      implicit none      integer, intent(in) :: qsize_s      integer, intent(in) :: qsize_r      integer, intent(in) :: dest      integer, intent(in) :: src      real, intent(in):: b_s(*)       real, intent(in):: b_r(*)       integer i, k      integer recv_tag, send_tag#if !defined(USE_MLP) && defined(MPI2)      integer n, tmpsize, mysize      integer(kind=MPI_ADDRESS_KIND) mydisp#endif#if defined(USE_MLP)#include "mlp_ptr.h"#endif#if !defined(USE_MLP)      ncall_s = ncall_s + 1#if defined(MPI2)      if (ncall_s == 1) then        call MPI_WIN_FENCE(MPI_MODE_NOPRECEDE, buffwin, ierror)      endif#endif#endif#if !defined(USE_MLP) && !defined(MPI2)! Start recv from src      if ( qsize_r > 0 ) then         recv_tag = src         nrecv = nrecv + 1         call mpi_irecv(b_r, qsize_r, mp_precision, src, &                        recv_tag, commglobal, rqest(nrecv), ierror)      endif#endif! Send data to dest      if ( qsize_s > 0 ) then#if !defined(USE_MLP)#if defined(MPI2)!$omp parallel do private(n,tmpsize,mysize,mydisp)        do n=1,numcpu          tmpsize = ceiling(real(qsize_s)/real(numcpu))          mysize = MIN(tmpsize, MAX(qsize-(tmpsize*(n-1)),0))          mydisp = (n-1)*tmpsize          call MPI_PUT(b_s(mydisp+1), mysize, mp_precision, dest, &                       mydisp, mysize, mp_precision, buffwin, ierror)        enddo#else        send_tag = gid        nsend = nsend + 1        call mpi_isend(b_s, qsize_s, mp_precision, dest, &                       send_tag, commglobal, sqest(nsend), ierror)#endif#elseXXXXXXXXXXXXXXXXXXXXXXXXXX  MLP NOT YET IMPLEMENTED XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX!$omp parallel do private(i, k)         do k=kfirst,klast            do i=1,im               g_t2(i,k,jlast) = p(i,k,jlast)            enddo         enddoXXXXXXXXXXXXXXXXXXXXXXXXXX  MLP NOT YET IMPLEMENTED XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#endif      endif      end subroutine mp_send

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费观看国产| 亚洲美女区一区| 奇米一区二区三区| 在线精品视频小说1| 亚洲欧美日韩综合aⅴ视频| 丝袜亚洲另类丝袜在线| 欧美私人免费视频| 亚洲欧洲制服丝袜| 欧美乱妇15p| 乱中年女人伦av一区二区| 欧美日韩精品系列| 日韩激情在线观看| 正在播放一区二区| 久久成人av少妇免费| 欧美一区二区三区不卡| 亚洲成人精品影院| 在线播放中文一区| 首页亚洲欧美制服丝腿| 欧美一区二区免费视频| 久久国产精品区| 精品第一国产综合精品aⅴ| 国产主播一区二区| 欧美国产一区视频在线观看| 国产一区视频导航| 国产欧美视频一区二区三区| 国产精品综合二区| 国产精品乱码一区二区三区软件| 欧美最猛黑人xxxxx猛交| 蜜桃久久久久久久| 中文字幕欧美一区| 欧美电影免费观看高清完整版 | 色呦呦国产精品| 日本va欧美va精品| 综合中文字幕亚洲| 欧美成人乱码一区二区三区| 色94色欧美sute亚洲线路一ni| 麻豆成人久久精品二区三区小说| 最新中文字幕一区二区三区| 日韩女优毛片在线| 91成人在线免费观看| 国产精品18久久久久久久久 | 亚洲精品中文在线观看| 69p69国产精品| 91视视频在线观看入口直接观看www| 日韩—二三区免费观看av| 亚洲色图欧美激情| 26uuu精品一区二区| 欧美日韩国产另类不卡| 99riav一区二区三区| 韩国成人在线视频| 男女男精品网站| 亚洲午夜精品久久久久久久久| 久久精品欧美一区二区三区麻豆| 欧美精品色综合| 欧美最猛性xxxxx直播| 99国产一区二区三精品乱码| 精品一区二区三区久久| 日本亚洲天堂网| 亚洲丰满少妇videoshd| 亚洲精品国产一区二区精华液 | 精品国产乱码久久久久久蜜臀| 欧美四级电影在线观看| 99精品久久只有精品| 成人精品视频.| 国产精品 欧美精品| 激情久久久久久久久久久久久久久久| 亚洲综合另类小说| 依依成人综合视频| 亚洲欧美视频在线观看| 亚洲日本欧美天堂| 一区免费观看视频| 日韩毛片一二三区| 亚洲欧美一区二区三区国产精品| 久久成人免费日本黄色| 成人动漫一区二区在线| 亚洲小说欧美激情另类| 亚洲精品久久久久久国产精华液| 亚洲视频香蕉人妖| 中文字幕一区二区三区色视频| 国产欧美日韩精品一区| 2017欧美狠狠色| 久久久久久久综合| 99精品视频免费在线观看| 丁香网亚洲国际| 99在线热播精品免费| 成人精品视频.| av影院午夜一区| 日本久久精品电影| 精品视频一区二区不卡| 欧美人妖巨大在线| 日韩一区二区三区观看| 日韩欧美高清一区| 久久精品视频免费| 亚洲一区电影777| 一区二区三区高清不卡| 日本不卡123| 国产精品一卡二| 国产成人综合亚洲网站| 99久久免费精品| 在线观看亚洲成人| 欧美一区二区在线视频| 久久久精品蜜桃| 亚洲人成伊人成综合网小说| 亚洲高清免费在线| 国内精品免费**视频| 99久久精品国产网站| 欧美亚洲综合色| 久久免费看少妇高潮| 亚洲欧洲av另类| 石原莉奈一区二区三区在线观看 | ㊣最新国产の精品bt伙计久久| 亚洲主播在线播放| 久久精品国产一区二区三| 成人涩涩免费视频| 欧美巨大另类极品videosbest | 91色.com| 91精品国产综合久久香蕉麻豆| 久久人人超碰精品| 亚洲伊人伊色伊影伊综合网| 精品中文字幕一区二区小辣椒| 成人一区二区三区视频| 欧美精品在欧美一区二区少妇| 久久久久综合网| 天天av天天翘天天综合网 | 久久精品国产亚洲aⅴ| 99免费精品视频| 欧美一区二区三区免费视频| 中文字幕亚洲电影| 日韩va亚洲va欧美va久久| 成人av资源下载| 日韩欧美国产一二三区| 依依成人综合视频| 国产精品一区二区在线播放| 欧美日韩一区视频| 中文字幕中文在线不卡住| 久久99热狠狠色一区二区| 91亚洲午夜精品久久久久久| 欧美mv日韩mv国产网站app| 一区二区欧美精品| 粉嫩高潮美女一区二区三区| 欧美一区二区三区小说| 亚洲综合在线电影| 91小视频在线观看| 国产性色一区二区| 另类小说视频一区二区| 欧美视频自拍偷拍| 亚洲曰韩产成在线| 91麻豆福利精品推荐| 国产精品情趣视频| 国产乱码精品一区二区三区av | 欧美无乱码久久久免费午夜一区 | 欧美色视频一区| 中文字幕亚洲精品在线观看| 国产盗摄一区二区三区| 日韩一区二区三区观看| 性欧美疯狂xxxxbbbb| 91黄视频在线观看| 亚洲欧美另类小说| 91免费视频网| 自拍偷拍国产精品| 91免费国产视频网站| 最新高清无码专区| 91理论电影在线观看| 国产精品毛片久久久久久| 国产99一区视频免费| 国产亚洲欧美激情| 国产高清无密码一区二区三区| 欧美成人性福生活免费看| 美腿丝袜在线亚洲一区 | 丁香亚洲综合激情啪啪综合| 国产日韩欧美不卡在线| 国产麻豆精品视频| 国产免费观看久久| 成人激情小说网站| 国产精品久久久久久久第一福利 | 亚洲一区在线播放| 欧美在线观看一二区| 午夜在线成人av| 欧美一级精品大片| 久草精品在线观看| 国产欧美一区二区三区网站| 成人性生交大片免费| 最新不卡av在线| 欧美日韩久久久一区| 精品一区二区三区在线观看 | 精品国产一二三| 国产69精品一区二区亚洲孕妇| 国产精品超碰97尤物18| 欧美午夜电影网| 久久超碰97中文字幕| 中文一区二区完整视频在线观看 | 91成人在线免费观看| 天堂影院一区二区| 久久久精品免费网站| 91九色最新地址| 久久精品久久综合| 中文av一区二区| 欧美理论在线播放| 国产精品自在欧美一区| 一区二区三区 在线观看视频|