DALESURBAN Program

Uses

  • program~~dalesurban~~UsesGraph program~dalesurban DALESURBAN module~initfac initfac program~dalesurban->module~initfac module~modboundary modboundary program~dalesurban->module~modboundary module~modchecksim modchecksim program~dalesurban->module~modchecksim module~modeb modEB program~dalesurban->module~modeb module~modfielddump modfielddump program~dalesurban->module~modfielddump module~modforces modforces program~dalesurban->module~modforces module~modglobal modglobal program~dalesurban->module~modglobal module~modibm modibm program~dalesurban->module~modibm module~modmpi modmpi program~dalesurban->module~modmpi module~modpois modpois program~dalesurban->module~modpois module~modsave modsave program~dalesurban->module~modsave module~modstartup modstartup program~dalesurban->module~modstartup module~modstat_nc modstat_nc program~dalesurban->module~modstat_nc module~modstatsdump modstatsdump program~dalesurban->module~modstatsdump module~modsubgrid modsubgrid program~dalesurban->module~modsubgrid module~modthermodynamics modthermodynamics program~dalesurban->module~modthermodynamics module~initfac->module~modglobal module~initfac->module~modmpi netcdf netcdf module~initfac->netcdf module~modchecksim->module~modglobal module~modeb->module~modglobal module~modfielddump->module~modglobal module~modfields modfields module~modfielddump->module~modfields module~modibmdata modibmdata module~modibm->module~modibmdata mpi mpi module~modmpi->mpi module~modstat_nc->module~modmpi module~modstat_nc->netcdf module~modstatsdump->module~modglobal module~modstatsdump->module~modmpi module~modsubgriddata modsubgriddata module~modsubgrid->module~modsubgriddata

Calls

