Interfaces for user-defined code#

The following table lists and describes the available interfaces for user-defined code in the model, the names and possible arguments of the subroutines involved, as well as actions which can be accomplished in these subroutines. The respective name of a source code file is the subroutine name followed by .f90. Exception: the file containing the module user has the name user_module.f90.

Call location Subroutine name and argument(s) Purpose
---------------------------------------------- Module user All user-defined variables which are used outside the respective local scopes of the user-defined subroutines have to be declared here.
module_interface.f90 user_parin
module_interface.f90 user_check_parameters
module_interface.f90 user_check_data_output_ts( dots_max, dots_num, dots_label, dots_unit )
module_interface.f90 user_check_data_output_pr( variable, var_count, unit, dopr_unit )
module_interface.f90 user_check_data_output( variable, unit )
module_interface.f90 user_init_arrays
module_interface.f90 user_init
module_interface.f90 user_header ( io )
module_interface.f90 user_actions( location )
or
user_actions( i, j, location )
module_interface.f90 user_exchange_horiz( location )
module_interface.f90 user_prognostic_equations
or
user_prognostic_equations( i, j, i_omp_start, tn )
module_interface.f90 user_boundary_conditions
module_interface.f90 user_swap_timelevel( swap_mode )
module_interface.f90 user_3d_data_averaging( mode, variable )
module_interface.f90 user_data_output_2d( av, variable, found, grid, local_pf, two_d, nzb_do, nzt_do )
module_interface.f90 user_data_output_3d( av, variable, found, local_pf, resorted, nzb_do, nzt_do )
module_interface.f90 user_statistics( mode, sr, tn )
module_interface.f90 user_rrd_global( found )
module_interface.f90 user_rrd_global
module_interface.f90 user_wrd_global
module_interface.f90 user_rrd_local( map_index, nxlf, nxlc, nxl_on_file ,
nxrf, nxrc, nxr_on_file,
nynf, nync, nyn_on_file,
nysf, nysc, nys_on_file,
tmp_3d, found ),
or
user_rrd_local
module_interface.f90 user_wrd_local
module_interface.f90 user_last_actions
data_output_mask.f90 user_data_output_mask( av, domask(mid,av,ivar), found, local_pf, mid )
data_output_spectra.f90
and
spectra_mod.f90
user_spectra( 'data_output', m, pr )
init_3d_model.f90 user_init_3d_model
lagrangian_particle_model_mod.f90 user_lpm_init
lagrangian_particle_model_mod.f90 user_lpm_advec( i, j, k )
land_surface_model_mod.f90 user_init_land_surface
netcdf_interface_mod.f90 user_define_netcdf_grid( trimvar, found, grid_x, grid_y, grid_z )
or
user_define_netcdf_grid( do3d(av,i), found, grid_x, grid_y, grid_z )
or
user_define_netcdf_grid( data_output_sp(i), found, grid_x, grid_y, grid_z )
plant_canopy_model_mod.f90 user_init_plant_canopy
radiation_model_mod.f90 user_init_radiation
topography_mod.f90 user_init_grid( topo )
urban_surface_mod.f90 user_init_urban_surface
virtual_flight_mod.f90 user_init_flight( init )
or
user_init_flight( init, k, i, label_leg )
virtual_flight_mod.f90 user_flight( var_u, n )