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

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

?? phcs.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
字號:
#include <misc.h>#include <params.h>subroutine phcs(pmn     ,hmn     ,ix      ,x1)!----------------------------------------------------------------------- ! ! Purpose: ! Compute associated Legendre functions of the first kind of order m and! degree n, and the associated derivatives for arg x1.! Method: ! Compute associated Legendre functions of the first kind of order m and! degree n, and the associated derivatives for arg x1.  The associated! Legendre functions are evaluated using relationships contained in! "Tables of Normalized Associated Legendre Polynomials",! S. L. Belousov (1962).  Both the functions and their derivatives are! ordered in a linear stored rectangular array (with a large enough! domain to contain the particular wavenumber truncation defined in the! pspect common block) by column. m = 0->ptrm, and  n = m->ptrn + m !                m! The functions P (x) are normalized such that !                n!                          /   m     2!                          | [P  (x)] dx = 1/2!                          /   n!                             __! and must be multiplied by  |2  to match Belousov tables.!                           \|!                  m! The derivatives H (x) are defined as !                  n        m           2    m!                          H (x) = -(1-x ) dP (x)/dx!                           n                n!! and are evaluated using the recurrence relationship!                          _________________________!      m          m       |  2   2                     m!     H (x) = nx P (x) -  |(n - m )(2n + 1)/(2n - 1)  P   (x)!      n          n      \|                            n-1!! Modified 1/23/97 by Jim Rosinski to use real*16 arithmetic in order to ! achieve (nearly) identical values on all machines.! ! Author: CCM1! !-----------------------------------------------------------------------!! $Id: phcs.F90,v 1.1 2001/11/06 18:42:49 erik Exp $! $Author: erik $!!-----------------------------------------------------------------------  use precision  use pmgrid  use pspect  implicit none!------------------------------Arguments--------------------------------  integer , intent(in)  :: ix       ! Dimension of Legendre funct arrays  real(r8), intent(in)  :: x1       ! sin of latitude, [sin(phi), or mu]  real(r8), intent(out) ::  pmn(ix) ! Legendre function array  real(r8), intent(out) ::  hmn(ix) ! Derivative array!-----------------------------------------------------------------------!---------------------------Local variables-----------------------------#ifdef PGF90  integer, parameter :: r16 = selected_real_kind(12)#else  integer, parameter :: r16 = selected_real_kind(17)#endif  integer jmax       ! Loop limit (N+1=> 2D wavenumber limit +1)  integer nmax       ! Large enough n to envelope truncation  integer n          ! 2-D wavenumber index (up/down column)  integer ml         ! intermediate scratch variable  integer k          ! counter on terms in trig series expansion  integer n2         ! 2*n  integer m          ! zonal wavenumber index  integer nto        ! intermediate scratch variable  integer mto        ! intermediate scratch variable  integer j          ! 2-D wavenumber index in recurrence evaluation  integer nmaxm      ! loop limit in recurrence evaluation  real(r16) xtemp(3,pmmax+ptrn+1)  ! Workspace for evaluating recurrence!                                    ! relation where xtemp(m-2,n) and!                                    ! xtemp(m-1,n) contain Pmn's required !                                    ! to evaluate xtemp(m,n) (i.e.,always!                                    ! contains three adjacent columns of!                                    ! the Pmn data structure)!  real(r16) xx1        ! x1 in extended precision  real(r16) xte        ! cosine latitude [cos(phi)]  real(r16) teta       ! pi/2 - latitute (colatitude)  real(r16) an         ! coefficient on trig. series expansion  real(r16) sinpar     ! accumulator in trig. series expansion   real(r16) cospar     ! accumulator in trig. series expansion   real(r16) p          ! 2-D wavenumber (series expansion)  real(r16) q          ! intermediate variable in series expansion   real(r16) r          ! zonal wavenumber (recurrence evaluation)  real(r16) p2         ! intermediate variable in series expansion   real(r16) rr         ! twice the zonal wavenumber (recurrence)  real(r16) sqp        ! intermediate variable in series expansion   real(r16) cosfak     ! coef. on cos term in series expansion  real(r16) sinfak     ! coef. on sin term in series expansion  real(r16) ateta      ! intermediate variable in series expansion   real(r16) costet     ! cos term in trigonometric series expansion  real(r16) sintet     ! sin term in trigonometric series expansion!  real(r16) t          ! intermediate variable (recurrence evaluation)  real(r16) wm2        ! intermediate variable (recurrence evaluation)  real(r16) wmq2       ! intermediate variable (recurrence evaluation)  real(r16) w          ! intermediate variable (recurrence evaluation)  real(r16) wq         ! intermediate variable (recurrence evaluation)  real(r16) q2         ! intermediate variable (recurrence evaluation)  real(r16) wt         ! intermediate variable (recurrence evaluation)  real(r16) q2d        ! intermediate variable (recurrence evaluation)  real(r16) cmn        ! cmn  recurrence coefficient (see Belousov)  real(r16) xdmn       ! dmn  recurrence coefficient (see Belousov)  real(r16) emn        ! emn  recurrence coefficient (see Belousov)  real(r16) n2m1       ! n2 - 1 in extended precision  real(r16) n2m3       ! n2 - 3 in extended precision  real(r16) n2p1nnm1   ! (n2+1)*(n*n-1) in extended precision  real(r16) twopmq     ! p + p - q in extended precision!-----------------------------------------------------------------------!! Begin procedure by evaluating the first two columns of the Legendre! function matrix (i.e., all n for m=0,1) via a trigonometric series ! expansion (see eqs. 19 and 21 in Belousov, 1962).  Note that indexing! is offset by one (e.g., m index for wavenumber m=0 is 1 and so on)! Setup first ...!  xx1  = x1  jmax = ptrn + 1  nmax = pmmax + jmax  xte = sqrt(1.-xx1*xx1)  teta = acos(xx1)  an = 1.  xtemp(1,1) = 0.5    ! P00!! begin loop over n (2D wavenumber, or degree of associated Legendre ! function) beginning with n=1 (i.e., P00 was assigned above)! note n odd/even distinction yielding 2 results per n cycle!  do n=2,nmax     sinpar = 0.     cospar = 0.     ml = n     p = n - 1     p2 = p*p     sqp = 1./sqrt(p2+p)     an = an*sqrt(1. - 1./(4.*p2))     cosfak = 1.     sinfak = p*sqp     do k=1,ml,2        q = k - 1        twopmq = p + p - q        ateta = (p-q)*teta        costet = cos(ateta)        sintet = sin(ateta)        if (n==k) costet = costet*0.5        if (k/=1) then           cosfak = (q-1.)/q*(twopmq+2.)/(twopmq+1.)*cosfak           sinfak = cosfak*(p-q)*sqp        end if        cospar = cospar + costet*cosfak        sinpar = sinpar + sintet*sinfak     end do     xtemp(1,n)   = an*cospar      ! P0n vector     xtemp(2,n-1) = an*sinpar      ! P1n vector  end do!! Assign Legendre functions and evaluate derivatives for all n and m=0,1!  pmn(1) = 0.5  pmn(1+jmax) = xtemp(2,1)  hmn(1) = 0.  hmn(1+jmax) = xx1*xtemp(2,1)  do n=2,jmax     pmn(n) = xtemp(1,n)     pmn(n+jmax) = xtemp(2,n)     n2 = n + n     n2m1 = n2 - 1     n2m3 = n2 - 3     n2p1nnm1 = (n2+1)*(n*n-1)     hmn(n) = (n-1)*(xx1*xtemp(1,n)-sqrt(n2m1/n2m3)*xtemp(1,n-1))     hmn(n+jmax) = n*xx1*xtemp(2,n)-sqrt(n2p1nnm1/n2m1)*xtemp(2,n-1)  end do!! Evaluate recurrence relationship for remaining Legendre functions! (i.e., m=2 ... PTRM) and associated derivatives (see eq 17, Belousov)!  do m=3,pmmax     r = m - 1     rr = r + r     xtemp(3,1) = sqrt(1.+1./rr)*xte*xtemp(2,1)     nto = (m-1)*jmax     pmn(nto+1) = xtemp(3,1)     hmn(nto+1) = r*xx1*xtemp(3,1)     nmaxm = nmax - m!! Loop over 2-D wavenumber (i.e., degree of Legendre function)! Pmn's and Hmn's for current zonal wavenumber, r!     do j=2,nmaxm        mto = nto + j        t = j - 1        q = rr + t - 1        wm2 = q + t        w = wm2 + 2        wq = w*q        q2 = q*q - 1        wmq2 = wm2*q2        wt = w*t        q2d = q2 + q2        cmn = sqrt((wq*(q-2.))/(wmq2-q2d))        xdmn = sqrt((wq*(t+1.))/wmq2)        emn = sqrt(wt/((q+1.)*wm2))        xtemp(3,j) = cmn*xtemp(1,j) - xx1*(xdmn*xtemp(1,j+1)-emn*xtemp(3,j-1))        pmn(mto) = xtemp(3,j)        hmn(mto) = (r+t)*xx1*xtemp(3,j) - sqrt(wt*(q+1.)/wm2)*xtemp(3,j-1)     end do!! shift Pmn's to left in workspace (setup for next recurrence pass)!!++pjr! not initialized above     xtemp(2,nmax) = 0.     do j=nmaxm,nmax        xtemp(3,j) = 0.     end do!--pjr     do n=1,nmax        xtemp(1,n) = xtemp(2,n)        xtemp(2,n) = xtemp(3,n)     end do  end do  returnend subroutine phcs

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三| 欧美久久久影院| |精品福利一区二区三区| 99久久免费精品高清特色大片| 国产精品热久久久久夜色精品三区| 成人av第一页| 一区二区三区精品在线| 欧美理论电影在线| 国产一区亚洲一区| 亚洲色图20p| 欧美精品在线视频| 国产一区视频在线看| 亚洲美女视频在线观看| 欧美挠脚心视频网站| 国产一区二区三区免费观看| 中文字幕在线观看一区二区| 91电影在线观看| 国产综合色视频| 亚洲精品成人少妇| 欧美电影免费观看高清完整版在| 粉嫩欧美一区二区三区高清影视| 一区二区三区不卡在线观看| 日韩一区二区电影网| 99视频精品免费视频| 天堂在线亚洲视频| 日本一区二区三区四区在线视频| 91精彩视频在线观看| 精品亚洲欧美一区| 亚洲男人的天堂网| 精品乱人伦小说| 91精品福利视频| 国产成人av资源| 日韩高清不卡一区二区三区| 中文字幕精品三区| 777a∨成人精品桃花网| av资源站一区| 狠狠久久亚洲欧美| 天天操天天色综合| 国产精品久久久久影院| 日韩欧美视频在线| 欧美日韩色综合| 99久久婷婷国产综合精品电影| 久久精品国产99国产| 一个色综合网站| 国产欧美精品一区二区色综合朱莉 | wwww国产精品欧美| 91成人国产精品| a级精品国产片在线观看| 精品亚洲免费视频| 日韩不卡一区二区| 亚洲一区二区三区四区在线 | 国产精品美女www爽爽爽| 678五月天丁香亚洲综合网| 99久久99久久免费精品蜜臀| 黑人精品欧美一区二区蜜桃| 午夜精品123| 亚洲小说欧美激情另类| 亚洲欧美aⅴ...| 国产精品狼人久久影院观看方式| 26uuu精品一区二区三区四区在线| 欧美视频一区二区三区四区 | 日韩vs国产vs欧美| 亚洲一区二区在线观看视频| 国产精品天天看| 久久精品视频免费观看| 精品国产乱码久久| 日韩欧美久久一区| 日韩一区二区在线看| 在线观看91精品国产麻豆| 精品污污网站免费看| 欧美视频你懂的| 在线精品视频一区二区三四| 91片在线免费观看| 色乱码一区二区三区88| 91香蕉视频mp4| 91免费看片在线观看| av在线一区二区三区| bt欧美亚洲午夜电影天堂| 99久久伊人久久99| 91原创在线视频| 在线观看av不卡| 欧美日韩视频专区在线播放| 欧美人妖巨大在线| 日韩欧美精品在线视频| 精品sm捆绑视频| 国产精品丝袜一区| 综合久久久久久| 亚洲风情在线资源站| 日韩电影免费在线看| 久久精品国产在热久久| 国产精品系列在线观看| 成人h精品动漫一区二区三区| 99在线精品一区二区三区| 欧美在线一二三| 91精品国产综合久久国产大片| 精品日韩99亚洲| 国产精品久久免费看| 亚洲主播在线播放| 毛片一区二区三区| 成人手机电影网| 欧美伊人久久久久久午夜久久久久| 欧美日韩精品一区二区天天拍小说| 日韩免费成人网| 国产精品久久午夜夜伦鲁鲁| 亚洲一区二区三区四区五区中文 | 日本伊人午夜精品| 国产一区二区免费在线| 97久久超碰国产精品| 91精品国产91久久久久久一区二区| 精品久久久久99| 亚洲另类在线视频| 青青草精品视频| 99久久国产综合精品女不卡| 7777精品伊人久久久大香线蕉的| 久久综合一区二区| 亚洲国产一区视频| 狠狠色丁香婷婷综合| 在线免费不卡电影| 国产亚洲婷婷免费| 三级一区在线视频先锋| av在线免费不卡| 欧美一区二区三区成人| 亚洲人快播电影网| 国产一区二区主播在线| 欧美综合久久久| 国产精品全国免费观看高清| 日韩在线a电影| 97久久精品人人爽人人爽蜜臀 | 国产suv精品一区二区三区| 欧美主播一区二区三区| 日本一二三不卡| 麻豆91免费观看| 欧美私人免费视频| 国产精品美女久久久久av爽李琼| 蜜桃久久精品一区二区| 在线观看视频一区二区欧美日韩| 国产亚洲女人久久久久毛片| 日本美女一区二区三区| 色噜噜狠狠色综合欧洲selulu| 久久久精品综合| 免费久久精品视频| 欧美婷婷六月丁香综合色| 中文字幕在线不卡视频| 国产一区在线视频| 91精品国产91久久综合桃花| 亚洲午夜在线视频| 99国产欧美另类久久久精品| 久久婷婷国产综合国色天香| 免费观看一级欧美片| 欧美优质美女网站| 亚洲激情图片一区| 成人av在线资源网| 中文字幕第一区二区| 国产精品一区二区视频| 久久夜色精品一区| 激情综合色丁香一区二区| 91精品国产欧美一区二区18 | 中文字幕在线不卡一区| 国产成人午夜精品影院观看视频| 久久综合中文字幕| 激情另类小说区图片区视频区| 欧美二区三区的天堂| 午夜激情一区二区| 欧美区在线观看| 青青草成人在线观看| 日韩美一区二区三区| 精品一区免费av| 精品久久久久香蕉网| 国产精品一区二区你懂的| 久久免费美女视频| 成人深夜在线观看| 国产精品国产成人国产三级| 99麻豆久久久国产精品免费优播| 中文字幕在线视频一区| 色一情一伦一子一伦一区| 亚洲成人激情av| 欧美精品v国产精品v日韩精品| 日韩精品成人一区二区三区| 欧美一级二级在线观看| 精品亚洲成a人在线观看 | 亚洲人成在线观看一区二区| 色94色欧美sute亚洲线路二| 亚洲成人在线免费| 日韩女优制服丝袜电影| 国产麻豆91精品| 亚洲人快播电影网| 欧美喷潮久久久xxxxx| 久久草av在线| 国产欧美精品日韩区二区麻豆天美| av男人天堂一区| 亚洲午夜电影在线| 欧美成人激情免费网| 国产成人精品影视| 亚洲一区二区三区中文字幕 | 欧美一区二区三区啪啪| 激情图区综合网| 亚洲美女电影在线| 日韩欧美一卡二卡| 97久久精品人人做人人爽| 日本亚洲天堂网|