program~~dalesurban~~CallsGraph program~dalesurban DALESURBAN proc~advection advection.f90::advection program~dalesurban->proc~advection proc~bottom modibm::bottom program~dalesurban->proc~bottom proc~boundary modboundary::boundary program~dalesurban->proc~boundary proc~checksim modchecksim::checksim program~dalesurban->proc~checksim proc~coriolis modforces::coriolis program~dalesurban->proc~coriolis proc~createwalls modibm::createwalls program~dalesurban->proc~createwalls proc~eb modEB::EB program~dalesurban->proc~eb proc~exitfielddump modfielddump::exitfielddump program~dalesurban->proc~exitfielddump proc~exitmodules modstartup::exitmodules program~dalesurban->proc~exitmodules proc~exitstatsdump modstatsdump::exitstatsdump program~dalesurban->proc~exitstatsdump proc~fielddump modfielddump::fielddump program~dalesurban->proc~fielddump proc~fixthetainf modforces::fixthetainf program~dalesurban->proc~fixthetainf proc~fixuinf1 modforces::fixuinf1 program~dalesurban->proc~fixuinf1 proc~fixuinf2 modforces::fixuinf2 program~dalesurban->proc~fixuinf2 proc~forces modforces::forces program~dalesurban->proc~forces proc~grwdamp modboundary::grwdamp program~dalesurban->proc~grwdamp proc~ibmnorm modibm::ibmnorm program~dalesurban->proc~ibmnorm proc~ibmwallfun modibm::ibmwallfun program~dalesurban->proc~ibmwallfun proc~initchecksim modchecksim::initchecksim program~dalesurban->proc~initchecksim proc~initeb modEB::initEB program~dalesurban->proc~initeb proc~initfielddump modfielddump::initfielddump program~dalesurban->proc~initfielddump proc~initmpi modmpi::initmpi program~dalesurban->proc~initmpi proc~initstat_nc modstat_nc::initstat_nc program~dalesurban->proc~initstat_nc proc~initstatsdump modstatsdump::initstatsdump program~dalesurban->proc~initstatsdump proc~lstend modforces::lstend program~dalesurban->proc~lstend proc~masscorr modforces::masscorr program~dalesurban->proc~masscorr proc~nudge modforces::nudge program~dalesurban->proc~nudge proc~poisson modpois::poisson program~dalesurban->proc~poisson proc~readfacetfiles initfac::readfacetfiles program~dalesurban->proc~readfacetfiles proc~scalsource scalsource.f90::scalsource program~dalesurban->proc~scalsource proc~startup modstartup::startup program~dalesurban->proc~startup proc~statsdump modstatsdump::statsdump program~dalesurban->proc~statsdump proc~subgrid modsubgrid::subgrid program~dalesurban->proc~subgrid proc~thermodynamics modthermodynamics::thermodynamics program~dalesurban->proc~thermodynamics proc~tstep_integrate tstep.f90::tstep_integrate program~dalesurban->proc~tstep_integrate proc~tstep_update tstep.f90::tstep_update program~dalesurban->proc~tstep_update proc~writerestartfiles modsave::writerestartfiles program~dalesurban->proc~writerestartfiles proc~advecc_2nd advec_2nd.f90::advecc_2nd proc~advection->proc~advecc_2nd proc~advecc_kappa advec_kappa.f90::advecc_kappa proc~advection->proc~advecc_kappa proc~advecc_upw advec_upw.f90::advecc_upw proc~advection->proc~advecc_upw proc~advecu_2nd advec_2nd.f90::advecu_2nd proc~advection->proc~advecu_2nd proc~advecv_2nd advec_2nd.f90::advecv_2nd proc~advection->proc~advecv_2nd proc~advecw_2nd advec_2nd.f90::advecw_2nd proc~advection->proc~advecw_2nd proc~wfmneutral wfmneutral.f90::wfmneutral proc~bottom->proc~wfmneutral proc~wfuno wf_uno.f90::wfuno proc~bottom->proc~wfuno proc~cyclichi modboundary::cyclichi proc~boundary->proc~cyclichi proc~cyclichj modboundary::cyclichj proc~boundary->proc~cyclichj proc~cyclicmi modboundary::cyclicmi proc~boundary->proc~cyclicmi proc~cyclicmj modboundary::cyclicmj proc~boundary->proc~cyclicmj proc~cyclicqi modboundary::cyclicqi proc~boundary->proc~cyclicqi proc~cyclicqj modboundary::cyclicqj proc~boundary->proc~cyclicqj proc~cyclicsi modboundary::cyclicsi proc~boundary->proc~cyclicsi proc~cyclicsj modboundary::cyclicsj proc~boundary->proc~cyclicsj proc~drivergen moddriver::drivergen proc~boundary->proc~drivergen proc~fluxtop modboundary::fluxtop proc~boundary->proc~fluxtop proc~fluxtopscal modboundary::fluxtopscal proc~boundary->proc~fluxtopscal proc~inletgen modinlet::inletgen proc~boundary->proc~inletgen proc~inletgennotemp modinlet::inletgennotemp proc~boundary->proc~inletgennotemp proc~inlettop modboundary::inlettop proc~boundary->proc~inlettop proc~iohi modboundary::iohi proc~boundary->proc~iohi proc~iolet modboundary::iolet proc~boundary->proc~iolet proc~ioqi modboundary::ioqi proc~boundary->proc~ioqi proc~iosi modboundary::iosi proc~boundary->proc~iosi proc~scalrec modboundary::scalrec proc~boundary->proc~scalrec proc~scalsirane modboundary::scalSIRANE proc~boundary->proc~scalsirane proc~valuetop modboundary::valuetop proc~boundary->proc~valuetop proc~valuetopscal modboundary::valuetopscal proc~boundary->proc~valuetopscal proc~calccourant modchecksim::calccourant proc~checksim->proc~calccourant proc~calcdiffnr modchecksim::calcdiffnr proc~checksim->proc~calcdiffnr proc~chkdiv modchecksim::chkdiv proc~checksim->proc~chkdiv interface~writestat_nc modstat_nc::writestat_nc proc~eb->interface~writestat_nc mpi_bcast mpi_bcast proc~eb->mpi_bcast proc~calclw modEB::calclw proc~eb->proc~calclw proc~gaussji modEB::gaussji proc~eb->proc~gaussji proc~intqh modEB::intqH proc~eb->proc~intqh proc~matinv4 modEB::matinv4 proc~eb->proc~matinv4 proc~updategr modEB::updateGR proc~eb->proc~updategr proc~writestat_1d_nc modstat_nc::writestat_1D_nc proc~eb->proc~writestat_1d_nc proc~writestat_2d_nc modstat_nc::writestat_2D_nc proc~eb->proc~writestat_2d_nc proc~exitstat_nc modstat_nc::exitstat_nc proc~exitfielddump->proc~exitstat_nc proc~exitfields modfields::exitfields proc~exitmodules->proc~exitfields proc~exitglobal modglobal::exitglobal proc~exitmodules->proc~exitglobal proc~exitinlet modinlet::exitinlet proc~exitmodules->proc~exitinlet proc~exitmpi modmpi::exitmpi proc~exitmodules->proc~exitmpi proc~exitpois modpois::exitpois proc~exitmodules->proc~exitpois proc~exitsubgrid modsubgrid::exitsubgrid proc~exitmodules->proc~exitsubgrid proc~exitthermodynamics modthermodynamics::exitthermodynamics proc~exitmodules->proc~exitthermodynamics proc~fielddump->interface~writestat_nc proc~detfreestream modforces::detfreestream proc~fixuinf1->proc~detfreestream proc~fixuinf2->proc~detfreestream proc~xwallfun modibm::xwallfun proc~ibmwallfun->proc~xwallfun proc~ywallfunmin modibm::ywallfunmin proc~ibmwallfun->proc~ywallfunmin proc~ywallfunplus modibm::ywallfunplus proc~ibmwallfun->proc~ywallfunplus proc~zwallfun modibm::zwallfun proc~ibmwallfun->proc~zwallfun proc~initchecksim->mpi_bcast proc~define_nc modstat_nc::define_nc proc~initeb->proc~define_nc proc~initeb->proc~gaussji proc~initeb->proc~matinv4 proc~ncinfo modstat_nc::ncinfo proc~initeb->proc~ncinfo proc~open_nc modstat_nc::open_nc proc~initeb->proc~open_nc proc~writestat_dims_nc modstat_nc::writestat_dims_nc proc~initeb->proc~writestat_dims_nc proc~initfielddump->mpi_bcast proc~initfielddump->proc~define_nc proc~initfielddump->proc~ncinfo proc~initfielddump->proc~open_nc proc~initfielddump->proc~writestat_dims_nc mpi_cart_create mpi_cart_create proc~initmpi->mpi_cart_create mpi_cart_shift mpi_cart_shift proc~initmpi->mpi_cart_shift mpi_comm_rank mpi_comm_rank proc~initmpi->mpi_comm_rank mpi_comm_size mpi_comm_size proc~initmpi->mpi_comm_size mpi_dims_create mpi_dims_create proc~initmpi->mpi_dims_create mpi_init mpi_init proc~initmpi->mpi_init mpi_wtime mpi_wtime proc~initmpi->mpi_wtime proc~initstatsdump->mpi_bcast proc~initstatsdump->proc~define_nc proc~initstatsdump->proc~ncinfo proc~initstatsdump->proc~open_nc proc~initstatsdump->proc~writestat_dims_nc proc~masscorr->mpi_bcast proc~sumy_ibm modmpi::sumy_ibm proc~masscorr->proc~sumy_ibm proc~fillps modpois::fillps proc~poisson->proc~fillps proc~poisr modpois::poisr proc~poisson->proc~poisr proc~solmpj modpois::solmpj proc~poisson->proc~solmpj proc~tderive modpois::tderive proc~poisson->proc~tderive proc~readfacetfiles->mpi_bcast nf90_get_var nf90_get_var proc~readfacetfiles->nf90_get_var nf90_inq_varid nf90_inq_varid proc~readfacetfiles->nf90_inq_varid nf90_open nf90_open proc~readfacetfiles->nf90_open proc~qsat initfac::qsat proc~readfacetfiles->proc~qsat proc~startup->mpi_bcast proc~calcfluidvolumes modforces::calcfluidvolumes proc~startup->proc~calcfluidvolumes proc~checkinitvalues modstartup::checkinitvalues proc~startup->proc~checkinitvalues proc~createmasks modstartup::createmasks proc~startup->proc~createmasks proc~createscals scalsource.f90::createscals proc~startup->proc~createscals proc~initboundary modboundary::initboundary proc~startup->proc~initboundary proc~initdriver moddriver::initdriver proc~startup->proc~initdriver proc~initfields modfields::initfields proc~startup->proc~initfields proc~initglobal modglobal::initglobal proc~startup->proc~initglobal proc~initinlet modinlet::initinlet proc~startup->proc~initinlet proc~initpois modpois::initpois proc~startup->proc~initpois proc~initsubgrid modsubgrid::initsubgrid proc~startup->proc~initsubgrid proc~initthermodynamics modthermodynamics::initthermodynamics proc~startup->proc~initthermodynamics proc~readinitfiles modstartup::readinitfiles proc~startup->proc~readinitfiles proc~statsdump->interface~writestat_nc proc~avexy_ibm modmpi::avexy_ibm proc~statsdump->proc~avexy_ibm proc~avey_ibm modmpi::avey_ibm proc~statsdump->proc~avey_ibm proc~tkestatsdump modstatsdump::tkestatsdump proc~statsdump->proc~tkestatsdump proc~statsdump->proc~writestat_1d_nc proc~closure modsubgrid::closure proc~subgrid->proc~closure proc~diffc modsubgrid::diffc proc~subgrid->proc~diffc proc~diffe modsubgrid::diffe proc~subgrid->proc~diffe proc~diffu modsubgrid::diffu proc~subgrid->proc~diffu proc~diffv modsubgrid::diffv proc~subgrid->proc~diffv proc~diffw modsubgrid::diffw proc~subgrid->proc~diffw proc~sources modsubgrid::sources proc~subgrid->proc~sources proc~thermodynamics->proc~avexy_ibm proc~calc_halflev modthermodynamics::calc_halflev proc~thermodynamics->proc~calc_halflev proc~calthv modthermodynamics::calthv proc~thermodynamics->proc~calthv proc~diagfld modthermodynamics::diagfld proc~thermodynamics->proc~diagfld proc~thermo modthermodynamics::thermo proc~thermodynamics->proc~thermo proc~chem modchem::chem proc~tstep_integrate->proc~chem mpi_allreduce mpi_allreduce proc~tstep_update->mpi_allreduce interface~writestat_nc->proc~writestat_1d_nc interface~writestat_nc->proc~writestat_2d_nc proc~writestat_3d_nc modstat_nc::writestat_3D_nc interface~writestat_nc->proc~writestat_3d_nc proc~writestat_3d_short_nc modstat_nc::writestat_3D_short_nc interface~writestat_nc->proc~writestat_3d_short_nc proc~writestat_time_nc modstat_nc::writestat_time_nc interface~writestat_nc->proc~writestat_time_nc proc~rlim advec_kappa.f90::rlim proc~advecc_kappa->proc~rlim proc~avexy_ibm->mpi_allreduce proc~avey_ibm->mpi_allreduce proc~calccourant->mpi_allreduce proc~calcdiffnr->mpi_allreduce proc~fluidvolume modforces::fluidvolume proc~calcfluidvolumes->proc~fluidvolume proc~uoutletarea modforces::uoutletarea proc~calcfluidvolumes->proc~uoutletarea proc~voutletarea modforces::voutletarea proc~calcfluidvolumes->proc~voutletarea proc~checkinitvalues->mpi_bcast mpi_finalize mpi_finalize proc~checkinitvalues->mpi_finalize proc~chkdiv->mpi_allreduce proc~closurebc modboundary::closurebc proc~closure->proc~closurebc proc~createmasks->mpi_allreduce proc~createmasks->mpi_bcast proc~excjs modmpi::excjs proc~cyclichj->proc~excjs proc~cyclicmj->proc~excjs proc~cyclicqj->proc~excjs proc~cyclicsj->proc~excjs proc~define_nc->nf90_inq_varid nf90_def_var nf90_def_var proc~define_nc->nf90_def_var nf90_enddef nf90_enddef proc~define_nc->nf90_enddef nf90_inq_dimid nf90_inq_dimid proc~define_nc->nf90_inq_dimid nf90_put_att nf90_put_att proc~define_nc->nf90_put_att nf90_redef nf90_redef proc~define_nc->nf90_redef proc~nchandle_error modstat_nc::nchandle_error proc~define_nc->proc~nchandle_error proc~detfreestream->mpi_allreduce proc~diagfld->proc~avexy_ibm proc~fromztop modthermodynamics::fromztop proc~diagfld->proc~fromztop proc~writedriverfile moddriver::writedriverfile proc~drivergen->proc~writedriverfile proc~exitmpi->mpi_wtime mpi_comm_free mpi_comm_free proc~exitmpi->mpi_comm_free proc~exitmpi->mpi_finalize nf90_close nf90_close proc~exitstat_nc->nf90_close proc~exitstat_nc->proc~nchandle_error proc~bcpup modboundary::bcpup proc~fillps->proc~bcpup proc~initglobal->mpi_bcast float float proc~initglobal->float proc~readzincoord modinlet::readzincoord proc~initinlet->proc~readzincoord proc~subgridnamelist modsubgrid::subgridnamelist proc~initsubgrid->proc~subgridnamelist proc~inletgen->proc~writerestartfiles proc~blthicknesst modinlet::blthicknesst proc~inletgen->proc~blthicknesst proc~dispthicknessexp modinlet::dispthicknessexp proc~inletgen->proc~dispthicknessexp proc~enthalpythickness modinlet::enthalpythickness proc~inletgen->proc~enthalpythickness proc~momentumthicknessexp modinlet::momentumthicknessexp proc~inletgen->proc~momentumthicknessexp proc~readinletfile modinlet::readinletfile proc~inletgen->proc~readinletfile proc~slabsum modmpi::slabsum proc~inletgen->proc~slabsum proc~wallawinlet modinlet::wallawinlet proc~inletgen->proc~wallawinlet proc~writeinletfile modinlet::writeinletfile proc~inletgen->proc~writeinletfile proc~inletgennotemp->proc~writerestartfiles proc~inletgennotemp->proc~blthicknesst proc~inletgennotemp->proc~dispthicknessexp proc~inletgennotemp->proc~momentumthicknessexp proc~inletgennotemp->proc~readinletfile proc~inletgennotemp->proc~slabsum proc~inletgennotemp->proc~wallawinlet proc~inletgennotemp->proc~writeinletfile proc~slabsumi modmpi::slabsumi proc~inlettop->proc~slabsumi proc~intqh->mpi_allreduce proc~iolet->proc~slabsum proc~open_nc->nf90_get_var proc~open_nc->nf90_inq_varid proc~open_nc->nf90_open nf90_create nf90_create proc~open_nc->nf90_create nf90_def_dim nf90_def_dim proc~open_nc->nf90_def_dim proc~open_nc->nf90_def_var proc~open_nc->nf90_enddef proc~open_nc->nf90_inq_dimid nf90_inquire nf90_inquire proc~open_nc->nf90_inquire nf90_inquire_dimension nf90_inquire_dimension proc~open_nc->nf90_inquire_dimension proc~open_nc->nf90_put_att nf90_sync nf90_sync proc~open_nc->nf90_sync blktri blktri proc~poisr->blktri proc~poisr->float proc~all_all_j2 modpois::ALL_ALL_j2 proc~poisr->proc~all_all_j2 proc~barrou modmpi::barrou proc~poisr->proc~barrou vrfftb vrfftb proc~poisr->vrfftb vrfftf vrfftf proc~poisr->vrfftf vrffti vrffti proc~poisr->vrffti proc~readinitfiles->proc~boundary proc~readinitfiles->proc~thermodynamics proc~readinitfiles->mpi_bcast proc~readinitfiles->proc~avexy_ibm proc~readinitfiles->proc~calc_halflev proc~readinitfiles->proc~drivergen proc~randomnize modstartup::randomnize proc~readinitfiles->proc~randomnize proc~readdriverfile moddriver::readdriverfile proc~readinitfiles->proc~readdriverfile proc~readinitfiles->proc~readinletfile proc~readrestartfiles modstartup::readrestartfiles proc~readinitfiles->proc~readrestartfiles proc~readinitfiles->proc~slabsum proc~solmpj->mpi_comm_rank proc~solmpj->mpi_comm_size proc~solmpj->float proc~all_all_j modpois::ALL_ALL_j proc~solmpj->proc~all_all_j rfftb rfftb proc~solmpj->rfftb rfftf rfftf proc~solmpj->rfftf rffti rffti proc~solmpj->rffti proc~sumy_ibm->mpi_allreduce proc~bcp modboundary::bcp proc~tderive->proc~bcp proc~tderive->proc~slabsum proc~tkestatsdump->proc~avexy_ibm proc~tkestatsdump->proc~excjs proc~updategr->proc~qsat proc~unoh wf_uno.f90::unoh proc~wfuno->proc~unoh proc~writestat_1d_nc->nf90_inq_varid nf90_put_var nf90_put_var proc~writestat_1d_nc->nf90_put_var proc~writestat_1d_nc->nf90_sync proc~writestat_2d_nc->nf90_inq_varid proc~writestat_2d_nc->nf90_put_var proc~writestat_2d_nc->nf90_sync proc~writestat_dims_nc->nf90_inq_varid proc~writestat_dims_nc->nf90_inquire_dimension proc~writestat_dims_nc->nf90_put_var proc~xwallfun->proc~wfmneutral proc~xwallfun->proc~wfuno proc~wfgr wf_gr.f90::wfGR proc~xwallfun->proc~wfgr proc~xwallscalar modibm::xwallscalar proc~xwallfun->proc~xwallscalar proc~ywallfunmin->proc~wfmneutral proc~ywallfunmin->proc~wfuno proc~ywallfunmin->proc~wfgr proc~ywallscalarmin modibm::ywallscalarmin proc~ywallfunmin->proc~ywallscalarmin proc~ywallfunplus->proc~wfmneutral proc~ywallfunplus->proc~wfuno proc~ywallfunplus->proc~wfgr proc~ywallscalarplus modibm::ywallscalarplus proc~ywallfunplus->proc~ywallscalarplus proc~zwallfun->proc~wfmneutral proc~zwallfun->proc~wfuno proc~zwallfun->proc~wfgr proc~zwallscalar modibm::zwallscalar proc~zwallfun->proc~zwallscalar mpi_alltoall mpi_alltoall proc~all_all_j->mpi_alltoall proc~all_all_j2->proc~barrou proc~all_all_j2->mpi_alltoall mpi_barrier mpi_barrier proc~barrou->mpi_barrier proc~excj modmpi::excj proc~bcp->proc~excj proc~bcpup->proc~excjs proc~closurebc->proc~excjs mpi_sendrecv mpi_sendrecv proc~excjs->mpi_sendrecv proc~fluidvolume->proc~sumy_ibm nf90_strerror nf90_strerror proc~nchandle_error->nf90_strerror proc~readinletfile->proc~excjs proc~yinterpolate modinlet::yinterpolate proc~readinletfile->proc~yinterpolate proc~zinterpolate modinlet::zinterpolate proc~readinletfile->proc~zinterpolate proc~zinterpolatet modinlet::zinterpolatet proc~readinletfile->proc~zinterpolatet proc~zinterpolatew modinlet::zinterpolatew proc~readinletfile->proc~zinterpolatew proc~zinterpolate1d modinlet::zinterpolate1d proc~readrestartfiles->proc~zinterpolate1d proc~zinterpolate2d modinlet::zinterpolate2d proc~readrestartfiles->proc~zinterpolate2d proc~zinterpolatet1d modinlet::zinterpolatet1d proc~readrestartfiles->proc~zinterpolatet1d proc~zinterpolatew1d modinlet::zinterpolatew1d proc~readrestartfiles->proc~zinterpolatew1d proc~readzincoord->mpi_bcast proc~slabsum->mpi_allreduce proc~slabsumi->mpi_allreduce proc~subgridnamelist->mpi_bcast proc~uoutletarea->proc~sumy_ibm proc~voutletarea->mpi_bcast proc~writestat_3d_nc->nf90_inq_varid proc~writestat_3d_nc->nf90_put_var proc~writestat_3d_nc->nf90_sync proc~writestat_3d_short_nc->nf90_inq_varid proc~writestat_3d_short_nc->nf90_put_var proc~writestat_3d_short_nc->nf90_sync proc~writestat_time_nc->nf90_inq_varid proc~writestat_time_nc->nf90_put_var proc~writestat_time_nc->nf90_sync proc~excj->mpi_sendrecv

