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

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

?? helmholtz.f90

?? 集合卡爾曼濾波(EnKF) 數據同化方法可以避免了EKF 中協方差演變方程預報過程中出現的計算不準確和關于協方差矩陣的大量數據的存儲問題,最主要的是可以有效的控制估計誤差方差的增長,改善預報的效果。
?? F90
字號:
!! Copyright (C) 2008 Pavel Sakov!! !! This file is part of EnKF-Matlab. EnKF-Matlab is a free software. See !! LICENSE for details.! File:           helmholtz.f90!! Created:        31/08/2007!! Last modified:  08/02/2008!! Author:         Pavel Sakov!                 CSIRO Marine and Atmospheric Research!                 NERSC!! Purpose:        Fortran code for QG model. Solver for Helmholtz equation.!! Description:    !! Revisions:module helmholtz_mod  use utils_mod  implicit none  save  public helmholtz  integer, private :: iq  real(8), allocatable, dimension(:) :: q  integer, parameter, private :: LEN20 = 20  integer, dimension(LEN20), private :: nst, imx, jmx  real(8), dimension(LEN20), private :: hcontains  subroutine helmholtz(G, F, zk2, NX1, NY1, M, H1, NU1, NU2, NCYC, NX, MY, P)    !    ! Solves helmholtz equation:    ! (\nabla^2 - zk2) P  = F, with Dirichlet B.C. The B.C. and the initial    ! guess for the solution are given in the array G.    !    ! The dimension of the arrays should be:    ! (NX, MY) = (p * 2^(M - 1) + 1, q * 2^(M - 1) + 1).    ! p and q are small integers, equal to the number of grid boxes in the    ! coarsest grid used in the multi-grid solution.    !    ! Note that number of boxes on a side of the grid is equal to the number    ! of grid points on this side - 1.    !    ! In the code below p = NX1; q = NX2.                                       **    ! M is the finest level of the multigrid. M=1 means use (p,q)     **    ! boxes; M=2 means use twice as many boxes on each lide of grid.  **    !    ! H1 is the delx for the coarsest grid. (NU1,NU2) should be (1,2). **    ! NCYCL should be 3-5 for a bad initial guess, and 1 for a good   **    ! initial guess.                                                  **    ! The dimension of the work array q should be NX * MY * 3.          **    !    real(8), intent(in), dimension(NX, MY) :: G, F    real(8), intent(in) :: zk2    integer, intent(in) :: NX1, NY1, M    real(8), intent(in) :: H1    integer, intent(in) :: NU1, NU2, NCYC, NX, MY    real(8), intent(out), dimension(NX, MY) :: P    integer :: ir    integer :: k, ksq    real(8) :: wu    integer :: ic, km    allocate(q(NX * MY * 3))    iq = 1    do k = 1, M       ksq = 2 ** (k - 1)       call grdfn(k, NX1 * ksq + 1, NY1 * ksq + 1, H1 / ksq)       call grdfn(k + M, NX1 * ksq + 1, NY1 * ksq + 1, H1 / ksq)    end do    wu = 0.0d0    call putf1(M, G, 0)    call putf1(2 * M, F, 2)    do ic = 1, NCYC      do km = 1, M         k = 1 + M - km         if (k /= M) then            call putz(k)         end if         do ir = 1, NU1            call relax(k, k + M, wu, M, zk2)         end do         if (k > 1) then            call rescal(k, k + M, k + M - 1, zk2)         end if      end do      do k = 1, M         do ir = 1, NU2            call relax(k, k + M, wu, M, zk2)         end do         if (k < M) then            call intadd(k, k + 1)         end if      end do   end do   call getsol(M, P)   deallocate(q) end subroutine helmholtz subroutine grdfn(k, M, N, hh)   integer, intent(in) :: k, M, N   real(8), intent(in) :: hh   nst(k) = iq   imx(k) = M   jmx(k) = N   h(k) = hh   iq = iq + M * N end subroutine grdfn subroutine key(k, ist, M, N, hh)   integer, intent(in) :: k   integer, dimension(:), intent(out) :: ist   integer, intent(out) :: M, N   real(8), intent(out) :: hh   integer :: is, i   M = imx(k)   N = jmx(k)   is = nst(k) - N - 1   do i = 1, M      is = is + N      ist(i) = is   end do   hh = h(k) end subroutine key subroutine putf1(k, F, nh)   integer, intent(in) :: k   real(8), dimension(:, :), intent(in) :: F   integer, intent(in) :: nh   integer, dimension(200) :: ist   integer :: ii, jj   real(8) :: hh, hh2   integer :: i, j   call key (k, ist, ii, jj, hh)   hh2 = hh ** nh   do i = 1, ii      do j = 1, jj         q(ist(i) + j) = F(i, j) * hh2      end do   end do end subroutine putf1 subroutine getsol(k, P)   integer, intent(in) :: k   real(8), dimension(:, :), intent(out) :: P   integer, dimension(200) :: ist   integer :: ii, jj   real(8) :: hh   integer :: i, j   call key(k, ist, ii, jj, hh)   do i = 1, ii      do j = 1, jj         P(i, j) = q(ist(i) + j)      end do   end do end subroutine getsol subroutine putz(k)   integer, intent(in) :: k   integer, dimension(200) :: ist   integer :: ii, jj   real(8) :: hh   integer :: i, j   call key( k, ist, ii, jj, hh)   do  i = 1, ii      do j = 1, jj         q(ist(i) + j) = 0.0d0      end do   end do end subroutine putz subroutine relax(k, krhs, wu, M, zk2)   integer, intent(in) :: k   integer, intent(in) :: krhs   real(8), intent(inout) :: wu   integer, intent(in) :: M   real(8), intent(in) :: zk2   integer, dimension(200) :: ist, irhs   integer :: ii, jj   real(8) :: hh   integer:: i1, j1, ir, iq, im, ip   real(8) diag   integer :: i, j   real(8) :: a   call key(k, ist, ii, jj, hh)   call key(krhs, irhs, ii, jj, hh)   diag = 4.0d0 + zk2 * hh ** 2   i1 = ii - 1   j1 = jj - 1   do i = 2, i1      ir = irhs(i)      iq = ist(i)      im = ist(i - 1)      ip = ist(i + 1)      do j = 2, j1         a = q(ir + j) - q(iq + j + 1) - q(iq + j - 1) - q(im + j) - q(ip + j)         q(iq + j) = - a / diag      end do   end do   wu = wu + 4.0d0 ** (k - M) end subroutine relax subroutine intadd(kc, kf)   integer, intent(in) :: kc   integer, intent(in) :: kf   integer, dimension(200) :: istc, istf   real(8) :: hc, hf   integer :: iic, jjc, iif, jjf   integer :: ic, jc, if, jf   integer :: ifo, ifm, ico, icm   real(8) :: a, am   call key(kc, istc, iic, jjc, hc)   call key(kf, istf, iif, jjf, hf)   do ic = 2, iic      if = 2 * ic - 1      jf = 1      ifo = istf(if)      ifm = istf(if - 1)      ico = istc(ic)      icm = istc(ic - 1)      do jc = 2, jjc         jf = jf + 2         a = 0.5d0 * (q(ico + jc) + q(ico + jc - 1))         am = 0.5d0 * (q(icm + jc) + q(icm + jc - 1))         q(ifo+jf) = q(ifo + jf) + q(ico + jc)         q(ifm + jf) = q(ifm + jf) + 0.5d0 * (q(ico + jc) + q(icm + jc))         q(ifo + jf - 1) = q(ifo + jf - 1) + a         q(ifm + jf - 1)  =  q(ifm + jf - 1) + 0.5d0 * (a + am)      end do   end do end subroutine intadd subroutine rescal(kf, krf, krc, zk2)   integer, intent(in) :: kf, krf, krc   real(8), intent(in) :: zk2   integer, dimension(200) :: iuf, irf, irc   integer :: iif, jjf, iic, jjc, iic1, jjc1   integer :: if, ic, jf, jc   integer :: icr, ifo, ifm, ifr, ifp   real(8) :: hf, hc   real(8) :: s   real(8) :: diag   call key(kf, iuf, iif, jjf, hf)   call key(krf, irf, iif, jjf, hf)   call key(krc, irc, iic, jjc, hc)   diag = 4.0d0 + zk2 * hf ** 2   iic1 = iic - 1   jjc1 = jjc - 1   do ic = 2, iic1      icr = irc(ic)      if = 2 * ic - 1      jf = 1      ifr = irf(if)      ifo = iuf(if)      ifm = iuf(if - 1)      ifp = iuf(if + 1)      do jc = 2, jjc1         jf = jf + 2         s = q(ifo + jf + 1) + q(ifo + jf - 1) + q(ifm + jf) + q(ifp + jf)         q(icr + jc) = 4.0d0 * (q(ifr + jf) - s + diag * q(ifo + jf))      end do   end do end subroutine rescalend module helmholtz_mod

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久超级碰视频| 中文字幕免费一区| 91丝袜美女网| 国产91露脸合集magnet| 国产精品一区二区男女羞羞无遮挡| 亚洲高清视频中文字幕| 亚洲乱码国产乱码精品精98午夜 | 色拍拍在线精品视频8848| 国产精品资源在线看| 韩国精品主播一区二区在线观看| 久久99精品久久久久久| 精品一区二区在线观看| 国产激情视频一区二区在线观看 | 亚洲欧洲日产国码二区| 亚洲免费资源在线播放| 一区二区三区丝袜| 五月开心婷婷久久| 国内精品国产成人国产三级粉色| 捆绑变态av一区二区三区| 激情小说欧美图片| 成人丝袜高跟foot| 色噜噜狠狠一区二区三区果冻| 色爱区综合激月婷婷| 欧美色图片你懂的| 欧美一区二区免费观在线| 欧美一二三四在线| 日本一区二区三区在线观看| 亚洲视频一区二区在线| 亚洲va韩国va欧美va| 理论片日本一区| 成人免费毛片片v| 欧美日韩黄色一区二区| 欧美精品一区二区三区蜜臀| 国产精品情趣视频| 午夜精品福利一区二区三区蜜桃| 精品一区二区三区免费观看| 99国产欧美另类久久久精品| 欧美日高清视频| 国产日本欧洲亚洲| 亚洲chinese男男1069| 激情小说亚洲一区| 91久久精品一区二区三区| 日韩免费电影一区| 洋洋成人永久网站入口| 国产在线精品一区二区三区不卡| 91网站最新地址| 久久一二三国产| 亚洲综合在线五月| 夫妻av一区二区| 91精品一区二区三区久久久久久| 国产精品不卡在线观看| 青青草成人在线观看| 一本大道久久a久久综合婷婷| 日韩女优制服丝袜电影| 亚洲一级二级在线| 成人三级伦理片| 日韩欧美成人激情| 午夜精品久久久久久久99水蜜桃| 成人午夜短视频| 久久午夜电影网| 免费成人在线影院| 精品视频1区2区| 亚洲视频一二区| 不卡的av电影| 国产精品污www在线观看| 久久66热偷产精品| 欧美一区二区美女| 国产精品一品二品| 日韩精品在线看片z| 三级欧美韩日大片在线看| 色狠狠色噜噜噜综合网| 国产精品蜜臀在线观看| 国产乱妇无码大片在线观看| 日韩免费看的电影| 久久国产免费看| 欧美成人精精品一区二区频| 免费成人深夜小野草| 欧美一区二区三区免费| 日韩av网站免费在线| 337p亚洲精品色噜噜噜| 丝袜诱惑制服诱惑色一区在线观看| 在线观看区一区二| 亚洲黄色片在线观看| 欧美午夜电影在线播放| 亚洲曰韩产成在线| 欧美日高清视频| 美女性感视频久久| 久久新电视剧免费观看| 国产精品小仙女| 国产精品的网站| 欧亚洲嫩模精品一区三区| 亚洲在线成人精品| 91.com视频| 国产制服丝袜一区| 中文字幕av一区二区三区免费看| 成人免费av网站| 一区二区三区四区中文字幕| 欧美日韩你懂得| 久久99精品久久久久久国产越南| 久久综合九色综合97_久久久| 国产a视频精品免费观看| 亚洲欧洲无码一区二区三区| 在线观看免费视频综合| 日本女人一区二区三区| 国产亚洲欧美日韩日本| 色婷婷久久综合| 欧美a级理论片| 国产精品丝袜黑色高跟| 日本国产一区二区| 久久精品久久综合| 综合电影一区二区三区| 欧美放荡的少妇| 成人黄色电影在线| 亚洲高清久久久| 久久久久国产精品人| 91免费看片在线观看| 久久aⅴ国产欧美74aaa| 亚洲免费在线播放| 欧美哺乳videos| 色婷婷精品大在线视频| 国精产品一区一区三区mba视频| 中文字幕亚洲综合久久菠萝蜜| www国产成人免费观看视频 深夜成人网| 成人动漫视频在线| 美女视频网站久久| 亚洲欧美色图小说| 亚洲精品一区二区三区蜜桃下载| 色综合久久中文字幕| 久草这里只有精品视频| 亚洲一区免费观看| 欧美国产精品一区二区三区| 777午夜精品免费视频| 91麻豆免费观看| 国产成人激情av| 蜜桃精品视频在线| 亚洲成人综合网站| 亚洲黄色免费电影| 中文字幕亚洲欧美在线不卡| 久久久久久久久久美女| 欧美一区在线视频| 在线观看不卡一区| 9i看片成人免费高清| 国产乱人伦精品一区二区在线观看| 午夜私人影院久久久久| 亚洲免费看黄网站| 中文字幕一区二区5566日韩| 久久精品人人做| 精品国产乱码久久久久久牛牛| 欧美日韩国产精选| 欧美亚洲国产一区在线观看网站| 不卡av在线网| jlzzjlzz亚洲日本少妇| 成人精品国产免费网站| 成人丝袜18视频在线观看| 国产成人精品一区二区三区四区 | 成人少妇影院yyyy| 国产福利不卡视频| 国产精品一区二区三区网站| 国产米奇在线777精品观看| 麻豆精品一区二区三区| 久久精品国产精品青草| 黑人巨大精品欧美一区| 青草国产精品久久久久久| 人妖欧美一区二区| 日本不卡123| 久久精品久久综合| 国产麻豆视频一区| 成人免费av资源| 在线免费观看成人短视频| 91久久免费观看| 91精品国产91久久久久久最新毛片| 欧美一级视频精品观看| 久久综合久久综合久久综合| 国产欧美精品一区aⅴ影院 | 成人高清av在线| 91在线视频网址| 欧美日韩和欧美的一区二区| 777午夜精品视频在线播放| 欧美tickling网站挠脚心| 久久精品视频一区二区| 综合激情成人伊人| 日韩综合一区二区| 国产激情一区二区三区| 色欧美片视频在线观看在线视频| 欧美日韩一二三| 精品国产第一区二区三区观看体验| 欧美—级在线免费片| 亚洲一区二区视频在线观看| 青青草原综合久久大伊人精品 | 欧美嫩在线观看| 欧美精品一区二区三区很污很色的| 中文字幕乱码亚洲精品一区| 亚洲综合无码一区二区| 老色鬼精品视频在线观看播放| 9i在线看片成人免费| 欧美一区二区三区在| 国产精品色呦呦| 久久精品99国产精品| 色88888久久久久久影院按摩| 日韩精品中文字幕在线一区|