!WRF:MEDIATION_LAYER:ADT_BARRIER
!
SUBROUTINE start_domain ( grid ) 4,5
USE module_domain
IMPLICIT NONE
! Input data.
TYPE (domain) :: grid
! Local data.
INTEGER :: dyn_opt
INTEGER :: idum1, idum2
#ifdef DEREF_KLUDGE
INTEGER :: sm31 , em31 , sm32 , em32 , sm33 , em33
INTEGER :: sm31x, em31x, sm32x, em32x, sm33x, em33x
INTEGER :: sm31y, em31y, sm32y, em32y, sm33y, em33y
#endif
#ifdef DEREF_KLUDGE
sm31 = grid%sm31
em31 = grid%em31
sm32 = grid%sm32
em32 = grid%em32
sm33 = grid%sm33
em33 = grid%em33
sm31x = grid%sm31x
em31x = grid%em31x
sm32x = grid%sm32x
em32x = grid%em32x
sm33x = grid%sm33x
em33x = grid%em33x
sm31y = grid%sm31y
em31y = grid%em31y
sm32y = grid%sm32y
em32y = grid%em32y
sm33y = grid%sm33y
em33y = grid%em33y
#endif
CALL get_dyn_opt
( dyn_opt )
CALL set_scalar_indices_from_config
( head_grid%id , idum1, idum2 )
IF ( .FALSE. ) THEN
#if (EM_CORE == 1)
ELSE IF ( dyn_opt .eq. DYN_EM ) THEN
CALL start_domain_em
( grid, &
!
# include <em_actual_args.inc>
!
)
#endif
#if (NMM_CORE == 1)
ELSE IF ( dyn_opt .eq. DYN_NMM ) THEN
CALL start_domain_nmm
( grid, &
!
# include <nmm_actual_args.inc>
!
)
#endif
#if (COAMPS_CORE == 1)
ELSE IF ( dyn_opt .eq. DYN_COAMPS ) THEN
CALL start_domain_coamps( grid, &
!
# include <coamps_actual_args.inc>
!
)
#endif
#if (GRAPS_CORE == 1)
ELSE IF ( dyn_opt .eq. DYN_GRAPS ) THEN
CALL start_domain_graps( grid, &
!
# include <graps_actual_args.inc>
!
)
#endif
!### 4a. edit share/start_domain.F to call domain inits for core if any
#if (EXP_CORE == 1)
ELSE IF ( dyn_opt .eq. DYN_EXP ) THEN
#endif
ELSE
WRITE(0,*)' start_domain: unknown or unimplemented dyn_opt = ',dyn_opt
STOP
ENDIF
END SUBROUTINE start_domain