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

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

?? sst_data.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
?? 第 1 頁 / 共 2 頁
字號:
                          is_perpetual, get_perp_date!! EOP!!---------------------------Common blocks-------------------------------#include <comctl.h>#include <comlun.h>!---------------------------Local variables-----------------------------  integer cnt3(3)        ! array of counts for each dimension  integer strt3(3)       ! array of starting indices  integer i,j,lchnk      ! indices  integer ncol           ! number of columns in current chunk  integer ntmp           ! temporary  real(r8) fact1, fact2  ! time interpolation factors  integer :: yr, mon, day! components of a date  integer :: ncdate      ! current date in integer format [yyyymmdd]  integer :: ncsec       ! current time of day [seconds]  real(r8) :: calday     ! current calendar day  real(r8) caldayloc     ! calendar day (includes yr if no cycling)  real(r8) deltat        ! time (days) between interpolating sst data!! Aqua planet variables!  real(r8) pi            ! 3.14159...  real(r8) pio180        ! pi/180.  real(r8) tmp           ! temporary  real(r8) tmp1          ! temporary  real(r8) t0_max        ! max reference temperature  real(r8) t0_min        ! min reference temperature  real(r8) t0_max6       ! max asymmetric reference temperature for option 6  real(r8) t0_max7       ! max asymmetric reference temperature for option 7  real(r8) maxlat        ! cutoff latitude poleward of which SST = 0 deg C  real(r8) shift         ! number of degrees peak SST is shifted off equator  real(r8) shift9        ! number of degrees peak SST is shifted off equator for opt. 9  real(r8) shift10       ! number of degrees peak SST is shifted off equator for opt. 10  real(r8) latcen        ! center of asymmetric SST forcing  real(r8) latrad6       ! radius of asymmetric SST forcing for option 6  real(r8) latrad8       ! radius of asymmetric SST forcing for option 8  real(r8) loncen        ! center of asymmetric SST forcing  real(r8) lonrad        ! radius of asymmetric SST forcing  real(r8) xvar(plon,plat,2)    ! work space   integer  sst_option    ! option of analytical SST algorithm!!-----------------------------------------------------------------------!! SPMD: Master does all the work.  Sends needed info to slaves!  if (aqua_planet) then     if (masterproc) then        sst_option = 1        pi         = 4.*atan(1.)        pio180     = pi/180.        if(sst_option .lt. 1 .or. sst_option .gt. 10) then          write(6,*) 'ERROR SSTINT:  sst_option must be between 1 and 10'          call endrun        endif!! Parameters for zonally symmetric experiments!        t0_max     = 27.        t0_min     = 0.        maxlat     = 60.        shift      = 5.        shift9     = 10.        shift10    = 15.!! Parameters for zonally asymmetric experiments!        t0_max6    = 1.        t0_max7    = 3.        latcen     = 0.        loncen     = 90.        latrad6    = 15.        latrad8    = 30.        lonrad     = 30.        maxlat     = maxlat *pio180        shift      = shift  *pio180        shift9     = shift9 *pio180        shift10    = shift10*pio180        latcen     = latcen *pio180        loncen     = loncen *pio180        latrad6    = latrad6*pio180        latrad8    = latrad8*pio180        lonrad     = lonrad *pio180        if(sst_option == 1 .or. sst_option == 6 .or. &             sst_option == 7 .or. sst_option == 8     ) then           do j = 1,plat              if(abs(clat(j)) > maxlat) then                 do i=1,nlon(j)                    xvar(i,j,1) = t0_min                 end do              else                 tmp = clat(j)*pi*0.5/maxlat                 tmp = sin(tmp)                 tmp = 1. - tmp*tmp                 do i=1,nlon(j)                    xvar(i,j,1) = tmp*(t0_max - t0_min) + t0_min                 end do              end if           end do        end if        if(sst_option == 2) then           do j = 1,plat              if(abs(clat(j)) > maxlat) then                 do i=1,nlon(j)                    xvar(i,j,1) = t0_min                 end do              else                 tmp = clat(j)*pi*0.5/maxlat                 tmp = sin(tmp)                 tmp = 1. - tmp*tmp*tmp*tmp                 do i=1,nlon(j)                    xvar(i,j,1) = tmp*(t0_max - t0_min) + t0_min                 end do              end if           end do        end if        if(sst_option == 3) then           do j = 1,plat              if(abs(clat(j)) > maxlat) then                 do i=1,nlon(j)                    xvar(i,j,1) = t0_min                 end do              else                 tmp = clat(j)*pi*0.5/maxlat                 tmp = sin(tmp)                 tmp = (2. - tmp*tmp*tmp*tmp - tmp*tmp)*0.5                 do i=1,nlon(j)                    xvar(i,j,1) = tmp*(t0_max - t0_min) + t0_min                 end do              end if           end do        end if        if(sst_option == 4) then           do j = 1,plat              if(abs(clat(j)) > maxlat) then                 do i=1,nlon(j)                    xvar(i,j,1) = t0_min                 end do              else                 tmp  = (maxlat - abs(clat(j)))/maxlat                 tmp1 = 1. - tmp                 do i=1,nlon(j)                    xvar(i,j,1) = t0_max*tmp + t0_min*tmp1                 end do              end if           end do        end if        if(sst_option == 5) then           do j = 1,plat              if(abs(clat(j)) > maxlat) then                 do i=1,nlon(j)                    xvar(i,j,1) = t0_min                 end do              elseif(clat(j) > shift) then                 tmp = (clat(j)-shift)*pi*0.5/(maxlat-shift)                 tmp = sin(tmp)                 tmp = 1. - tmp*tmp                 do i=1,nlon(j)                    xvar(i,j,1) = tmp*(t0_max - t0_min) + t0_min                 end do              else                 tmp = (clat(j)-shift)*pi*0.5/(maxlat+shift)                 tmp = sin(tmp)                 tmp = 1. - tmp*tmp                 do i=1,nlon(j)                    xvar(i,j,1) = tmp*(t0_max - t0_min) + t0_min                 end do              end if           end do        end if        if(sst_option == 6) then           do j = 1,plat              if(abs(clat(j)-latcen) <= latrad6) then                 tmp1 = (clat(j)-latcen)*pi*0.5/latrad6                 tmp1 = cos(tmp1)                 tmp1 = tmp1*tmp1                 do i=1,nlon(j)                    if(abs(clon(i,j)-loncen) <= lonrad) then                       tmp = (clon(i,j)-loncen)*pi*0.5/lonrad                       tmp = cos(tmp)                       tmp = tmp*tmp                       xvar(i,j,1) = xvar(i,j,1) + t0_max6*tmp*tmp1                    end if                 end do              end if           end do        end if        if(sst_option == 7) then           do j = 1,plat              if(abs(clat(j)-latcen) <= latrad6) then                 tmp1 = (clat(j)-latcen)*pi*0.5/latrad6                 tmp1 = cos(tmp1)                 tmp1 = tmp1*tmp1                 do i=1,nlon(j)                    if(abs(clon(i,j)-loncen) <= lonrad) then                       tmp = (clon(i,j)-loncen)*pi*0.5/lonrad                       tmp = cos(tmp)                       tmp = tmp*tmp                       xvar(i,j,1) = xvar(i,j,1) + t0_max7*tmp*tmp1                    end if                 end do              end if           end do        end if        if(sst_option == 8) then           do j = 1,plat              if(abs(clat(j)-latcen) <= latrad8) then                 tmp1 = (clat(j)-latcen)*pi*0.5/latrad8                 tmp1 = cos(tmp1)                 tmp1 = tmp1*tmp1                 do i=1,nlon(j)                    tmp = cos(clon(i,j)-loncen)                    xvar(i,j,1) = xvar(i,j,1) + t0_max7*tmp*tmp1                 end do              end if           end do        end if        if(sst_option == 9) then           do j = 1,plat              if(abs(clat(j)) > maxlat) then                 do i=1,nlon(j)                    xvar(i,j,1) = t0_min                 end do              elseif(clat(j) > shift9) then                 tmp = (clat(j)-shift9)*pi*0.5/(maxlat-shift9)                 tmp = sin(tmp)                 tmp = 1. - tmp*tmp                 do i=1,nlon(j)                    xvar(i,j,1) = tmp*(t0_max - t0_min) + t0_min                 end do              else                 tmp = (clat(j)-shift9)*pi*0.5/(maxlat+shift9)                 tmp = sin(tmp)                 tmp = 1. - tmp*tmp                 do i=1,nlon(j)                    xvar(i,j,1) = tmp*(t0_max - t0_min) + t0_min                 end do              end if           end do        end if        if(sst_option == 10) then           do j = 1,plat              if(abs(clat(j)) > maxlat) then                 do i=1,nlon(j)                    xvar(i,j,1) = t0_min                 end do              elseif(clat(j) > shift10) then                 tmp = (clat(j)-shift10)*pi*0.5/(maxlat-shift10)                 tmp = sin(tmp)                 tmp = 1. - tmp*tmp                 do i=1,nlon(j)                    xvar(i,j,1) = tmp*(t0_max - t0_min) + t0_min                 end do              else                 tmp = (clat(j)-shift10)*pi*0.5/(maxlat+shift10)                 tmp = sin(tmp)                 tmp = 1. - tmp*tmp                  do i=1,nlon(j)                    xvar(i,j,1) = tmp*(t0_max - t0_min) + t0_min                 end do              end if           end do        endif     endif     call scatter_field_to_chunk(1,1,1,plon,xvar(1,1,1),sst(1,begchunk))  else!! Use year information only if a multiyear dataset!     calday = get_curr_calday()     if ( is_perpetual() ) then        call get_perp_date(yr, mon, day, ncsec)     else        call get_curr_date(yr, mon, day, ncsec)     end if     ncdate = yr*10000 + mon*100 + day     if (sstcyc) then        caldayloc = calday     else        caldayloc = calday + yr*daysperyear     end if     if (masterproc) then        strt3(1) = 1        strt3(2) = 1        strt3(3) = 1        cnt3(1)  = lonsiz        cnt3(2)  = latsiz        cnt3(3)  = 1     endif!! If model time is past current forward sst timeslice, read in the next! timeslice for time interpolation.  Messy logic is for sstcyc = .true. ! interpolation between December and January (np1==1).  Note that ! np1 is never 1 when sstcyc is .false.!     if (caldayloc > cdaysstp .and. .not. (np1==1 .and. caldayloc>cdaysstm)) then        if (sstcyc) then           np1 = mod(np1,12) + 1        else           np1 = np1 + 1        end if        if (np1>timesiz) then           if (masterproc) then              write(6,*)'SSTINT: Attempt to read past end of SST dataset'           endif           call endrun        end if        cdaysstm = cdaysstp        call bnddyi(date_sst(np1), sec_sst(np1), cdaysstp)        if (.not.sstcyc) then           yr = date_sst(np1)/10000           cdaysstp = cdaysstp + yr*daysperyear        end if        if (np1==1 .or. caldayloc<=cdaysstp) then           ntmp = nm           nm = np           np = ntmp           if (masterproc) then              strt3(3) = np1              call wrap_get_vara_realx (ncid_sst,sstid,strt3,cnt3,xvar(1,1,np))              write(6,*)'SSTINT: Read sst for date (yyyymmdd) ',date_sst(np1), &                   ' sec ',sec_sst(np1)           endif           call scatter_field_to_chunk(1,1,1,plon,xvar(1,1,np),sstbdy(1,begchunk,np))        else           if (masterproc) then              write(6,*)'SSTINT: Input sst for date',date_sst(np1), &                   ' sec ',sec_sst(np1), 'does not exceed model date',ncdate,&                   ' sec ',ncsec,' Stopping.'           endif           call endrun        end if     end if!! Time interpolation.  Account for December-January interpolation if! cycling sst dataset.  Again note that np1 is never 1 when sstcyc is false!     if (np1==1) then                    ! Dec-Jan interpolation        deltat = cdaysstp + daysperyear - cdaysstm        if (caldayloc>cdaysstp) then      ! We're in December           fact1 = (cdaysstp + daysperyear - caldayloc)/deltat           fact2 = (caldayloc - cdaysstm)/deltat        else                                ! We're in January           fact1 = (cdaysstp - caldayloc)/deltat           fact2 = (caldayloc + daysperyear - cdaysstm)/deltat        end if     else        deltat = cdaysstp - cdaysstm        fact1 = (cdaysstp - caldayloc)/deltat        fact2 = (caldayloc - cdaysstm)/deltat     end if!! Check sanity of time interpolation calculation to within 32-bit roundoff!     if (abs(fact1+fact2-1.)>1.e-6 .or. &             fact1>1.000001 .or. fact1<-1.e-6 .or. &             fact2>1.000001 .or. fact2<-1.e-6) then         if (masterproc) then           write(6,*)'SSTINT: Bad fact1 and/or fact2=',fact1,fact2        endif        call endrun     end if     do lchnk=begchunk,endchunk        ncol = get_ncols_p(lchnk)        do i=1,ncol           if (ocnfrac(i,lchnk)>=0.) then              sst(i,lchnk) = sstbdy(i,lchnk,nm)*fact1 + sstbdy(i,lchnk,np)*fact2!  Bound the sst temp by the freezing point of sea water.              sst(i,lchnk)=max(sst(i,lchnk),tsice)           end if        end do     end do  endif  returnend subroutine sstintend module sst_data

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费视频网| 国产一区三区三区| 欧美在线三级电影| 亚洲成人免费观看| 欧美精品一二三四| 日本va欧美va瓶| 久久久九九九九| 91色视频在线| 青青草伊人久久| 久久久久久久久久看片| 不卡视频一二三| 亚洲国产一区二区三区| 精品电影一区二区三区 | 日本特黄久久久高潮| 日韩免费观看2025年上映的电影| 精品午夜一区二区三区在线观看| 国产午夜精品一区二区三区视频| 不卡的av网站| 天堂va蜜桃一区二区三区漫画版| 精品日产卡一卡二卡麻豆| 粉嫩13p一区二区三区| 亚洲综合免费观看高清完整版在线| 精品视频全国免费看| 狠狠色丁香婷婷综合| 最新中文字幕一区二区三区| 欧美福利电影网| 国产一区二区伦理| 亚洲国产精品精华液网站| 久久综合丝袜日本网| 99精品欧美一区二区三区小说| 三级久久三级久久久| 欧美国产日韩一二三区| 欧美精品三级在线观看| 不卡av在线免费观看| 麻豆视频观看网址久久| 亚洲欧美一区二区三区极速播放 | 精品美女一区二区三区| 91在线高清观看| 久久精品久久综合| 伊人一区二区三区| 国产亚洲精品aa午夜观看| 欧美日本不卡视频| 99精品视频在线播放观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 中文字幕在线观看一区二区| 日韩欧美在线不卡| 欧美色图12p| 99精品视频一区| 国产a区久久久| 奇米精品一区二区三区在线观看 | 欧美三级日韩三级| 国产91在线|亚洲| 黄色日韩三级电影| 日本人妖一区二区| 亚洲 欧美综合在线网络| 亚洲日本欧美天堂| 国产精品美女久久久久久久久久久 | 欧美美女一区二区三区| 94-欧美-setu| 国产91精品精华液一区二区三区 | 日韩欧美一级精品久久| 欧美视频一区在线| 色综合久久六月婷婷中文字幕| 九九精品视频在线看| 蜜桃视频第一区免费观看| 午夜精品福利视频网站| 亚洲在线视频网站| 一区二区三区在线免费播放| 亚洲素人一区二区| 亚洲欧美一区二区在线观看| 国产视频一区二区在线观看| 精品va天堂亚洲国产| 337p日本欧洲亚洲大胆色噜噜| 日韩欧美国产三级电影视频| 日韩精品一区二区三区在线观看| 日韩欧美激情在线| 亚洲精品一区二区三区在线观看| 日韩欧美aaaaaa| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产日产欧产精品推荐色| 久久午夜国产精品| 中文字幕亚洲一区二区va在线| 国产精品毛片高清在线完整版| 国产女主播一区| 国产精品女同一区二区三区| 国产精品传媒入口麻豆| 亚洲视频综合在线| 一区二区三区四区激情| 亚洲成人在线免费| 日韩国产欧美三级| 久久国内精品视频| 国产精品影视网| 国产成人av一区| 成人aaaa免费全部观看| 在线国产电影不卡| 欧美精品乱码久久久久久| 91精品久久久久久久91蜜桃 | 在线观看91精品国产入口| 精品污污网站免费看| 在线播放日韩导航| 亚洲精品一区二区在线观看| 国产欧美日韩在线看| 亚洲少妇中出一区| 日韩黄色片在线观看| 极品美女销魂一区二区三区免费| 国产激情一区二区三区四区| 91丨porny丨户外露出| 欧美电影一区二区| 国产亚洲视频系列| 一区二区三区**美女毛片| 久久国产成人午夜av影院| 国产99久久久精品| 欧美丰满少妇xxxbbb| 国产免费成人在线视频| 亚洲成人一区在线| 国产夫妻精品视频| 欧美精品v日韩精品v韩国精品v| 久久精品无码一区二区三区| 亚洲一区国产视频| 国产一区二区三区在线看麻豆| 91在线视频观看| 精品欧美久久久| 亚洲最大的成人av| 国产剧情在线观看一区二区| 一本在线高清不卡dvd| 欧美不卡在线视频| 亚洲在线视频免费观看| 国产精品66部| 欧美区在线观看| 亚洲欧美在线aaa| 国内偷窥港台综合视频在线播放| 欧洲国内综合视频| 国产亚洲欧美在线| 男人的天堂久久精品| 在线免费不卡视频| 国产欧美精品日韩区二区麻豆天美| 亚洲成a人片在线观看中文| 成人18视频在线播放| 最新欧美精品一区二区三区| 青青国产91久久久久久| 色综合激情五月| 国产视频视频一区| 麻豆精品精品国产自在97香蕉 | 91精品国产综合久久久久| 亚洲天堂av一区| 国产成a人亚洲| 精品国产乱码久久久久久图片| 亚洲成人动漫在线免费观看| 91在线观看地址| 中文字幕一区二区三区av| 国产乱一区二区| 欧美成人性战久久| 日本在线不卡视频| 欧美视频日韩视频在线观看| 亚洲另类在线视频| 成人18精品视频| 国产精品久久毛片| eeuss鲁片一区二区三区| 国产精品色在线| 不卡的电视剧免费网站有什么| 国产精品午夜久久| 成人精品gif动图一区| 国产精品午夜在线观看| 成年人网站91| 中文字幕一区二区三区四区| 99视频热这里只有精品免费| 国产精品高潮久久久久无| 不卡一区二区三区四区| 日韩理论片一区二区| 91网页版在线| 夜夜精品浪潮av一区二区三区| 欧美在线影院一区二区| 亚洲一区二区四区蜜桃| 欧美久久高跟鞋激| 久久精品国产亚洲一区二区三区| 日韩欧美精品在线| 国产主播一区二区三区| 国产精品拍天天在线| 91浏览器打开| 水野朝阳av一区二区三区| 日韩欧美综合在线| 国产精品亚洲人在线观看| 中文字幕第一区二区| 91麻豆精品在线观看| 五月婷婷色综合| 亚洲精品一区在线观看| 波多野结衣在线一区| 亚洲精品成人在线| 欧美一区二区三区在线看| 国产一区二区三区久久久| 国产精品欧美久久久久一区二区| 9191国产精品| 福利91精品一区二区三区| 一区二区三区在线免费| 欧美大尺度电影在线| 成人黄页在线观看| 午夜精品久久久久久久久| 久久综合给合久久狠狠狠97色69| 成人小视频免费在线观看| 亚洲中国最大av网站|