Introduction
User subroutines for input of calculation parameters (Fortran modules). These subroutines are called in all cases.
If the Code_Saturne GUI is used, this file is not required (but may be used to override parameters entered through the GUI, and to set parameters not accessible through the GUI).
Several routines are present in the file, each destined to defined specific parameters.
To modify the default value of parameters which do not appear in the examples provided, code should be placed as follows:
- usipsu for numerical and physical options
 
- usipes for input-output related options
 
- usppmo for specific physics options
 
- usipph for additional input of parameters
 
- usati1 for calculation options for the atmospheric module
 
- cs_user_combustion for calculation options for the combustion module
 
- uscfx1 and uscfx2 for non-standard options for the compressible module
 
- uscti1 for the definition of cooling tower model and exchange zones
 
- user_darcy_ini1 for calculation options for the Darcy module
 
As a convention, "specific physics" defers to the following modules only: pulverized coal, gas combustion, electric arcs.
In addition, specific routines are provided for the definition of some "specific physics" options. These routines are described at the end of this file and will be activated when the corresponding option is selected in the usppmo routine.
General options (usipsu)
All options
The following code block presents all the options available in the usipsu subroutine.
 
 
 
 
 
ileaux = 0
 
 
 
ipthrm = 0
 
pthermax= -1.d0
 
sleak = 0.d0
kleak = 2.9d0
 
 
 
 
 
 
if (nmodpp.eq.0) then
  itpscl = 2
endif
 
 
 
 
if (nscaus.gt.0) then
  do ii = 1, nscaus
    iscacp(isca(ii)) = 1
  enddo
endif
 
 
 
iccvfg = 1
 
 
 
 
if (itytur.eq.4) then
  ivrtex = 1
endif
 
 
 
 
 
call field_get_key_struct_var_cal_opt(ivarfl(iu), vcopt)
vcopt%blencv = 1.0d0
call field_set_key_struct_var_cal_opt(ivarfl(iu), vcopt)
 
if (nscaus.ge.1) then
  do ii = 1, nscaus
    call field_get_key_struct_var_cal_opt(ivarfl(isca(ii)), vcopt)
    vcopt%blencv = 1.0d0
    call field_set_key_struct_var_cal_opt(ivarfl(isca(ii)), vcopt)
  enddo
endif
 
 
 
 
 
if (nscaus.ge.1) then
  do ii = 1, nscaus
    call field_get_key_struct_var_cal_opt(ivarfl(isca(ii)), vcopt)
    vcopt%epsilo = 1.d-6
    call field_set_key_struct_var_cal_opt(ivarfl(isca(ii)), vcopt)
  enddo
endif
 
 
 
call field_get_key_struct_var_cal_opt(ivarfl(ipr), vcopt)
vcopt%iswdyn = 1
call field_set_key_struct_var_cal_opt(ivarfl(ipr), vcopt)
 
 
 
irccor = 1
 
 
 
 
 
if (itytur.eq.2) then
  call field_get_key_struct_var_cal_opt(ivarfl(ik), vcopt)
  vcopt%ircflu = 0
  call field_set_key_struct_var_cal_opt(ivarfl(ik), vcopt)
 
  call field_get_key_struct_var_cal_opt(ivarfl(iep), vcopt)
  vcopt%ircflu = 0
  call field_set_key_struct_var_cal_opt(ivarfl(iep), vcopt)
endif
 
 
 
 
reinit_turb = 1
 
 
 
 
if (itytur.eq.3) then
  idirsm = 1
endif
 
 
 
 
iwallf = 5
 
 
 
 
gx = 0.d0
gy = 0.d0
gz = 0.d0
 
 
 
 
 
icorio = 0
 
call rotation_define(0.d0, 0.d0, 0.d0,  &    
                     0.d0, 0.d0, 0.d0)       
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ro0    = 1.17862d0
viscl0 = 1.83337d-5
cp0    = 1017.24d0
 
t0 = 20.d0 + 273.15d0
p0 = 1.01325d5
 
 
 
 
 
 
irovar = 1
ivivar = 1
icp = -1
 
 
xyzp0(1) = 0.d0
xyzp0(2) = 0.d0
xyzp0(3) = 0.d0
 
 
 
 
 
 
 
if (ippmod(icompf).ge.0) then
  ifcvsl = -1
  call field_set_key_int(ivarfl(isca(itempk)), kivisl, ifcvsl)
else if (iscalt.gt.0) then
  ifcvsl = -1
  call field_set_key_int(ivarfl(isca(iscalt)), kivisl, ifcvsl)
endif
 
do iscal = 1, nscaus
  if (iscavr(iscal).le.0) then
    ifcvsl = -1
    call field_set_key_int(ivarfl(isca(iscal)), kivisl, ifcvsl)
  endif
enddo
 
 
 
 
 
 
do iscal = 1, nscaus
  if (iscavr(iscal).le.0) then
    ifcvsl = -1
    call field_set_key_int(ivarfl(isca(iscal)), kromsl, ifcvsl)
  endif
enddo
 
 
 
if (iscalt.gt.0) iturt(iscalt) = 10
 
do jj = 1, nscaus
  iturt(jj) = 10
enddo
 
 
 
uref = 1.d0
 
 
 
almax = 0.5
 
 
 
iescal(iescor) = 2   
iescal(iestot) = 2   
 
 
 
nalinf = 75
 
 
 
nalimx = 15
 
 
 
epalim = 1.d-5
 
 
  
