Adding passive tracer to a buoyant plume

Hello,

I am trying to set up an idealized non-hydrostatic simulation of a buoyancy-driven plume rising from a heat source on the bottom. I would like to release a passive tracer at the bottom heat source but could not make it work. I specified the bottom heat and tracer flux (btflx(itemp),btflx(itpas)) in analytical.F. My CPP options are listed below. It is quite puzzling that the temperature profile seems okay but the passive tracer concentration quickly develops very large positive and negative values. I have attached two plots to demonstrate this.

   # define MPI
   # define NBQ
   # define SOLVE3D
   # define NEW_S_COORD
   # define UV_ADV
   # define TS_HADV_WENO5
   # define TS_VADV_WENO5
   # define BIO_HADV_WENO5
   # define UV_HADV_WENO5
   # define UV_VADV_WENO5
   # define W_HADV_WENO5
   # define W_VADV_WENO5
   # define SALINITY
   # define PASSIVE_TRACER
   # define ANA_GRID
   # define ANA_INITIAL
   # define ANA_SMFLUX
   # define ANA_STFLUX
   # define ANA_SRFLUX
   # define ANA_BTFLUX
   # define ANA_SSFLUX
   # define ANA_BSFLUX
   # define NO_FRCFILE
   # define NONLIN_EOS
   # define SPLIT_EOS
   # define UV_VIS_SMAGO_3D


I am wondering if some of my CPP options are not appropriate when a passive tracer is added? I would appreciate it very much if anyone can provide some suggestions.

Hello,

I think I have discovered the cause of the problem with adding passive tracer. In ‘Step3d_t.F’, the surface flux term ‘FC’ for passive tracer is not defined. I added the following commands after line 388 in Step3d_t.F’. The simulation results look reasonable after this change.

Cheers!
Guangyu

ifdef PASSIVE_TRACER

390 elseif (itrc.eq.itpas) then
391 do k=1,N-1
392 do i=Istr,Iend
393 FC(i,k)=0.
394 # if defined LMD_SKPP || defined LMD_BKPP
395 # ifdef LMD_NONLOCAL
396 & -dt*ghats(i,j,k)*stflx(i,j,itpas)
397 # endif
398 # endif
399 enddo
400 enddo
401 # endif