module inital 1
!-----------------------------------------------------------------------
!BOP
! !MODULE: inital --- Define initial conditions for first run of case
!
!-----------------------------------------------------------------------
! !USES:
implicit none
private ! By default everything private to this module
! !PUBLIC MEMBER FUNCTIONS:
public cam_initial ! Cam initialization (formally inital)
!
! !DESCRIPTION: Module for CAM initialization
!
! !REVISION HISTORY:
! 05.08.11 Kluzek Creation
! 05.11.10 Sawyer Now using dyn_import/export_t containers
! 06.04.13 Sawyer Removed dependency on prognostics
!
!
!EOP
!-----------------------------------------------------------------------
contains
!
!-----------------------------------------------------------------------
!
!-----------------------------------------------------------------------
!BOP
!ROUTINE: inital --- Define initial conditions for first run of case
!
! !INTERFACE:
subroutine cam_initial( dyn_in, dyn_out, NLFileName ) 1,21
! !USES:
use shr_kind_mod
, only : r8 => shr_kind_r8
use physconst
, only : omega, rearth, &
rair, cpair, &
zvir, pi
use pmgrid
, only : plon, plat, plev, plevp, &
beglonxy, endlonxy, beglatxy, endlatxy, &
beglat, endlat, beglev, endlev, &
npr_y, npr_z, nprxy_x, nprxy_y, &
myid_y, myid_z, myidxy_x, myidxy_y, &
twod_decomp, mod_geopk, mod_transpose, &
mod_gatscat
use dyn_comp
, only : dyn_import_t, dyn_export_t, dyn_init
use constituents
, only : pcnst
use phys_grid
, only : phys_grid_init
use chem_surfvals
, only : chem_surfvals_init
use time_manager
, only : get_step_size
use startup_initialconds
, only : setup_initial, initial_conds
use hycoef
, only : hyai, hybi
use dynamics_vars
, only : T_FVDYCORE_STATE
use dyn_internal_state
, only : get_dyn_state
use fv_control_mod
, only : kord, jord, iord, nsplit, nspltrac, nspltvrm, dyn_conservative, filtcw
!-----------------------------------------------------------------------
!
! Arguments
!
type(dyn_import_t), intent(out) :: dyn_in
type(dyn_export_t), intent(out) :: dyn_out
character(len=*), intent(in) :: NLFileName
!------------------------------Parameters-------------------------------
! !DESCRIPTION:
!
! Define initial conditions for first run of case
!
! !REVISION HISTORY:
!
! 92.06.01 Bath Creation from CCM1
! 96.03.01 Acker Modifications
! 96.04.01 Boville Reviewed
! 01.06.17 Sawyer Added call to dynamics_init
! 01.07.12 Sawyer Added arguments to dynamics_init
! 05.11.10 Sawyer Added dyn_in, dyn_out, dyn_state to init
! 06.04.13 Sawyer Removed call to initial_prognostics
!
!EOP
!-----------------------------------------------------------------------
!BOC
!
! !LOCAL VARIABLES:
!
real(r8), parameter :: D0_0 = 0.0_r8
real(r8), parameter :: D1E5 = 1.0e5_r8
type (T_FVDYCORE_STATE), pointer :: dyn_state
real(r8) :: dtime ! timestep size
real(r8), allocatable :: ak(:), bk(:)
integer :: k ! Index
integer :: ks ! transition index to pressure coordinates
!
!-----------------------------------------------------------------------
call setup_initial
()
!
!
dtime = get_step_size
()
allocate( ak(plev+1) )
allocate( bk(plev+1) )
do k = 1, plev+1
ak(k) = hyai(k) * D1E5
bk(k) = hybi(k)
if( bk(k) == D0_0 ) ks = k-1
end do
!
! Initialize dynamics
!
dyn_state => get_dyn_state
()
call dyn_init
( "NOT USED", "NOT_USED", plon, plat, plev, dtime, NSPLIT,&
NSPLTRAC, NSPLTVRM, IORD, JORD, KORD, 0, AK, BK, pcnst, pcnst, KS,& ! "0" temporary
filtcw, beglonxy, endlonxy, beglatxy, endlatxy, &
beglat, endlat, beglev, endlev, pi, &
omega, cpair, rair, &
rearth, rair/cpair, &
zvir, (/ npr_y, npr_z, nprxy_x, nprxy_y /), &
twod_decomp, mod_geopk, mod_transpose, mod_gatscat, &
dyn_conservative, dyn_state, dyn_in, dyn_out, NLFileName )
deallocate( ak, bk )
!
! Initialize dynamics grid
!
call initcom
!
! Define physics data structures
!
call phys_grid_init
!
! Initialize ghg surface values before default initial distributions
! are set in inidat.
!
call chem_surfvals_init
()
call initial_conds
( dyn_in )
!EOC
end subroutine cam_initial
!
!-----------------------------------------------------------------------
!
end module inital