70    INTEGER   :: momentum1, momentum2
 
   98    TYPE(
dict_typ),           
POINTER     :: config, IO
 
  102    CALL getattr(config,
"stype",stype)
 
  111      CALL this%Error(
"InitSources_shearbox",
"physics not supported")
 
  114    SELECT TYPE(geo=>mesh%Geometry)
 
  118      CALL this%Error(
"InitSources_shearbox",
"mesh not supported")
 
  123    this%accel%data1d(:) = 0.
 
  125    IF(mesh%shear_dir.EQ.2) 
THEN 
  126      this%Vel1=physics%YVELOCITY
 
  127      this%Vel2=physics%XVELOCITY
 
  132      this%MOMENTUM1 = physics%XMOMENTUM
 
  133      this%MOMENTUM2 = physics%YMOMENTUM
 
  134    ELSE IF(mesh%shear_dir.EQ.1) 
THEN 
  135      this%Vel1=physics%XVELOCITY
 
  136      this%Vel2=physics%YVELOCITY
 
  141      this%MOMENTUM1 = physics%YMOMENTUM
 
  142      this%MOMENTUM2 = physics%XMOMENTUM
 
  147    IF (mesh%KNUM.GT.1) 
THEN 
  148      this%accel%data2d(:,3) = -mesh%OMEGA**2 * mesh%cart%data3d(:,2,3)
 
  152    CALL this%InfoSources(mesh)
 
  162    CHARACTER(LEN=32)       :: omega_str,q_str
 
  164    WRITE (omega_str,
'(ES10.2)') mesh%OMEGA
 
  165    WRITE (q_str,
'(ES10.2)')     mesh%Q
 
  166    CALL this%Info(
"            angular velocity:  " // trim(omega_str))
 
  167    CALL this%Info(
"            shearing parameter:" // trim(q_str))
 
  186    REAL,                    
INTENT(IN)    :: time, dt
 
  189    SELECT CASE(mesh%fargo%GetType())
 
  193      this%accel%data4d(:,:,:,this%I1) = 2*mesh%OMEGA &
 
  194              * (mesh%Q*mesh%OMEGA*mesh%bcenter(:,:,:,this%I1) &
 
  195               + this%SIGN1*pvar%data4d(:,:,:,this%VEL1))
 
  196      this%accel%data4d(:,:,:,this%I2) = 2*mesh%OMEGA*this%SIGN2 &
 
  197              * pvar%data4d(:,:,:,this%VEL2)
 
  199      CALL physics%ExternalSources(this%accel,pvar,cvar,sterm)
 
  202      sterm%data2d(:,physics%DENSITY) = 0.0
 
  204      sterm%data2d(:,this%MOMENTUM1) = pvar%data2d(:,physics%DENSITY) &
 
  205        *mesh%OMEGA*2.0*this%SIGN1*pvar%data2d(:,this%VEL1)
 
  206      sterm%data2d(:,this%MOMENTUM2) = pvar%data2d(:,physics%DENSITY) &
 
  207        *mesh%OMEGA*(2.0-mesh%Q)*this%SIGN2*pvar%data2d(:,this%VEL2)
 
  208      IF (mesh%KNUM.GT.1) &
 
  209        sterm%data2d(:,physics%ZMOMENTUM) = pvar%data2d(:,physics%DENSITY) &
 
  210          *this%accel%data2d(:,3)
 
  211      IF (physics%PRESSURE .GT. 0) 
THEN 
  212        sterm%data2d(:,physics%ENERGY) = &
 
  213             this%SIGN1*pvar%data2d(:,physics%DENSITY)*mesh%Q*mesh%OMEGA* &
 
  214             pvar%data2d(:,this%VEL2)*pvar%data2d(:,this%VEL1)
 
  215        IF (mesh%KNUM.GT.1) &
 
  216          sterm%data2d(:,physics%ENERGY) = sterm%data2d(:,physics%ENERGY) &
 
  217            + cvar%data2d(:,physics%ZMOMENTUM)*this%accel%data2d(:,3)
 
  221      CALL this%Error(
"sources_shearbox::ExternalSources_single", &
 
  222                      "currently only Fargo transport type 3 is supported")
 
Dictionary for generic data types.
base module for numerical flux functions
defines properties of a 3D cartesian mesh
base class for mesh arrays
derived class for compound of mesh arrays
physics module for 1D,2D and 3D non-isothermal Euler equations
physics module for 1D,2D and 3D isothermal Euler equations
generic source terms module providing functionaly common to all source terms
source terms module for constant acceleration
character(len=32), parameter source_name
subroutine externalsources(this, Mesh, Physics, Fluxes, Sources, time, dt, pvar, cvar, sterm)
subroutine initsources(this, Mesh, Physics, Fluxes, config, IO)
Source terms module for fictious forces in a shearingsheet.
subroutine infosources(this, Mesh)
Write shearbox fictious forces parameters to screen.