⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camoce.f90

📁 CCSM Research Tools: Community Atmosphere Model (CAM)
💻 F90
字号:
#include <misc.h>#include <params.h>subroutine camoce(srf_state,srfflx)!----------------------------------------------------------------------- ! ! Purpose: ! CAM ocean and sea ice surface fluxes.!! Method: ! ! Author:! !-----------------------------------------------------------------------!! $Id: camoce.F90,v 1.1.2.2 2002/05/02 21:11:29 rosinski Exp $! $Author: rosinski $!!-----------------------------------------------------------------------  use precision  use ppgrid  use pspect  use comsrf, only: surface_state,srfflx_parm,ocnfrac  use phys_grid, only: get_ncols_p, get_rlat_all_p, get_rlon_all_p  use sst_data,  only: sstan  use time_manager, only: get_nstep, get_step_size, get_curr_calday  implicit none!! Input/Output arguments!   type(surface_state), intent(inout), dimension(begchunk:endchunk) :: srf_state   type(srfflx_parm), intent(inout), dimension(begchunk:endchunk) :: srfflx#include <comctl.h>!---------------------------Local variables-----------------------------  integer :: nstep          ! current timestep number  integer :: dtime          ! timestep size [seconds]  real(r8) cdaynext         ! calendar day for next timestep  real(r8) clat(pcols)      ! current latitudes(radians)  real(r8) clon(pcols)      ! current longitudes(radians)  real(r8) cosznext(pcols)  ! cosine solar zenith angle next timestep  integer ncol              ! number of columns in chunk  integer lchnk             ! chunk index!-----------------------------------------------------------------------!! Calendar day for next time step!  nstep = get_nstep()  dtime = get_step_size()  cdaynext = get_curr_calday(offset=dtime)!$OMP PARALLEL DO PRIVATE (LCHNK, NCOL, CLAT, CLON, COSZNEXT)  do lchnk=begchunk,endchunk     ncol = get_ncols_p(lchnk)!! Update ts and for open ocean!     if (anncyc .and. mod(nstep,itsst)==0) then        call sstan(lchnk,ncol, &             ocnfrac(1,lchnk),srfflx(lchnk)%ts)     end if!! Ocean surface fluxes and temperatures!     call srfoce(lchnk             , ncol, &          ocnfrac(1,lchnk)      , srf_state(lchnk)%ubot  , &          srf_state(lchnk)%vbot , srf_state(lchnk)%tbot  , &          srf_state(lchnk)%qbot , srf_state(lchnk)%thbot , &          srf_state(lchnk)%zbot , srf_state(lchnk)%pbot  , &          srfflx(lchnk)%cflx, &          srfflx(lchnk)%wsx   , srfflx(lchnk)%wsy ,&          srfflx(lchnk)%ts    , srfflx(lchnk)%shf ,&          srfflx(lchnk)%lhf   , srfflx(lchnk)%lwup,&           srfflx(lchnk)%tref)!! Albedos for next time step !     call get_rlat_all_p(lchnk, ncol, clat)     call get_rlon_all_p(lchnk, ncol, clon)     call zenith (cdaynext, clat, clon, cosznext, ncol)     call albocean(lchnk,ncol, &                 cosznext, &                 srfflx(lchnk)%asdir, srfflx(lchnk)%aldir, &                 srfflx(lchnk)%asdif, srfflx(lchnk)%aldif)  end do  returnend subroutine camoce

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -