boundcond
Module
Description
$Id$
Module for boundary conditions. Extracted from (no)mpicomm, since all non-periodic (external) boundary conditions require the same code for serial and parallel runs.
Quick access
- Variables:
average_xy,bc_a1s_z,bc_a2r_x,bc_aa_pot,bc_aa_pot2,bc_aa_pot3,bc_aa_pot_1d,bc_aa_pot_field_extrapol,bc_adi_flux_z,bc_antis_x,bc_aper_y,bc_c1_x,bc_c1_z,bc_cdz,bc_copy_x,bc_copy_y,bc_copy_y_noinflow,bc_copy_z,bc_copy_z_noinflow,bc_cpc_x,bc_cpp_x,bc_cpz_x,bc_csymderset_y,bc_ct_z,bc_ctz,bc_d1s_x,bc_d1s_y,bc_d1s_z,bc_db_x,bc_db_z,bc_del2zero,bc_dr0_x,bc_expother_x,bc_expother_y,bc_expother_z,bc_extrap0_2_0,bc_extrap0_2_1,bc_extrap0_2_2,bc_extrap_2_1,bc_extrap_2_2,bc_file_x,bc_fix_x,bc_force_aa_time,bc_force_axy_sin_cos,bc_force_ux_time,bc_force_uxy_sin_cos,bc_force_x,bc_force_z,bc_freeze_var_x,bc_freeze_var_y,bc_freeze_var_z,bc_frozen_in_bb,bc_ghost_slope_x,bc_hs_z,bc_hse_z,bc_inflow_inwards_deriv_z,bc_inflow_x,bc_inflow_z,bc_inflow_zero_deriv_z,bc_inlet_outlet_cyl,bc_lntt_flux_x,bc_lntt_flux_z,bc_n1s_x,bc_n1s_z,bc_one_x,bc_one_y,bc_one_z,bc_onesided_x,bc_onesided_x_old,bc_onesided_y,bc_onesided_z,bc_onesided_z_orig,bc_outflow_outwards_deriv_z,bc_outflow_x,bc_outflow_x_e1,bc_outflow_y,bc_outflow_z,bc_outflow_zero_deriv_z,bc_overshoot_x,bc_overshoot_z,bc_pencil,bc_pencil_scalar,bc_pencil_vector,bc_pp_hds_z_iso,bc_pper_y,bc_set_der_x,bc_set_der_y,bc_set_der_z,bc_set_div_z,bc_set_jet_x,bc_set_jethat_x,bc_set_nfr_x,bc_set_nfr_y,bc_set_nr1_x,bc_set_pfc_x,bc_set_pfc_y,bc_set_sa2_x,bc_set_sfree_x,bc_set_sfree_y,bc_set_spder_x,bc_set_sr1_x,bc_set_val_x,bc_set_val_y,bc_set_val_z,bc_sf_x,bc_sf_y,bc_sf_z,bc_shear_x,bc_shear_y,bc_shear_z,bc_slope_x,bc_spr_x,bc_spt_y,bc_ss_flux_x,bc_st,bc_st2,bc_steady_z,bc_stratified_y,bc_stratified_z,bc_sts,bc_sym_x,bc_sym_x_ydep,bc_sym_x_ydep2,bc_sym_y,bc_symderset_x,bc_symderset_y,bc_symset0der_x,bc_symset0der_y,bc_symset0der_z,bc_symset0der_z_v2,bc_symset_x,bc_symset_y,bc_van3rd_y,bc_van3rd_z,bc_van_x,bc_van_y,bc_van_z,bc_win_z,bc_wind_density_x,bc_wind_z,bc_yy_y,bc_yy_z,bc_zero_x,bc_zero_y,bc_zero_z,bcx_extrap_2_1,bcx_extrap_2_2,bcx_extrap_2_3,bcx_extrap_frac_2,bcx_extrap_linear,bcx_extrap_powerlaw,bcy_extrap_2_1,bcy_extrap_2_2,bcy_extrap_2_3,bcz_extrapol,bcz_extrapol_damped,bcz_extrapol_fixed,bcz_extrapol_mean,bcz_hydrostatic_rho,bcz_hydrostatic_temp,check_boundconds_x,check_boundconds_y,check_boundconds_z,check_consistency_of_lperi,get_slice_data,heatflux_boundcond_x,is_vec,jdone,nt_slices,potentdiv,potential_field,set_from_slice_x,set_from_slice_y,set_from_slice_z,slc_dat_xy,slc_dat_xy2,slc_dat_xz,slc_dat_xz2,slc_dat_yz,slc_dat_yz2,sz_slc_chunk,tayler_expansion,update_ghosts,update_ghosts_all,update_ghosts_range,uu_driver,warning_lperi,zero_ghosts,zero_ghosts_all,zero_ghosts_range- Routines:
bc_per_x(),bc_per_y(),bc_per_z(),boundconds(),boundconds_x(),boundconds_x_c(),boundconds_y(),boundconds_y_c(),boundconds_z(),boundconds_z_c(),copy_bcs(),finalize_boundcond(),initialize_boundcond(),jet_x(),set_consistent_density_boundary(),set_consistent_vel_boundary(),set_periodic_boundcond_on_aux(),update_ghosts()
Needed modules
cdata: $Id$messages: $Id$mpicomm: $Id$deriv(set_ghosts_for_onesided_ders(),bval_from_neumann(),bval_from_3rd()): $Id$general: $Id$
Variables
- boundcond/average_xy [private]
- boundcond/bc_a1s_z [private]
- boundcond/bc_a2r_x [private]
- boundcond/bc_aa_pot [private]
- boundcond/bc_aa_pot2 [private]
- boundcond/bc_aa_pot3 [private]
- boundcond/bc_aa_pot_1d [private]
- boundcond/bc_aa_pot_field_extrapol [private]
- boundcond/bc_adi_flux_z [private]
- boundcond/bc_antis_x [private]
- boundcond/bc_c1_x [private]
- boundcond/bc_c1_z [private]
- boundcond/bc_cdz [private]
- boundcond/bc_copy_x [private]
- boundcond/bc_copy_y [private]
- boundcond/bc_copy_y_noinflow [private]
- boundcond/bc_copy_z [private]
- boundcond/bc_copy_z_noinflow [private]
- boundcond/bc_cpc_x [private]
- boundcond/bc_cpp_x [private]
- boundcond/bc_cpz_x [private]
- boundcond/bc_csymderset_y [private]
- boundcond/bc_ct_z [private]
- boundcond/bc_ctz [private]
- boundcond/bc_d1s_x [private]
- boundcond/bc_d1s_y [private]
- boundcond/bc_d1s_z [private]
- boundcond/bc_db_x [private]
- boundcond/bc_db_z [private]
- boundcond/bc_del2zero [private]
- boundcond/bc_dr0_x [private]
- boundcond/bc_expother_x [private]
- boundcond/bc_expother_y [private]
- boundcond/bc_expother_z [private]
- boundcond/bc_extrap0_2_0 [private]
- boundcond/bc_extrap0_2_1 [private]
- boundcond/bc_extrap0_2_2 [private]
- boundcond/bc_extrap_2_1 [private]
- boundcond/bc_extrap_2_2 [private]
- boundcond/bc_file_x [private]
- boundcond/bc_fix_x [private]
- boundcond/bc_force_aa_time [private]
- boundcond/bc_force_axy_sin_cos [private]
- boundcond/bc_force_ux_time [private]
- boundcond/bc_force_uxy_sin_cos [private]
- boundcond/bc_force_x [private]
- boundcond/bc_force_z [private]
- boundcond/bc_freeze_var_x [private]
- boundcond/bc_freeze_var_y [private]
- boundcond/bc_freeze_var_z [private]
- boundcond/bc_frozen_in_bb [private]
- boundcond/bc_ghost_slope_x [private]
- boundcond/bc_hs_z [private]
- boundcond/bc_hse_z [private]
- boundcond/bc_inflow_inwards_deriv_z [private]
- boundcond/bc_inflow_x [private]
- boundcond/bc_inflow_z [private]
- boundcond/bc_inflow_zero_deriv_z [private]
- boundcond/bc_inlet_outlet_cyl [private]
- boundcond/bc_lntt_flux_x [private]
- boundcond/bc_lntt_flux_z [private]
- boundcond/bc_n1s_x [private]
- boundcond/bc_n1s_z [private]
- boundcond/bc_one_x [private]
- boundcond/bc_one_y [private]
- boundcond/bc_one_z [private]
- boundcond/bc_onesided_x_old [private]
- boundcond/bc_outflow_outwards_deriv_z [private]
- boundcond/bc_outflow_x [private]
- boundcond/bc_outflow_x_e1 [private]
- boundcond/bc_outflow_y [private]
- boundcond/bc_outflow_z [private]
- boundcond/bc_outflow_zero_deriv_z [private]
- boundcond/bc_overshoot_x [private]
- boundcond/bc_overshoot_z [private]
- boundcond/bc_pencil [public]
- boundcond/bc_pencil_scalar [private]
- boundcond/bc_pencil_vector [private]
- boundcond/bc_pp_hds_z_iso [private]
- boundcond/bc_pper_y [private]
- boundcond/bc_set_der_x [private]
- boundcond/bc_set_der_y [private]
- boundcond/bc_set_der_z [private]
- boundcond/bc_set_div_z [private]
- boundcond/bc_set_jet_x [private]
- boundcond/bc_set_jethat_x [private]
- boundcond/bc_set_nfr_x [private]
- boundcond/bc_set_nfr_y [private]
- boundcond/bc_set_nr1_x [private]
- boundcond/bc_set_pfc_x [private]
- boundcond/bc_set_pfc_y [private]
- boundcond/bc_set_sa2_x [private]
- boundcond/bc_set_sfree_x [private]
- boundcond/bc_set_sfree_y [private]
- boundcond/bc_set_spder_x [private]
- boundcond/bc_set_sr1_x [private]
- boundcond/bc_set_val_x [private]
- boundcond/bc_set_val_y [private]
- boundcond/bc_set_val_z [private]
- boundcond/bc_sf_x [private]
- boundcond/bc_sf_y [private]
- boundcond/bc_sf_z [private]
- boundcond/bc_shear_x [private]
- boundcond/bc_shear_y [private]
- boundcond/bc_shear_z [private]
- boundcond/bc_slope_x [private]
- boundcond/bc_spr_x [private]
- boundcond/bc_spt_y [private]
- boundcond/bc_ss_flux_x [private]
- boundcond/bc_st [private]
- boundcond/bc_st2 [private]
- boundcond/bc_steady_z [private]
- boundcond/bc_stratified_y [private]
- boundcond/bc_stratified_z [private]
- boundcond/bc_sts [private]
- boundcond/bc_sym_x [private]
- boundcond/bc_sym_x_ydep [private]
- boundcond/bc_sym_x_ydep2 [private]
- boundcond/bc_sym_y [private]
- boundcond/bc_sym_z [private]
- boundcond/bc_symderset_x [private]
- boundcond/bc_symderset_y [private]
- boundcond/bc_symset0der_x [private]
- boundcond/bc_symset0der_y [private]
- boundcond/bc_symset0der_z [private]
- boundcond/bc_symset0der_z_v2 [private]
- boundcond/bc_symset_x [private]
- boundcond/bc_symset_y [private]
- boundcond/bc_van3rd_y [private]
- boundcond/bc_van3rd_z [private]
- boundcond/bc_van_x [private]
- boundcond/bc_van_y [private]
- boundcond/bc_van_z [private]
- boundcond/bc_win_z [private]
- boundcond/bc_wind_density_x [private]
- boundcond/bc_wind_z [private]
- boundcond/bc_yy_y [private]
- boundcond/bc_yy_z [private]
- boundcond/bc_zero_x [private]
- boundcond/bc_zero_y [private]
- boundcond/bc_zero_z [private]
- boundcond/bcx_extrap_2_1 [private]
- boundcond/bcx_extrap_2_2 [private]
- boundcond/bcx_extrap_2_3 [private]
- boundcond/bcx_extrap_frac_2 [private]
- boundcond/bcx_extrap_linear [private]
- boundcond/bcx_extrap_powerlaw [private]
- boundcond/bcy_extrap_2_1 [private]
- boundcond/bcy_extrap_2_2 [private]
- boundcond/bcy_extrap_2_3 [private]
- boundcond/bcz_extrapol [private]
- boundcond/bcz_extrapol_damped [private]
- boundcond/bcz_extrapol_fixed [private]
- boundcond/bcz_extrapol_mean [private]
- boundcond/bcz_hydrostatic_rho [private]
- boundcond/bcz_hydrostatic_temp [private]
- boundcond/check_boundconds_x [private]
- boundcond/check_boundconds_y [private]
- boundcond/check_boundconds_z [private]
- boundcond/check_consistency_of_lperi [private]
- boundcond/cp [real,private/optional/default=impossible]
- boundcond/cp1 [real,private/optional/default=impossible]
- boundcond/cv [real,private/optional/default=impossible]
- boundcond/gamma [real,private/optional/default=impossible]
- boundcond/gamma1 [real,private/optional/default=impossible]
- boundcond/gamma_m1 [real,private/optional/default=impossible]
- boundcond/get_slice_data [private]
- boundcond/hcondadi (*) [real,private/pointer]
- boundcond/heatflux_boundcond_x [private]
- boundcond/is_vec [logical,private/optional/default=.false.]
- boundcond/jdone [integer,private/optional/default=0]
- boundcond/nt_slices [integer,private/optional/default=0]
- boundcond/potentdiv [private]
- boundcond/potential_field [private]
- boundcond/set_from_slice_x [private]
- boundcond/set_from_slice_y [private]
- boundcond/set_from_slice_z [private]
- boundcond/slc_dat_xy [scattered_array,private/pointer]
- boundcond/slc_dat_xy2 [scattered_array,private/pointer]
- boundcond/slc_dat_xz [scattered_array,private/pointer]
- boundcond/slc_dat_xz2 [scattered_array,private/pointer]
- boundcond/slc_dat_yz [scattered_array,private/pointer]
- boundcond/slc_dat_yz2 [scattered_array,private/pointer]
- boundcond/sz_slc_chunk [integer,private/parameter/optional/default=20]
- boundcond/tayler_expansion [private]
- boundcond/update_ghosts [public]
- boundcond/update_ghosts_all [private]
- boundcond/update_ghosts_range [private]
- boundcond/uu_driver [private]
- boundcond/warning_lperi [private]
- boundcond/zero_ghosts [public]
- boundcond/zero_ghosts_all [private]
- boundcond/zero_ghosts_range [private]
Subroutines and functions
- subroutine boundcond/initialize_boundcond(f)
Initialization for reading boundary values from slices: bc_slc_dir - working directory where these reside.
- Parameters:
f (,,*,*) [real,contiguous] :: set bdry value=0 (indep of initcond)
- Use :
sub(position()),file_io(file_exists()),syscalls(directory_exists()),io(io_strategy()),hdf5_io(input_dim()),equationofstate(get_gamma_etc()),sharedvariables(get_shared_variable())- Called from:
helper_loop(),reload(),gen_output(),timeloop(),check_tspec_crit_log_interval(),check_tsnap_crit_log_interval(),check_tvid_crit_log_interval(),setup_signal_files(),print_metrics(),run_start(),start- Call to:
get_gamma_etc(),information(),fatal_error(),directory_exists(),input_dim(),mpibarrier(),position(),fatal_error_local(),boundconds_x(),boundconds_y(),boundconds_z(),bc_stellar_surface(),boundcond_shear(),bc_per_x(),set_ghosts_for_onesided_ders(),bc_ss_temp_x(),bc_ss_flux_turb_x(),bc_ss_flux_condturb_x(),bc_ss_flux_condturb_mean_x(),bc_ss_stemp_x(),bc_ss_a2stemp_x(),bc_lnrho_cfb_r_iso(),special_boundconds(),bc_per_y(),bc_ss_temp_y(),bc_ss_stemp_y(),bc_ss_a2stemp_y(),bc_per_z(),bc_ss_flux(),bc_ss_flux_turb(),bc_ss_flux_condturb_z(),bc_lnrho_hdss_z_iso(),bc_ss_temp_z(),bc_ss_temp2_z(),bc_ss_temp3_z(),bc_lnrho_pressure_z(),bc_ss_stemp_z(),bc_ism(),bc_ss_a2stemp_z(),bc_ss_temp_old(),bc_ss_energy(),pc_aasb_const_alpha(),bc_lnrho_temp_z(),bc_lnrho_hds_z_iso(),warning(),jet_x(),communicate_xy_ghosts(),setup_extrapol_fact(),field_extrapol_z_parallel(),communicate_vect_field_ghosts(),heatflux_deriv_x(),fourier_transform_xy_xy(),vect_pot_extrapol_z_parallel(),fourier_transform_y_y(),not_implemented()
- subroutine boundcond/boundconds(f[, ivar1_opt[, ivar2_opt]])
Apply boundary conditions in all three directions. Note that we _must_ call boundconds_{x,y,z} in this order, or edges and corners will not be OK.
10-oct-02/wolf: coded
- Parameters:
f (,,*,*) [real,contiguous]
ivar1_opt [integer]
ivar2_opt [integer]
- Call to:
boundconds_x(),boundconds_y(),boundconds_z(),bc_stellar_surface(),boundcond_shear(),bc_per_x(),set_ghosts_for_onesided_ders(),bc_ss_temp_x(),bc_ss_flux_turb_x(),bc_ss_flux_condturb_x(),bc_ss_flux_condturb_mean_x(),bc_ss_stemp_x(),bc_ss_a2stemp_x(),bc_lnrho_cfb_r_iso(),special_boundconds(),fatal_error(),bc_per_y(),bc_ss_temp_y(),bc_ss_stemp_y(),bc_ss_a2stemp_y(),bc_per_z(),bc_ss_flux(),bc_ss_flux_turb(),bc_ss_flux_condturb_z(),bc_lnrho_hdss_z_iso(),bc_ss_temp_z(),bc_ss_temp2_z(),bc_ss_temp3_z(),bc_lnrho_pressure_z(),bc_ss_stemp_z(),bc_ism(),bc_ss_a2stemp_z(),bc_ss_temp_old(),bc_ss_energy(),pc_aasb_const_alpha(),bc_lnrho_temp_z(),bc_lnrho_hds_z_iso(),fatal_error_local(),warning(),jet_x(),communicate_xy_ghosts(),setup_extrapol_fact(),field_extrapol_z_parallel(),communicate_vect_field_ghosts(),get_gamma_etc(),heatflux_deriv_x(),fourier_transform_xy_xy(),vect_pot_extrapol_z_parallel(),fourier_transform_y_y(),not_implemented()
- subroutine boundcond/boundconds_x_c(f[, ivar1_opt[, ivar2_opt]])
Envelope for being called from C code.
- Parameters:
f (,,*,*) [real,contiguous] :: set bdry value=0 (indep of initcond)
ivar1_opt [integer]
ivar2_opt [integer]
- Call to:
boundconds_x(),bc_stellar_surface(),boundcond_shear(),bc_per_x(),set_ghosts_for_onesided_ders(),bc_ss_temp_x(),bc_ss_flux_turb_x(),bc_ss_flux_condturb_x(),bc_ss_flux_condturb_mean_x(),bc_ss_stemp_x(),bc_ss_a2stemp_x(),bc_lnrho_cfb_r_iso(),special_boundconds(),fatal_error(),boundconds_y(),bc_per_y(),bc_ss_temp_y(),bc_ss_stemp_y(),bc_ss_a2stemp_y(),boundconds_z(),bc_per_z(),bc_ss_flux(),bc_ss_flux_turb(),bc_ss_flux_condturb_z(),bc_lnrho_hdss_z_iso(),bc_ss_temp_z(),bc_ss_temp2_z(),bc_ss_temp3_z(),bc_lnrho_pressure_z(),bc_ss_stemp_z(),bc_ism(),bc_ss_a2stemp_z(),bc_ss_temp_old(),bc_ss_energy(),pc_aasb_const_alpha(),bc_lnrho_temp_z(),bc_lnrho_hds_z_iso(),fatal_error_local(),warning(),jet_x(),communicate_xy_ghosts(),setup_extrapol_fact(),field_extrapol_z_parallel(),communicate_vect_field_ghosts(),get_gamma_etc(),heatflux_deriv_x(),fourier_transform_xy_xy(),vect_pot_extrapol_z_parallel(),fourier_transform_y_y(),not_implemented()
- subroutine boundcond/boundconds_x(f[, ivar1_opt[, ivar2_opt]])
Boundary conditions in x, except for periodic part handled by communication. Remark: boundconds_x() needs to be called before communicating (because we communicate the x-ghost points), boundconds_[yz] after communication has finished (they need some of the data communicated for the edges (yz-‘corners’).
8-jul-02/axel: split up into different routines for x,y and z directions
11-nov-02/wolf: unified bot/top, now handled by loop 15-dec-06/wolf: Replaced “if (bcx1(1)==’she’) then” by “any” command 30-sep-16/MR: new BCs ‘n1s’ = Neumann + 1-sided, “c1s” = heatflux + 1-sided (only for z boundaries)
- Parameters:
f (,,*,*) [real,contiguous]
ivar1_opt [integer]
ivar2_opt [integer]
- Use :
- Call to:
boundcond_shear(),bc_per_x(),set_ghosts_for_onesided_ders(),bc_ss_temp_x(),bc_ss_flux_turb_x(),bc_ss_flux_condturb_x(),bc_ss_flux_condturb_mean_x(),bc_ss_stemp_x(),bc_ss_a2stemp_x(),bc_lnrho_cfb_r_iso(),special_boundconds(),fatal_error(),boundconds_y(),bc_per_y(),bc_ss_temp_y(),bc_ss_stemp_y(),bc_ss_a2stemp_y(),boundconds_z(),bc_per_z(),bc_ss_flux(),bc_ss_flux_turb(),bc_ss_flux_condturb_z(),bc_lnrho_hdss_z_iso(),bc_ss_temp_z(),bc_ss_temp2_z(),bc_ss_temp3_z(),bc_lnrho_pressure_z(),bc_ss_stemp_z(),bc_ism(),bc_ss_a2stemp_z(),bc_ss_temp_old(),bc_ss_energy(),pc_aasb_const_alpha(),bc_lnrho_temp_z(),bc_lnrho_hds_z_iso(),fatal_error_local(),warning(),jet_x(),communicate_xy_ghosts(),setup_extrapol_fact(),field_extrapol_z_parallel(),communicate_vect_field_ghosts(),get_gamma_etc(),heatflux_deriv_x(),fourier_transform_xy_xy(),vect_pot_extrapol_z_parallel(),fourier_transform_y_y(),not_implemented(),boundconds_x()
- subroutine boundcond/boundconds_y_c(f[, ivar1_opt[, ivar2_opt]])
Envelope for being called from C code.
- Parameters:
f (,,*,*) [real,contiguous] :: set bdry value=0 (indep of initcond)
ivar1_opt [integer]
ivar2_opt [integer]
- Call to:
boundconds_y(),bc_per_y(),set_ghosts_for_onesided_ders(),bc_ss_temp_y(),bc_ss_stemp_y(),bc_ss_a2stemp_y(),special_boundconds(),fatal_error(),boundconds_z(),bc_per_z(),bc_ss_flux(),bc_ss_flux_turb(),bc_ss_flux_condturb_z(),bc_lnrho_hdss_z_iso(),bc_ss_temp_z(),bc_ss_temp2_z(),bc_ss_temp3_z(),bc_lnrho_pressure_z(),bc_ss_stemp_z(),bc_ism(),bc_ss_a2stemp_z(),bc_ss_temp_old(),bc_ss_energy(),pc_aasb_const_alpha(),bc_lnrho_temp_z(),bc_lnrho_hds_z_iso(),fatal_error_local(),warning(),jet_x(),communicate_xy_ghosts(),setup_extrapol_fact(),field_extrapol_z_parallel(),communicate_vect_field_ghosts(),get_gamma_etc(),heatflux_deriv_x(),fourier_transform_xy_xy(),vect_pot_extrapol_z_parallel(),fourier_transform_y_y(),not_implemented(),boundconds_x(),bc_per_x()
- subroutine boundcond/boundconds_y(f[, ivar1_opt[, ivar2_opt]])
Boundary conditions in y, except for periodic part handled by communication. Remark: boundconds_x() needs to be called before communicating (because we communicate the x-ghost points), boundconds_[yz] after communication has finished (they need some of the data communicated for the edges (yz-‘corners’).
8-jul-02/axel: split up into different routines for x,y and z directions
11-nov-02/wolf: unified bot/top, now handled by loop
- Parameters:
f (,,*,*) [real,contiguous]
ivar1_opt [integer]
ivar2_opt [integer]
- Use :
general(var_is_vec()),special(special_boundconds()),equationofstate- Call to:
bc_per_y(),set_ghosts_for_onesided_ders(),bc_ss_temp_y(),bc_ss_stemp_y(),bc_ss_a2stemp_y(),special_boundconds(),fatal_error(),boundconds_z(),bc_per_z(),bc_ss_flux(),bc_ss_flux_turb(),bc_ss_flux_condturb_z(),bc_lnrho_hdss_z_iso(),bc_ss_temp_z(),bc_ss_temp2_z(),bc_ss_temp3_z(),bc_lnrho_pressure_z(),bc_ss_stemp_z(),bc_ism(),bc_ss_a2stemp_z(),bc_ss_temp_old(),bc_ss_energy(),pc_aasb_const_alpha(),bc_lnrho_temp_z(),bc_lnrho_hds_z_iso(),fatal_error_local(),warning(),jet_x(),communicate_xy_ghosts(),setup_extrapol_fact(),field_extrapol_z_parallel(),communicate_vect_field_ghosts(),get_gamma_etc(),heatflux_deriv_x(),fourier_transform_xy_xy(),vect_pot_extrapol_z_parallel(),fourier_transform_y_y(),not_implemented(),boundconds_x(),bc_per_x()
- subroutine boundcond/boundconds_z_c(f[, ivar1_opt[, ivar2_opt]])
Envelope for being called from C code.
- Parameters:
f (,,*,*) [real,contiguous] :: set bdry value=0 (indep of initcond)
ivar1_opt [integer]
ivar2_opt [integer]
- Call to:
boundconds_z(),bc_per_z(),set_ghosts_for_onesided_ders(),bc_ss_flux(),bc_ss_flux_turb(),bc_ss_flux_condturb_z(),bc_lnrho_hdss_z_iso(),bc_ss_temp_z(),bc_ss_temp2_z(),bc_ss_temp3_z(),bc_lnrho_pressure_z(),bc_ss_stemp_z(),bc_ism(),bc_ss_a2stemp_z(),bc_ss_temp_old(),bc_ss_energy(),special_boundconds(),fatal_error(),pc_aasb_const_alpha(),bc_lnrho_temp_z(),bc_lnrho_hds_z_iso(),fatal_error_local(),warning(),jet_x(),communicate_xy_ghosts(),setup_extrapol_fact(),field_extrapol_z_parallel(),communicate_vect_field_ghosts(),get_gamma_etc(),heatflux_deriv_x(),fourier_transform_xy_xy(),vect_pot_extrapol_z_parallel(),fourier_transform_y_y(),not_implemented(),boundconds_x(),bc_per_x(),bc_per_y()
- subroutine boundcond/boundconds_z(f[, ivar1_opt[, ivar2_opt]])
Boundary conditions in z, except for periodic part handled by communication. Remark: boundconds_x() needs to be called before communicating (because we communicate the x-ghost points), boundconds_[yz] after communication has finished (they need some of the data communicated for the edges (yz-‘corners’).
8-jul-02/axel: split up into different routines for x,y and z directions
11-nov-02/wolf: unified bot/top, now handled by loop 02-apr-13/MR : added new boundary condition ‘fs’ = frozen boundary value
symmetry about boundary; added ‘fa’ for alternative reference to
already existing freezing condition (includes antisymmetry)
30-dec-16/MR: added BC ‘a1s’ for constant alpha mean-field model in one dimension
- Parameters:
f (,,*,*) [real,contiguous]
ivar1_opt [integer]
ivar2_opt [integer]
- Use :
general(var_is_vec()),special(special_boundconds()),equationofstate- Call to:
bc_per_z(),set_ghosts_for_onesided_ders(),bc_ss_flux(),bc_ss_flux_turb(),bc_ss_flux_condturb_z(),bc_lnrho_hdss_z_iso(),bc_ss_temp_z(),bc_ss_temp2_z(),bc_ss_temp3_z(),bc_lnrho_pressure_z(),bc_ss_stemp_z(),bc_ism(),bc_ss_a2stemp_z(),bc_ss_temp_old(),bc_ss_energy(),special_boundconds(),fatal_error(),pc_aasb_const_alpha(),bc_lnrho_temp_z(),bc_lnrho_hds_z_iso(),fatal_error_local(),warning(),jet_x(),communicate_xy_ghosts(),setup_extrapol_fact(),field_extrapol_z_parallel(),communicate_vect_field_ghosts(),get_gamma_etc(),heatflux_deriv_x(),fourier_transform_xy_xy(),vect_pot_extrapol_z_parallel(),fourier_transform_y_y(),not_implemented(),boundconds_x(),bc_per_x(),bc_per_y()
- subroutine boundcond/bc_per_x(f, topbot, j)
Periodic boundary condition
11-nov-02/wolf: coded
- Parameters:
f (,,*,*) [real,contiguous]
topbot [integer,in]
j [integer]
- Call to:
fatal_error(),fatal_error_local(),warning(),set_ghosts_for_onesided_ders(),jet_x(),communicate_xy_ghosts(),setup_extrapol_fact(),field_extrapol_z_parallel(),communicate_vect_field_ghosts(),get_gamma_etc(),heatflux_deriv_x(),fourier_transform_xy_xy(),vect_pot_extrapol_z_parallel(),fourier_transform_y_y(),not_implemented(),boundconds_x(),bc_per_x(),bc_per_y(),bc_per_z()
- subroutine boundcond/bc_per_y(f, topbot, j)
Periodic boundary condition
11-nov-02/wolf: coded
- Parameters:
f (,,*,*) [real,contiguous]
topbot [integer,in]
j [integer]
- Call to:
fatal_error(),fatal_error_local(),warning(),set_ghosts_for_onesided_ders(),jet_x(),communicate_xy_ghosts(),setup_extrapol_fact(),field_extrapol_z_parallel(),communicate_vect_field_ghosts(),get_gamma_etc(),heatflux_deriv_x(),fourier_transform_xy_xy(),vect_pot_extrapol_z_parallel(),fourier_transform_y_y(),not_implemented(),boundconds_x(),bc_per_x(),bc_per_y(),bc_per_z()
- subroutine boundcond/bc_per_z(f, topbot, j)
Periodic boundary condition
11-nov-02/wolf: coded
- Parameters:
f (,,*,*) [real,contiguous]
topbot [integer,in]
j [integer]
- Call to:
fatal_error(),fatal_error_local(),warning(),set_ghosts_for_onesided_ders(),jet_x(),communicate_xy_ghosts(),setup_extrapol_fact(),field_extrapol_z_parallel(),communicate_vect_field_ghosts(),get_gamma_etc(),heatflux_deriv_x(),fourier_transform_xy_xy(),vect_pot_extrapol_z_parallel(),fourier_transform_y_y(),not_implemented(),boundconds_x(),bc_per_x(),bc_per_y(),bc_per_z()
- subroutine boundcond/jet_x(prof, vel, rad)
06-nov-2013/nils: Set jet profile
- Parameters:
prof (,) [real,out]
vel [real]
rad [real]
- Use :
- Call to:
fatal_error(),fatal_error_local(),communicate_xy_ghosts(),warning(),setup_extrapol_fact(),field_extrapol_z_parallel(),communicate_vect_field_ghosts(),get_gamma_etc(),heatflux_deriv_x(),fourier_transform_xy_xy(),vect_pot_extrapol_z_parallel(),fourier_transform_y_y(),not_implemented(),boundconds_x(),bc_per_x(),bc_per_y(),bc_per_z()
- subroutine boundcond/finalize_boundcond(f)
Call finalization routines, i.e. freeing allocated memory.
15-aug-2011/Bourdin.KIS: adapted from finalize_modules
- Parameters:
f (,,*,*) [real,contiguous]
- Use :
- Call to:
warning(),fatal_error(),vect_pot_extrapol_z_parallel(),communicate_vect_field_ghosts(),fourier_transform_xy_xy(),fourier_transform_y_y(),not_implemented(),boundconds_x(),bc_per_x(),bc_per_y(),bc_per_z()
- subroutine boundcond/set_consistent_density_boundary(f, dirn, boundtype, topbot, rhob, lsuccess)
This subroutine checks, if the density paramters like type, topbot and boundary value are set consistently with eg. the initial condition.
26-jun-12/dhruba+joern: coded
dirn = direction : ‘x’,’y’,’z’ boundtype = type of boundary condition : ‘set’,’a’,… topbot = top or bottom boundary : BOT,TOP rhob = value at the boundary : 4.04, 8.35, 10.1 lsuccess = switch, if it was successful : .true., .false.
At the moment only the x-direction is implemented
- Parameters:
f (,,*,*) [real,contiguous]
dirn [character,in]
boundtype [character,in]
topbot [integer,in]
rhob [real,in]
lsuccess [logical,out]
- Call to:
boundconds_x(),fatal_error(),not_implemented(),bc_per_x(),bc_per_y(),bc_per_z()
- subroutine boundcond/set_consistent_vel_boundary(f, dirn, boundtype, topbot, comp, lsuccess)
This subroutine checks, if the velocity paramters like type and topbot are set consistently with eg. the initial condition.
14-sep-12/joern: coded, adapted from subroutine set_consistent_density_boundary
dirn = direction : ‘x’,’y’,’z’ boundtype = type of boundary condition : ‘set’,’a’,… topbot = top or bottom boundary : BOT,TOP comp = component of the velocity : ‘x’,’y’,’z’ lsuccess = switch, if it was successful : .true., .false.
At the moment only the x-direction is implemented
- Parameters:
f (,,*,*) [real,contiguous]
dirn [character,in]
boundtype [character,in]
topbot [integer,in]
comp [character,in]
lsuccess [logical,out]
- Call to:
boundconds_x(),fatal_error(),bc_per_x(),bc_per_y(),bc_per_z()
- subroutine boundcond/set_periodic_boundcond_on_aux(f, ivar)
sets periodic boundary condition on auxiliar variables
- Parameters:
f (,,*,*) [real,contiguous]
ivar [integer]
- Call to:
- subroutine boundcond/copy_bcs(isrc, itarg, num)
14-apr-15/MR: coded
- Parameters:
isrc [integer,in]
itarg [integer,in]
num [integer,in]