Contents

Source Code


Source Code

program DALESURBAN      !Version 48

!!----------------------------------------------------------------
!!     0.0    USE STATEMENTS FOR CORE MODULES
!!----------------------------------------------------------------
  use modmpi,            only : myid, initmpi
  use modglobal,         only : rk3step,timeleft,ib,jb,kb,ke
  use modstartup,        only : startup,exitmodules
  use modsave,           only : writerestartfiles
  use modboundary,       only : boundary, grwdamp,tqaver
  use modthermodynamics, only : thermodynamics
!  use modsurface,        only : surface
  use modsubgrid,        only : subgrid
  use modforces,         only : forces,coriolis,lstend,fixuinf1,fixuinf2,fixthetainf,nudge, masscorr
  use modpois,           only : poisson
  use modibm,            only : createwalls,ibmwallfun,ibmnorm,nearwall,bottom
  use initfac,           only : readfacetfiles
  use modEB,             only : initEB,EB

!----------------------------------------------------------------
!     0.1     USE STATEMENTS FOR ADDONS STATISTICAL ROUTINES
!----------------------------------------------------------------
  use modchecksim,     only : initchecksim, checksim
  use modstat_nc,      only : initstat_nc
  use modfielddump,    only : initfielddump, fielddump,exitfielddump
  use modstatsdump,    only : initstatsdump,statsdump,exitstatsdump    !tg3315
  !use modbudget,       only : initbudget, budgetstat, exitbudget
  implicit none