Specific physic activation (usppmo)
The usppmo routine can be found in the cs_user_parameters.f90 file.
 
 
 
 
if (ixmlpu.eq.0) then
 
  ippmod(icod3p) = -1
 
endif
 
 
 
if (ixmlpu.eq.0) then
 
  ippmod(icoebu) = -1
 
endif
 
 
 
if (ixmlpu.eq.0) then
 
  ippmod(icolwc) = -1
 
endif
 
 
 
 
isoot = 0
 
xsoot  = 0.1d0 
rosoot = 2000.d0 
 
 
 
 
if (ixmlpu.eq.0) then
 
  ippmod(icfuel) = -1
 
endif
 
 
if (ixmlpu.eq.0) then
 
  ippmod(iccoal) = -1
 
endif
 
 
i_comb_drift = 1
 
 
 
 
 
if (ixmlpu.eq.0) then
 
  ippmod(icpl3c) = -1
 
endif
 
 
 
if (ixmlpu.eq.0) then
 
  ippmod(icompf) = -1
 
endif
 
 
 
if (ixmlpu.eq.0) then
 
  ippmod(ieljou) = -1
 
endif
 
 
 
if (ixmlpu.eq.0) then
 
  ippmod(ielarc) = -1
 
endif
 
 
 
if (ixmlpu.eq.0) then
 
  ippmod(iatmos) = -1
 
endif
 
 
 
if (ixmlpu.eq.0) then
 
  ippmod(iaeros) = -1
 
endif
 
 
 
ippmod(igmix) = 0
 
 
 
iirayo = 1
 
 
 
ippmod(idarcy) = -1
 
 
 
 
 
if (ixmlpu.eq.0) then
 
  indjon = 1
 
endif
 
 
if (ixmlpu.eq.0) then
 
  
 
  if (     ippmod(icod3p).ge.0                                          &
      .or. ippmod(icoebu).ge.0 .or. ippmod(icolwc).ge.0) then
 
    if (indjon.eq.1) then
      ficfpp = 'dp_C3P'
    else
      ficfpp = 'dp_C3PSJ'
    endif
 
  endif
 
  
 
  if (ippmod(icfuel).ge.0) then
    ficfpp = 'dp_FUE'
  endif
 
  
 
  if (ippmod(iatmos).ge.0) then
    ficmet = 'meteo'
  endif
 
 if (ippmod(igmix).ge.0) then
   
 
   
   
   
   icondb = -1
 
   
   
   
   
   icondv = -1
 endif
 
endif
 
  
Additional input of parameters (usipph)
The usipph routine can be found in the cs_user_parameters.f90 file.
 
Calculation options for the atmospheric module (usati1)
The usati1 routine can be found in the cs_user_parameters.f90 file.
 
 
 
imeteo = 1
 
iatmst = 1
 
 
 
syear = 1994
squant = 1
shour = 1
smin = 0
ssec = 0.d0
 
 
xlon = 0.d0
xlat = 45.d0
 
imbrication_flag    = .false.
imbrication_verbose = .false.
 
cressman_u     = .true.
cressman_v     = .true.
cressman_tke   = .true.
cressman_eps   = .true.
cressman_theta = .true.
cressman_qw    = .true.
cressman_nc    = .true.
 
horizontal_influence_radius = 8500.d0
vertical_influence_radius = 100.d0
 
 
 
ichemistry = 0
 
ifilechemistry = 0
 
isepchemistry = 1
 
iphotolysis = 1
 
dtchemmax = 10.0d0
 
 
iaerosol = 1
 
inogaseouschemistry = 0
 
ncycle_aer = 1
 
icoag_siream = 1
 
icond_siream = 1
 
inucl_siream = 1
 
icut_siream = nbin_aer
 
irdu = 1
soldu = 1
 
  
Calculation options for the combustion module (cs_user_combustion)
The cs_user_combustion routine can be found in the cs_user_parameters.f90 file.
 
 
 
 
ieqco2 = 0
 
 
srrom = 0.8d0
 
 
diftl0 = 4.25d-5
 
 
 
tinfue = 436.d0
tinoxy = 353.d0
 
 
 
cebu   = 2.5d0
 
 
 
vref = 60.d0
lref = 0.1d0
ta   = 0.2d5
tstar= 0.12d4
 
  
Non-standard options for the compressible module (uscfx1)
The uscfx1 routine can be found in the cs_user_parameters.f90 file.
 
 
if (iihmpr.eq.0) then   
 
  
  
  
 
  ifcvsl = -1
  call field_set_key_int(ivarfl(isca(itempk)), kivisl, ifcvsl)
 
  
  
  
 
  iviscv = -1
 
endif
 
  
Non-standard options for the compressible module (uscfx2)
The uscfx2 routine can be found in the cs_user_parameters.f90 file.
 
 
if (iihmpr.eq.0) then   
 
 
  ivivar = 0
 
 
 
  visls0(itempk) = 3.d-2
 
 
 
 
 
  viscv0 = 0.d0
 
 
 
 
  xmasmr = 0.028966
 
 
 
  icfgrp = 1
 
endif
 
  
Definition of cooling tower model and exchange zones (uscti1)
The uscti1 routine can be found in the cs_user_parameters.f90 file.
 
Calculation options for the Darcy module (user_darcy_ini1)
The user_darcy_ini1 routine can be found in the cs_user_parameters.f90 file.
 
darcy_anisotropic_permeability = 0 
 
darcy_anisotropic_dispersion = 0 
 
darcy_unsteady = 0 
 
darcy_convergence_criterion = 0 
 
darcy_gravity = 0