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

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

?? time_manager.f90

?? CCSM Research Tools: Community Atmosphere Model (CAM)
?? F90
?? 第 1 頁 / 共 2 頁
字號:
   implicit none   ! Return value   integer :: get_step_size! Local variables   character(len=*), parameter :: sub = 'get_step_size'   integer :: days, seconds   integer :: rc!-----------------------------------------------------------------------------------------   call esmf_timemgrgetstepsize(tm_id, days, seconds, rc)   call chkrc(rc, sub//': error return from esmf_timemgrgetstepsize')   get_step_size = 86400*days + secondsend function get_step_size!=========================================================================================function get_nstep()! Return the timestep number.   implicit none   ! Return value   integer :: get_nstep! Local variables   character(len=*), parameter :: sub = 'get_nstep'   integer :: rc!-----------------------------------------------------------------------------------------   get_nstep = esmf_timemgrgetnstep(tm_id, rc)   call chkrc(rc, sub//': error return from esmf_timemgrgetnstep')end function get_nstep!=========================================================================================subroutine get_curr_date(yr, mon, day, tod, offset)! Return date components valid at end of current timestep with an optional! offset (positive or negative) in seconds.   implicit none   ! Arguments   integer, intent(out) ::&      yr,    &! year      mon,   &! month      day,   &! day of month      tod     ! time of day (seconds past 0Z)   integer, optional, intent(in) :: offset  ! Offset from current time in seconds.                                            ! Positive for future times, negative                                             ! for previous times.! Local variables   character(len=*), parameter :: sub = 'get_curr_date'   integer :: rc   type(esmf_date) :: date   type(esmf_time) :: off   integer :: ymd!-----------------------------------------------------------------------------------------   date = esmf_timemgrgetcurrdate(tm_id, rc)   call chkrc(rc, sub//': error return from esmf_timemgrgetcurrdate')   if (present(offset)) then      if (offset > 0) then         date = esmf_dateincrementsec(date, offset, rc)         call chkrc(rc, sub//': error incrementing current date')      else if (offset < 0) then         off = esmf_timeinit(0, -offset, rc)         call chkrc(rc, sub//': error setting offset time type')         date = esmf_datedecrement(date, off, rc)         call chkrc(rc, sub//': error decrementing current date')      end if   end if   call esmf_dateget(date, ymd, tod, rc)   call chkrc(rc, sub//': error return from esmf_dateget')   yr = ymd/10000   mon = mod(ymd, 10000) / 100   day = mod(ymd, 100)end subroutine get_curr_date!=========================================================================================subroutine get_prev_date(yr, mon, day, tod)! Return date components valid at beginning of current timestep.   implicit none   ! Arguments   integer, intent(out) ::&      yr,    &! year      mon,   &! month      day,   &! day of month      tod     ! time of day (seconds past 0Z)! Local variables   character(len=*), parameter :: sub = 'get_prev_date'   integer :: rc   type(esmf_date) :: date   integer :: ymd!-----------------------------------------------------------------------------------------   date = esmf_timemgrgetprevdate(tm_id, rc)   call chkrc(rc, sub//': error return from esmf_timemgrgetprevdate')   call esmf_dateget(date, ymd, tod, rc)   call chkrc(rc, sub//': error return from esmf_dateget')   yr = ymd/10000   mon = mod(ymd, 10000) / 100   day = mod(ymd, 100)end subroutine get_prev_date!=========================================================================================subroutine get_start_date(yr, mon, day, tod)! Return date components valid at beginning of initial run.   implicit none   ! Arguments   integer, intent(out) ::&      yr,    &! year      mon,   &! month      day,   &! day of month      tod     ! time of day (seconds past 0Z)! Local variables   character(len=*), parameter :: sub = 'get_start_date'   integer :: rc   type(esmf_date) :: date   integer :: ymd!-----------------------------------------------------------------------------------------   date = esmf_timemgrgetstartdate(tm_id, rc)   call chkrc(rc, sub//': error return from esmf_timemgrgetstartdate')   call esmf_dateget(date, ymd, tod, rc)   call chkrc(rc, sub//': error return from esmf_dateget')   yr = ymd/10000   mon = mod(ymd, 10000) / 100   day = mod(ymd, 100)end subroutine get_start_date!=========================================================================================subroutine get_ref_date(yr, mon, day, tod)! Return date components of the reference date.   implicit none   ! Arguments   integer, intent(out) ::&      yr,    &! year      mon,   &! month      day,   &! day of month      tod     ! time of day (seconds past 0Z)! Local variables   character(len=*), parameter :: sub = 'get_ref_date'   integer :: rc   type(esmf_date) :: date   integer :: ymd!-----------------------------------------------------------------------------------------   date = esmf_timemgrgetbasedate(tm_id, rc)   call chkrc(rc, sub//': error return from esmf_timemgrgetbasedate')   call esmf_dateget(date, ymd, tod, rc)   call chkrc(rc, sub//': error return from esmf_dateget')   yr = ymd/10000   mon = mod(ymd, 10000) / 100   day = mod(ymd, 100)end subroutine get_ref_date!=========================================================================================subroutine get_curr_time(days, seconds)! Return time components valid at end of current timestep.! Current time is the time interval between the current date and the reference date.   implicit none   ! Arguments   integer, intent(out) ::&      days,   &! number of whole days in time interval      seconds  ! remaining seconds in time interval! Local variables   character(len=*), parameter :: sub = 'get_curr_time'   integer :: rc   type(esmf_date) :: cdate, rdate   type(esmf_time) :: diff   logical :: islater!-----------------------------------------------------------------------------------------   cdate = esmf_timemgrgetcurrdate(tm_id, rc)   call chkrc(rc, sub//': error return from esmf_timemgrgetcurrdate')   rdate = esmf_timemgrgetbasedate(tm_id, rc)   call chkrc(rc, sub//': error return from esmf_timemgrgetbasedate')   call esmf_datediff(rdate, cdate, diff, islater, rc)   call chkrc(rc, sub//': error return from esmf_datediff')   call esmf_timeget(diff, days, seconds, rc)   call chkrc(rc, sub//': error return from esmf_timeget')end subroutine get_curr_time!=========================================================================================function get_curr_calday(offset)! Return calendar day at end of current timestep with optional offset.! Calendar day 1.0 = 0Z on Jan 1.   implicit none   ! Arguments   integer, optional, intent(in) :: offset  ! Offset from current time in seconds.                                            ! Positive for future times, negative                                             ! for previous times.! Return value   real(r8) :: get_curr_calday! Local variables   character(len=*), parameter :: sub = 'get_curr_calday'   integer :: rc   type(esmf_date) :: date   type(esmf_time) :: off   integer :: ymd, tod!-----------------------------------------------------------------------------------------   date = esmf_timemgrgetcurrdate(tm_id, rc)   call chkrc(rc, sub//': error return from esmf_timemgrgetcurrdate')   if (present(offset)) then      if (offset > 0) then         date = esmf_dateincrementsec(date, offset, rc)         call chkrc(rc, sub//': error incrementing current date')      else if (offset < 0) then         off = esmf_timeinit(0, -offset, rc)         call chkrc(rc, sub//': error setting offset time type')         date = esmf_datedecrement(date, off, rc)         call chkrc(rc, sub//': error decrementing current date')      end if   end if   get_curr_calday = esmf_dategetfltdayofyear(date, rc)   call chkrc(rc, sub//': error return from esmf_dategetfltdayofyear')end function get_curr_calday!=========================================================================================function is_end_curr_day()! Return true if current timestep is last timestep in current day.   implicit none   ! Return value   logical :: is_end_curr_day! Local variables   integer ::&      yr,    &! year      mon,   &! month      day,   &! day of month      tod     ! time of day (seconds past 0Z)!-----------------------------------------------------------------------------------------   call get_curr_date(yr, mon, day, tod)   is_end_curr_day = (tod == 0)end function is_end_curr_day!=========================================================================================function is_end_curr_month()! Return true if current timestep is last timestep in current month.   implicit none   ! Return value   logical :: is_end_curr_month! Local variables   integer ::&      yr,    &! year      mon,   &! month      day,   &! day of month      tod     ! time of day (seconds past 0Z)!-----------------------------------------------------------------------------------------   call get_curr_date(yr, mon, day, tod)   is_end_curr_month = (day == 1  .and.  tod == 0)end function is_end_curr_month!=========================================================================================function is_first_step()! Return true on first step of initial run only.   implicit none   ! Return value   logical :: is_first_step! Local variables   character(len=*), parameter :: sub = 'is_first_step'   integer :: rc   integer :: nstep!-----------------------------------------------------------------------------------------   nstep = esmf_timemgrgetnstep(tm_id, rc)   call chkrc(rc, sub//': error return from esmf_timemgrgetnstep')   is_first_step = (nstep == 0)end function is_first_step!=========================================================================================function is_first_restart_step()! Return true on first step of restart run only.   implicit none   ! Return value   logical :: is_first_restart_step!-----------------------------------------------------------------------------------------   is_first_restart_step = first_restart_stepend function is_first_restart_step!=========================================================================================function is_last_step()! Return true on last timestep.   implicit none   ! Return value   logical :: is_last_step! Local variables   character(len=*), parameter :: sub = 'is_last_step'   integer :: rc!-----------------------------------------------------------------------------------------   is_last_step = esmf_timemgrlaststep(tm_id, rc)   call chkrc(rc, sub//': error return from esmf_timemgrlaststep')end function is_last_step!=========================================================================================subroutine timemgr_write_restart(ftn_unit)! Write information needed on restart to a binary Fortran file.! It is assumed that this routine is called only from the master proc if in SPMD mode.   implicit none! Arguments   integer, intent(in) :: ftn_unit  ! Fortran unit number! Local variables   character(len=*), parameter :: sub = 'timemgr_write_restart'   integer :: rc   ! return code!-----------------------------------------------------------------------------------------   call esmf_timemgrrestartwrite(tm_id, rst_type, rst_nstep, rst_step_days, rst_step_sec, &                                rst_start_ymd, rst_start_tod, rst_stop_ymd, rst_stop_tod, rst_ref_ymd, &                                rst_ref_tod, rst_curr_ymd, rst_curr_tod, rc)   call chkrc(rc, sub//': error return from esmf_timemgrrestartwrite')   write(ftn_unit, iostat=rc) rst_type, rst_nstep, rst_step_days, rst_step_sec, &                              rst_start_ymd, rst_start_tod, rst_stop_ymd, rst_stop_tod, rst_ref_ymd, &                              rst_ref_tod, rst_curr_ymd, rst_curr_tod   if (rc /= 0 ) then      write (6,*) 'WRITE iostat= ',rc,' on i/o unit = ',ftn_unit      call endrun   end ifend subroutine timemgr_write_restart!=========================================================================================subroutine timemgr_read_restart(ftn_unit)! Read information needed on restart from a binary Fortran file.! It is assumed that this routine is called only from the master proc if in SPMD mode.   implicit none! Arguments   integer, intent(in) :: ftn_unit  ! Fortran unit number! Local variables   character(len=*), parameter :: sub = 'timemgr_read_restart'   integer :: rc   ! return code!-----------------------------------------------------------------------------------------   read(ftn_unit, iostat=rc) rst_type, rst_nstep, rst_step_days, rst_step_sec, &                             rst_start_ymd, rst_start_tod, rst_stop_ymd, rst_stop_tod, rst_ref_ymd, &                             rst_ref_tod, rst_curr_ymd, rst_curr_tod   if (rc /= 0 ) then      write (6,*) 'READ iostat= ',rc,' on i/o unit = ',ftn_unit      call endrun   end ifend subroutine timemgr_read_restart!=========================================================================================subroutine chkrc(rc, mes)   implicit none   integer, intent(in)          :: rc   ! return code from time management library   character(len=*), intent(in) :: mes  ! error message   if ( rc == esmf_success ) return   write(6,*) mes   call esmf_errprint(rc)   call endrunend subroutine chkrc!=========================================================================================#endifend module time_manager

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久夜| 99国产精品视频免费观看| 日本福利一区二区| 专区另类欧美日韩| 欧美日韩一区小说| 亚洲免费在线视频一区 二区| 粉嫩aⅴ一区二区三区四区 | 久久久av毛片精品| 免费看日韩a级影片| 欧美三级视频在线播放| 亚洲国产综合在线| 欧美网站大全在线观看| 亚洲高清视频中文字幕| 欧美网站大全在线观看| 三级在线观看一区二区| 日韩一区二区在线免费观看| 日本午夜精品视频在线观看| 欧美一区二区三区不卡| 伦理电影国产精品| 日韩欧美在线观看一区二区三区| 蜜桃一区二区三区在线| 在线不卡中文字幕| 麻豆精品一区二区| 中文字幕日本乱码精品影院| 欧美日韩免费观看一区二区三区 | 免费成人深夜小野草| 国产亚洲人成网站| 欧美吻胸吃奶大尺度电影| 国产一区二区久久| 一级做a爱片久久| 精品福利一区二区三区| 色婷婷狠狠综合| 国产真实乱子伦精品视频| 亚洲麻豆国产自偷在线| 久久一二三国产| 欧美日韩国产高清一区二区三区 | 波多野结衣中文一区| 日本不卡视频在线观看| 国产精品久久久一本精品| 日韩视频免费观看高清完整版在线观看 | 国产视频一区不卡| 欧美老女人第四色| 成人黄色777网| 日韩av一二三| 亚洲一级片在线观看| 中文字幕不卡在线| 精品国产亚洲在线| 欧美日韩一区二区三区四区| 成人国产精品免费网站| 久久97超碰国产精品超碰| 国产成人精品免费看| 日韩国产欧美在线观看| 综合激情网...| 欧美激情在线一区二区| 精品久久久久久最新网址| 欧美日韩久久久一区| 色婷婷综合视频在线观看| 风流少妇一区二区| 久久99精品久久只有精品| 日本不卡高清视频| 亚洲电影在线播放| 亚洲日本一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品午夜免费| 精品免费国产一区二区三区四区| 在线观看亚洲一区| 一本久久综合亚洲鲁鲁五月天| 成人精品鲁一区一区二区| 国产精品18久久久久| 精品一区二区久久| 黄色日韩网站视频| 狠狠久久亚洲欧美| 激情亚洲综合在线| 韩国成人在线视频| 国产成人免费在线视频| 国产精品一区二区在线看| 久久er99热精品一区二区| 久久电影网电视剧免费观看| 麻豆精品新av中文字幕| 日本aⅴ免费视频一区二区三区| 午夜精品久久久久久久99樱桃| 亚洲一区二区三区在线| 五月天视频一区| 日韩av在线发布| 韩国精品一区二区| 成人在线综合网| 99久久免费视频.com| 色综合久久六月婷婷中文字幕| 色妹子一区二区| 欧美性一区二区| 这里只有精品99re| 日韩三级视频中文字幕| 久久女同精品一区二区| 国产精品久久三| 亚洲一区在线播放| 蜜臀va亚洲va欧美va天堂| 黑人巨大精品欧美一区| 国产精品一卡二卡在线观看| 国产99久久久国产精品潘金 | 国产精品国产三级国产普通话三级 | 欧洲生活片亚洲生活在线观看| 欧美日韩你懂的| 欧美成人bangbros| 日本一区二区三区视频视频| 亚洲欧美乱综合| 欧美a级理论片| 国产尤物一区二区在线| www.亚洲国产| 6080亚洲精品一区二区| 久久精品亚洲麻豆av一区二区 | 久久亚洲综合色一区二区三区 | 欧美日韩一区二区欧美激情| 亚洲美女偷拍久久| 青青草视频一区| www.亚洲色图| 日韩欧美国产不卡| 中文字幕综合网| 蜜桃av噜噜一区| 色综合天天做天天爱| 精品欧美一区二区在线观看| 成人免费在线播放视频| 日本最新不卡在线| 99re8在线精品视频免费播放| 91.com视频| 亚洲欧美在线视频观看| 免费成人结看片| 日本乱人伦一区| 久久综合九色综合欧美亚洲| 亚洲综合成人在线视频| 国产一区二区视频在线| 欧美日韩三级视频| 亚洲日本在线a| 国产精品资源站在线| 欧美日韩美女一区二区| 国产精品情趣视频| 九九视频精品免费| 欧美日韩午夜影院| 亚洲人xxxx| 成人h动漫精品一区二| 精品日韩99亚洲| 日韩精品91亚洲二区在线观看 | 亚洲成av人片观看| 99国产精品99久久久久久| 亚洲精品在线三区| 丝袜亚洲另类欧美综合| 在线观看不卡一区| 中文字幕日本乱码精品影院| 国产成人福利片| 久久这里只有精品视频网| 日韩中文字幕1| 欧美日韩一本到| 亚洲国产综合在线| 色丁香久综合在线久综合在线观看 | 国产成人无遮挡在线视频| 精品国产电影一区二区| 五月婷婷欧美视频| 在线精品观看国产| 亚洲自拍都市欧美小说| 一本大道av伊人久久综合| 中文字幕中文字幕一区| 国产成人精品免费一区二区| 久久久九九九九| 国产精品系列在线观看| 精品国产一区二区三区久久久蜜月| 日本欧美在线观看| 日韩欧美久久久| 久久国产综合精品| 精品久久久久久最新网址| 久久激五月天综合精品| 日韩一区二区精品葵司在线| 日韩成人午夜电影| 欧美一级二级三级蜜桃| 亚洲高清中文字幕| 91精品国产入口在线| 视频一区二区国产| 日韩欧美亚洲国产另类| 美女视频黄 久久| 久久久亚洲午夜电影| 成人在线综合网站| 亚洲伦在线观看| 欧美福利视频一区| 免费看日韩a级影片| 欧美成人精品二区三区99精品| 麻豆国产精品777777在线| 亚洲欧美日韩久久| 欧美日韩日本视频| 亚洲三级在线免费观看| 91蜜桃免费观看视频| 一个色综合网站| 欧美二区乱c少妇| 麻豆91免费看| 欧美国产一区在线| 欧洲视频一区二区| 蜜桃久久精品一区二区| 欧美高清一级片在线观看| 成人污视频在线观看| 亚洲午夜精品网| 精品国产凹凸成av人网站| 国产麻豆一精品一av一免费| 国产精品色噜噜|