!----------------------------------------------------------------
!     1      READ NAMELISTS,INITIALISE GRID, CONSTANTS AND FIELDS
!----------------------------------------------------------------
  call initmpi
  write(*,*) "done initmpi"
  call startup
  write(*,*) "done startup"

!---------------------------------------------------------
!      2     INITIALIZE STATISTICAL ROUTINES AND ADD-ONS
!---------------------------------------------------------
  call initchecksim
  call initstat_nc

  call initfielddump
  call initstatsdump !tg3315

  call readfacetfiles
  call initEB
  write(*,*) "done init stuff"

  write(6,*) 'Determine immersed walls'
  call createwalls    ! determine walls/blocks
 ! call nearwall       ! determine minimum distance and corresponding shear components, ils13 10.07.17, commented, not functional at the moment, not needed for vreman but for smag., fix in modibm
  write(6,*) 'Finished determining immersed walls'

  call boundary  !ils13 22.06.2017 inserted boundary here to get values at ghost cells before iteration starts

!  not necessary but abates the fact that temp field is randomised by randomisation of just velocity fields
!  (because advection at start of time loop without being divergence free)
!  call poisson

!------------------------------------------------------
!   3.0   MAIN TIME LOOP
!------------------------------------------------------
  write(*,*)'START myid ', myid
  do while ((timeleft>0) .or. (rk3step < 3))
    call tstep_update

