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

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

?? pft_module.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
字號:
#include <misc.h>module pft_module!BOP!! !MODULE: dp_coupling --- dynamics-physics coupling module!!! !PUBLIC MEMBER FUNCTIONS:      public pft2d, pft_cf, rfftmlt, fftfax !! !DESCRIPTION:!!      This module provides fast-Fourier transforms!!      \begin{tabular}{|l|l|} \hline \hline!         pft2d     &  \\ \hline!         pft\_cf   &  \\ \hline!         rfftmlt   &  \\ \hline!         fftfax    &  \\ \hline!                                \hline!      \end{tabular}!! !REVISION HISTORY:!   01.01.30   Lin        Integrated into this module!   01.03.26   Sawyer     Added ProTeX documentation!!EOP!-----------------------------------------------------------------------CONTAINS!-----------------------------------------------------------------------!BOP! !IROUTINE: pft2d --- Two-dimensional fast Fourier transform!! !INTERFACE:  subroutine pft2d(p, s, damp, im,  jp, ifax, trigs)! !USES: use precision implicit none! !INPUT PARAMETERS:      integer im                   ! Total X dimension      integer jp                   ! Total Y dimension      integer ifax(13)             ! FFT internal information      real(r8)   s(jp)             ! 3-point algebraic filter      real(r8)  damp(im,jp)        ! FFT damping coefficients      real(r8) trigs(3*im/2+1)! !INPUT/OUTPUT PARAMETERS:      real(r8)  p(im,jp)           ! Array to be polar filtered! !DESCRIPTION:!!   Perform a two-dimensional fast Fourier transformation.!! !REVISION HISTORY:!   01.01.30   Lin          Put into this module!   01.03.26   Sawyer       Added ProTeX documentation!!EOP!-----------------------------------------------------------------------!BOC!! !LOCAL VARIABLES:      real(r8) rsc, bt       integer  i, j, n, nj!Local Auto arrays:      real(r8) ptmp(0:im+1)      real(r8) q1(  im+2, jp)      real(r8) q2( (im+1)*jp )      integer  jf(jp)      nj = 0      do 200 j=1,jp#if defined ( ALT_PFT )      if(s(j) > 1.01) then#else      if(s(j) > 1.01 .and. s(j) .le. 4.) then         rsc = 1./s(j)         bt  = 0.5*(s(j)-1.)         do i=1,im            ptmp(i) = p(i,j)         enddo           ptmp(   0) = p(im,j)           ptmp(im+1) = p(1 ,j)         do i=1,im            p(i,j) = rsc * ( ptmp(i) + bt*(ptmp(i-1)+ptmp(i+1)) )         enddo      elseif(s(j) .gt. 4.) then#endif! Packing for FFT            nj  = nj + 1         jf(nj) = j         do i=1,im            q1(i,nj) = p(i,j)         enddo            q1(im+1,nj) = 0.            q1(im+2,nj) = 0.      endif200   continue      if( nj == 0) return      call rfftmlt(q1,  q2, trigs, ifax, 1, im+2, im, nj, -1)      do n=1,nj         do i=5,im+2            q1(i,n) = q1(i,n) * damp(i-2,jf(n))         enddo      enddo      call rfftmlt(q1, q2, trigs, ifax, 1, im+2, im, nj, 1)      do n=1,nj         do i=1,im            p(i,jf(n)) = q1(i,n)         enddo      enddo      return!EOC end subroutine pft2d!-----------------------------------------------------------------------!-----------------------------------------------------------------------!BOP! !IROUTINE: pft_cf --- Calculate algebraic and FFT polar filters!! !INTERFACE:  subroutine pft_cf(im, jm, js2g0, jn2g0, jn1g1, sc, se, dc, de,          &                   cosp, cose, ycrit)! !USES: use precision implicit none! !INPUT PARAMETERS:      integer im                      ! Total X dimension      integer jm                      ! Total Y dimension      integer js2g0                   ! j south limit ghosted 0 (SP: from 2)      integer jn2g0                   ! j north limit ghosted 0 (NP: from jm-1)      integer jn1g1                   ! j north limit ghosted 1 (starts jm)      real (r8)   cosp(jm)            ! cosine array      real (r8)   cose(jm)            ! cosine array      real (r8)   ycrit               ! critical value! !OUTPUT PARAMETERS:      real (r8)   sc(js2g0:jn2g0)     ! Algebric filter at center      real (r8)   se(js2g0:jn1g1)     ! Algebric filter at edge      real (r8)   dc(im,js2g0:jn2g0)  ! FFT filter at center      real (r8)   de(im,js2g0:jn1g1)  ! FFT filter at edge! !DESCRIPTION:!!   Compute coefficients for the 3-point algebraic and the FFT!   polar filters.!! !REVISION HISTORY:!!   99.01.01   Lin          Creation!   99.08.20   Sawyer/Lin   Changes for SPMD mode!   01.01.30   Lin          Put into this module!   01.03.26   Sawyer       Added ProTeX documentation!!EOP!-----------------------------------------------------------------------!BOC!! !LOCAL VARIABLES:      integer i, j      real (r8)   dl, coszc, cutoff, phi, damp      real (r8)  pi      pi = 4.d0 * datan(1.d0)      coszc = cos(ycrit*pi/180.)! INIT fft polar coefficients:      dl = pi/dble(im)      cutoff = 1.e-20      do j=js2g0,jn2g0         do i=1,im            dc(i,j) = 1.         enddo      enddo      do j=js2g0,jn1g1         do i=1,im            de(i,j) = 1.         enddo      enddo!     write(6,*) '3-point polar filter coefficients:'!************! Cell center!************      do j=js2g0,jn2g0            sc(j) = (coszc/cosp(j))**2#if defined ( ALT_PFT )         if( sc(j) > 1. ) then#else         if(sc(j) > 1. .and. sc(j) .le. 2.0) then            sc(j) =  1. +  (sc(j)-1.)/(sc(j)+1.)         elseif(sc(j) .gt. 2. .and. sc(j) .le. 4.) then            sc(j) =  1. +  sc(j)/(8.-sc(j))         elseif(sc(j) .gt. 4. ) then#endif! FFT filter            do i=1,im/2               phi = dl * i               damp = min((cosp(j)/coszc)/sin(phi), 1.)**2               if(damp .lt. cutoff) damp = 0.               dc(2*i-1,j) = damp               dc(2*i  ,j) = damp            enddo         endif      enddo!************! Cell edges!************      do j=js2g0,jn1g1            se(j) = (coszc/cose(j))**2#if defined ( ALT_PFT )         if( se(j) > 1. ) then#else         if(se(j) > 1. .and. se(j) .le. 2.0 ) then            se(j) =  1. +  (se(j)-1.)/(se(j)+1.)         elseif(se(j) .gt. 2. .and. se(j) .le. 4.) then            se(j) =  1. +  se(j)/(8.-se(j))         elseif(se(j) .gt. 4. ) then#endif! FFT            do i=1,im/2               phi = dl * i               damp = min((cose(j)/coszc)/sin(phi), 1.)**2               if(damp < cutoff) damp = 0.               de(2*i-1,j) = damp               de(2*i  ,j) = damp            enddo         endif      enddo!EOC end subroutine pft_cf!-----------------------------------------------------------------------!-----------------------------------------------------------------------!BOP! !IROUTINE: rfftmlt --- Apply fast Fourier transform!! !INTERFACE:  subroutine rfftmlt(a,work,trigs,ifax,inc,jump,n,lot,isign)! !USES: use precision! !DESCRIPTION:!!   Apply the fast Fourier transform.  If CPP token SGI_FFT is!   set, SGI libraries will be used.  Otherwise the Fortran code!   is inlined.!! !REVISION HISTORY:!!   99.11.24   Sawyer       Added wrappers for SGI!   01.03.26   Sawyer       Added ProTeX documentation!!EOP!-----------------------------------------------------------------------!BOC#if defined( SGI_FFT )!! WS 99.11.24 : Added SGI wrappers!      implicit none      integer inc, jump, n, lot, isign      real(r8)   a(jump,lot)      real(r8)   trigs(1)      real(r8)   work(1)                       ! Not used; here for plug reason      integer ifax(*)! Local      integer*4 iisign,in,iinc,ijump,ilot      integer i, j      real(r8) scale!-----convert to i4      iisign = isign      iinc = inc      ijump = jump      in = n      ilot = lot      if( iisign < 0 ) then!-----forward          call dzfftm1du (iisign,in,ilot,a,iinc,ijump,trigs)       endif      if( iisign > 0 ) then!-----backward          call zdfftm1du (iisign,in,ilot,a,iinc,ijump,trigs)          scale = 1.0/float(n)          do j=1,lot             do i=1,jump                a(i,j) = scale*a(i,j)             enddo          enddo       endif#else!! Default f77 version!      real(r8) a(jump*lot)      real(r8) work((n+1)*lot)      real(r8) trigs(3*n/2+1)      integer ifax(13) !     SUBROUTINE "FFT991" - MULTIPLE REAL/HALF-COMPLEX PERIODIC!     FAST FOURIER TRANSFORM !     SAME AS FFT99 EXCEPT THAT ORDERING OF DATA CORRESPONDS TO!     THAT IN MRFFT2 !     PROCEDURE USED TO CONVERT TO HALF-LENGTH COMPLEX TRANSFORM!     IS GIVEN BY COOLEY, LEWIS AND WELCH (J. SOUND VIB., VOL. 12!     (1970), 315-337) !     A IS THE ARRAY CONTAINING INPUT AND OUTPUT DATA!     WORK IS AN AREA OF SIZE (N+1)*LOT!     TRIGS IS A PREVIOUSLY PREPARED LIST OF TRIG FUNCTION VALUES!     IFAX IS A PREVIOUSLY PREPARED LIST OF FACTORS OF N/2!     INC IS THE INCREMENT WITHIN EACH DATA 'VECTOR'!         (E.G. INC=1 FOR CONSECUTIVELY STORED DATA)!     JUMP IS THE INCREMENT BETWEEN THE START OF EACH DATA VECTOR!     N IS THE LENGTH OF THE DATA VECTORS!     LOT IS THE NUMBER OF DATA VECTORS!     ISIGN = +1 FOR TRANSFORM FROM SPECTRAL TO GRIDPOINT!           = -1 FOR TRANSFORM FROM GRIDPOINT TO SPECTRAL !     ORDERING OF COEFFICIENTS:!         A(0),B(0),A(1),B(1),A(2),B(2),...,A(N/2),B(N/2)!         WHERE B(0)=B(N/2)=0; (N+2) LOCATIONS REQUIRED!!     ORDERING OF DATA:!         X(0),X(1),X(2),...,X(N-1)!!     VECTORIZATION IS ACHIEVED ON CRAY BY DOING THE TRANSFORMS IN!     PARALLEL !     *** N.B. N IS ASSUMED TO BE AN EVEN NUMBER!!     DEFINITION OF TRANSFORMS:!     ------------------------- !     ISIGN=+1: X(J)=SUM(K=0,...,N-1)(C(K)*EXP(2*I*J*K*PI/N))!         WHERE C(K)=A(K)+I*B(K) AND C(N-K)=A(K)-I*B(K)!!     ISIGN=-1: A(K)=(1/N)*SUM(J=0,...,N-1)(X(J)*COS(2*J*K*PI/N))!               B(K)=-(1/N)*SUM(J=0,...,N-1)(X(J)*SIN(2*J*K*PI/N))       nfax=ifax(1)      nx=n+1      nh=n/2      ink=inc+inc      if (isign.eq.+1) go to 30 !     IF NECESSARY, TRANSFER DATA TO WORK AREA      igo=50      if (mod(nfax,2).eq.1) goto 40      ibase=1      jbase=1      do 20 l=1,lot      i=ibase      j=jbase!DIR$ IVDEP      do 10 m=1,n      work(j)=a(i)      i=i+inc      j=j+1   10 continue      ibase=ibase+jump      jbase=jbase+nx   20 continue       igo=60      go to 40 !     PREPROCESSING (ISIGN=+1)    30 continue      call fft99a(a,work,trigs,inc,jump,n,lot)      igo=60 !     COMPLEX TRANSFORM    40 continue      ia=1      la=1      do 80 k=1,nfax      if (igo.eq.60) go to 60   50 continue      call vpassm(a(ia),a(ia+inc),work(1),work(2),trigs,     &                  ink,2,jump,nx,lot,nh,ifax(k+1),la)      igo=60      go to 70   60 continue      call vpassm(work(1),work(2),a(ia),a(ia+inc),trigs,     &                  2,ink,nx,jump,lot,nh,ifax(k+1),la)      igo=50   70 continue      la=la*ifax(k+1)   80 continue       if (isign.eq.-1) go to 130 !     IF NECESSARY, TRANSFER DATA FROM WORK AREA      if (mod(nfax,2).eq.1) go to 110      ibase=1      jbase=1      do 100 l=1,lot      i=ibase      j=jbase!DIR$ IVDEP      do 90 m=1,n      a(j)=work(i)      i=i+1      j=j+inc   90 continue      ibase=ibase+nx      jbase=jbase+jump  100 continue !     FILL IN ZEROS AT END  110 continue      ib=n*inc+1!DIR$ IVDEP      do 120 l=1,lot      a(ib)=0.0      a(ib+inc)=0.0      ib=ib+jump  120 continue      go to 140 !     POSTPROCESSING (ISIGN=-1):   130 continue      call fft99b(work,a,trigs,inc,jump,n,lot)   140 continue#endif!EOC end subroutine rfftmlt!-----------------------------------------------------------------------!-----------------------------------------------------------------------!BOP! !IROUTINE: fftfax --- Initialize FFT!! !INTERFACE:  subroutine fftfax (n, ifax, trigs)! !USES: use precision! !DESCRIPTION:!!   Initialize the fast Fourier transform.  If CPP token SGI_FFT is!   set, SGI libraries will be used.  Otherwise the Fortran code!   is inlined.!! !REVISION HISTORY:!!   99.11.24   Sawyer       Added wrappers for SGI!   01.03.26   Sawyer       Added ProTeX documentation!!EOP!-----------------------------------------------------------------------!BOC#if defined( SGI_FFT )      implicit none      real(r8)    trigs(1)      integer ifax(*)      integer n! local      integer*4 nn      nn=n      call dzfftm1dui (nn,trigs)#else       integer ifax(13)       real(r8) trigs(3*n/2+1) ! MODE 3 IS USED FOR REAL/HALF-COMPLEX TRANSFORMS.  IT IS POSSIBLE! TO DO COMPLEX/COMPLEX TRANSFORMS WITH OTHER VALUES OF MODE, BUT! DOCUMENTATION OF THE DETAILS WERE NOT AVAILABLE WHEN THIS ROUTINE! WAS WRITTEN.       data mode /3/      call fax (ifax, n, mode)      i = ifax(1)      if (ifax(i+1) .gt. 5 .or. n .le. 4) ifax(1) = -99      if (ifax(1) .le. 0 ) then        write(6,*) ' set99 -- invalid n'        stop 'set99'      endif      call fftrig (trigs, n, mode)#endif!EOC end subroutine fftfax!-----------------------------------------------------------------------end module pft_module

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性色生活片| 欧美一区二区三区视频| 国产不卡在线一区| 国产黄色成人av| 香港成人在线视频| 美国欧美日韩国产在线播放| 九一九一国产精品| 国产精品99久久久久| 成人性生交大片免费看视频在线| 国产传媒久久文化传媒| 粉嫩av亚洲一区二区图片| 国产99久久久国产精品潘金网站| 99久久久精品免费观看国产蜜| 99视频热这里只有精品免费| 91久久线看在观草草青青| 欧美二区乱c少妇| 日韩一区二区电影| 综合激情成人伊人| 日本成人在线网站| 高清beeg欧美| 欧美日韩精品一二三区| 久久久久国产一区二区三区四区| 综合色中文字幕| 国产在线精品一区二区不卡了| av在线一区二区三区| 91黄色免费版| 国产欧美一区二区精品秋霞影院| 亚洲婷婷在线视频| 高清不卡一区二区在线| 日韩小视频在线观看专区| 中文字幕日韩精品一区| 奇米色一区二区| 欧洲中文字幕精品| 国产欧美日韩中文久久| 日韩影院精彩在线| 色综合一区二区三区| 久久亚洲一级片| 日本va欧美va精品| 欧美日韩电影一区| 国产精品久久777777| 国产精品一二三| 久久久久久久久久久久久女国产乱 | 91碰在线视频| 中文字幕av一区二区三区高| 亚洲免费观看高清完整版在线观看| 久久不见久久见中文字幕免费| 在线观看欧美精品| 亚洲一卡二卡三卡四卡| 日本乱码高清不卡字幕| 一区二区在线看| 欧美专区亚洲专区| 一区二区三区在线视频播放| 91碰在线视频| 亚洲第一二三四区| 3d成人动漫网站| 日本 国产 欧美色综合| 精品国产一区二区三区久久影院| 久久精品久久精品| 久久久久久久久99精品| av资源网一区| 五月婷婷激情综合| 精品福利视频一区二区三区| 国产精品亚洲午夜一区二区三区| 欧美国产精品专区| 色素色在线综合| 天天色天天操综合| 日韩区在线观看| 日韩中文字幕不卡| 日韩精品一区二| 粉嫩久久99精品久久久久久夜| 一区二区三区在线观看视频| 在线电影一区二区三区| 国产综合成人久久大片91| 国产精品入口麻豆九色| 欧美日韩中文字幕一区| 久久国产精品第一页| 中文字幕中文乱码欧美一区二区| 欧美午夜电影网| 国产高清亚洲一区| 亚洲欧美一区二区久久| 精品日韩成人av| 欧美日韩1234| 91影视在线播放| 国产精品夜夜嗨| 日韩av一级电影| 亚洲午夜私人影院| 综合分类小说区另类春色亚洲小说欧美| 日韩一区二区免费高清| 欧美在线观看18| 国产精品1区2区3区| 天天综合天天综合色| 国产欧美日韩卡一| 日韩欧美亚洲国产另类| 欧美日韩精品电影| 91国偷自产一区二区使用方法| 国产91精品一区二区麻豆网站| 蓝色福利精品导航| 五月婷婷欧美视频| 麻豆成人久久精品二区三区小说| 老司机午夜精品| 国产精品99久久久| 成人性视频免费网站| 91蜜桃视频在线| 7878成人国产在线观看| 日韩欧美高清dvd碟片| 久久亚洲综合av| 亚洲视频在线观看三级| 亚洲国产成人高清精品| 日本vs亚洲vs韩国一区三区二区 | 国产制服丝袜一区| 国产精品996| 一本大道久久精品懂色aⅴ| 欧美人妇做爰xxxⅹ性高电影| 日韩亚洲欧美综合| 国产精品乱子久久久久| 亚洲成人精品影院| 国产精品资源站在线| 色婷婷av久久久久久久| 日韩免费在线观看| 亚洲欧洲精品天堂一级 | 亚洲综合在线第一页| 国内精品免费**视频| 无码av免费一区二区三区试看| 日韩欧美一级二级三级久久久| 欧美变态凌虐bdsm| 人妖欧美一区二区| 91精品国产免费| 美女一区二区三区在线观看| 欧美精品欧美精品系列| 亚洲国产综合色| 国产99久久久国产精品免费看| 欧美日本一区二区三区| 亚洲婷婷在线视频| 国产精品一色哟哟哟| 在线观看91av| 婷婷开心久久网| 色婷婷一区二区三区四区| 国产欧美日韩不卡| 久久er精品视频| 欧美精品在线观看播放| 亚洲欧美日韩国产手机在线| 国内精品免费**视频| 日韩免费观看高清完整版| 亚洲国产精品人人做人人爽| 91九色02白丝porn| 亚洲欧美日韩综合aⅴ视频| 不卡高清视频专区| 精品国产伦理网| 国产精品一区二区在线观看网站| 久久午夜国产精品| 成人黄色国产精品网站大全在线免费观看 | 欧美在线|欧美| 悠悠色在线精品| 欧美性猛交xxxxxxxx| 午夜精品久久久| 日韩一区二区三区免费看| 久久精品国产精品青草| 日韩一区二区在线免费观看| 国产福利视频一区二区三区| 国产欧美精品日韩区二区麻豆天美| 黄网站免费久久| 国产亚洲成av人在线观看导航| 成a人片亚洲日本久久| 中文字幕日韩精品一区| 欧美优质美女网站| 亚洲一区二区三区在线| 日韩免费在线观看| www.日本不卡| 亚洲精品高清在线| 欧美电影免费观看高清完整版在线 | 91色综合久久久久婷婷| 亚洲成人动漫精品| 欧美日韩不卡在线| 五月天婷婷综合| 欧美一区二区三区喷汁尤物| 日本道精品一区二区三区| 成人av在线资源网站| 成人一二三区视频| 国产精品一二三| 国产高清久久久| 国产一区二区三区在线看麻豆| 亚洲成人在线免费| 亚洲欧美日韩中文字幕一区二区三区| 精品av久久707| 欧美成人一区二区三区在线观看| 在线欧美一区二区| av电影天堂一区二区在线| 国产原创一区二区| 狂野欧美性猛交blacked| 午夜精品视频在线观看| 亚洲黄色片在线观看| 日韩理论片网站| 欧美激情资源网| 久久久不卡影院| 国产欧美日韩精品一区| 国产亚洲一区字幕| 久久综合久久综合亚洲| 久久影音资源网| 久久久久久久综合| 久久亚洲一区二区三区四区|