!-----------------------------------------------------
!   3.2   ADVECTION AND DIFFUSION
!-----------------------------------------------------
  
    call advection                ! now also includes predicted pressure gradient term  

    call subgrid
!-----------------------------------------------------
!   3.3   THE SURFACE LAYER
!-----------------------------------------------------

    call bottom

!-----------------------------------------------------
!   3.4   REMAINING TERMS
!-----------------------------------------------------

    call coriolis       !remaining terms of ns equation

    call forces         !remaining terms of ns equation

    call lstend         !large scale forcings

    call nudge          ! nudge top cells of fields to enforce steady-state 

    call ibmwallfun     ! immersed boundary forcing: only shear forces.

    call masscorr       ! correct pred. velocity pup to get correct mass flow
                                                                                         
    call ibmnorm        ! immersed boundary forcing: set normal velocities to zero  

    call EB

    call scalsource     ! adds continuous forces in specified region of domain                                                   

!------------------------------------------------------
!   3.4   EXECUTE ADD ONS
!------------------------------------------------------
    call fixuinf2

    call fixuinf1

!-----------------------------------------------------------------------
!   3.5  PRESSURE FLUCTUATIONS, TIME INTEGRATION AND BOUNDARY CONDITIONS
!-----------------------------------------------------------------------
    call grwdamp        !damping at top of the model

    call poisson

    call tstep_integrate

    call boundary

    call fixthetainf

!-----------------------------------------------------
!   3.6   LIQUID WATER CONTENT AND DIAGNOSTIC FIELDS
!-----------------------------------------------------
    call thermodynamics

!-----------------------------------------------------
!   3.7  WRITE RESTARTFILES AND DO STATISTICS
!------------------------------------------------------

    call checksim
   ! call writedatafiles   ! write data files for later analysis
    call writerestartfiles
    call fielddump
    call statsdump        ! tg3315
 
  end do

!-------------------------------------------------------
!             END OF TIME LOOP
!-------------------------------------------------------

!--------------------------------------------------------
!    4    FINALIZE ADD ONS AND THE MAIN PROGRAM
!-------------------------------------------------------
  call exitfielddump  
  call exitstatsdump     !tg3315
  call exitmodules

end program DALESURBAN