Changeset 3159


Ignore:
Timestamp:
Jul 20, 2018 11:20:01 AM (6 years ago)
Author:
sward
Message:

Added multi agent system

Location:
palm/trunk
Files:
21 added
8 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SCRIPTS/.palm.iofiles

    r3025 r3159  
    66PARIN                    in:tr      d3r      $base_data/$jobname/INPUT          _p3dr*
    77PARIN                    in:tr      pcr      $base_data/$jobname/INPUT          _pcr*
     8NAVIGATION_DATA          inopt:tr   d3#:d3r  $base_data/$jobname/INPUT          _nav*
    89TOPOGRAPHY_DATA          inopt:tr   d3#:d3r  $base_data/$jobname/INPUT          _topo*
    910PIDS_STATIC              inopt:tr   d3#:d3r  $base_data/$jobname/INPUT          _static*
     
    6263DATA_MASK_NETCDF*          out:tr   *         $base_data/$jobname/OUTPUT         _masked    nc
    6364DATA_MASK_AV_NETCDF*       out:tr   *         $base_data/$jobname/OUTPUT         _av_masked nc
     65DATA_AGT_NETCDF            out:tr   *         $base_data/$jobname/OUTPUT         _agt       nc
    6466#
    6567DATA_PRT_NETCDF*           out:pe   *         $base_data/$jobname/OUTPUT         _prt
  • palm/trunk/SOURCE/Makefile

    r3130 r3159  
    2525# -----------------
    2626# $Id$
     27# Added multi agent system
     28#
     29# 3130 2018-07-16 11:08:55Z gronemeier
    2730# add surface_layer_fluxes_mod to turbulence_closure_mod
    2831#
     
    537540        mod_particle_attributes.f90 \
    538541        modules.f90 \
     542        multi_agent_system_mod.f90 \
    539543        netcdf_data_input_mod.f90 \
    540544        netcdf_interface_mod.f90 \
     
    11771181modules.o: \
    11781182        mod_kinds.o
     1183multi_agent_system_mod.o: \
     1184        chemistry_model_mod.o \
     1185        cpulog_mod.o \
     1186        mod_kinds.o \
     1187        modules.o \
     1188        netcdf_interface_mod.o \
     1189        surface_mod.o
    11791190mod_kinds.o: \
    11801191
  • palm/trunk/SOURCE/check_open.f90

    r3045 r3159  
    2525! -----------------
    2626! $Id$
     27! Added multi agent system
     28!
     29! 3045 2018-05-28 07:55:41Z Giersch
    2730! Output case 108 disabled
    2831!
     
    190193
    191194    USE netcdf_interface,                                                      &
    192         ONLY:  id_set_fl, id_set_mask, id_set_pr, id_set_prt, id_set_pts,      &
    193                id_set_sp, id_set_ts, id_set_xy, id_set_xz, id_set_yz,          &
    194                id_set_3d, nc_stat, netcdf_create_file, netcdf_data_format,     &
    195                netcdf_define_header, netcdf_handle_error, netcdf_open_write_file
     195        ONLY:  id_set_agt, id_set_fl, id_set_mask, id_set_pr, id_set_prt,      &
     196               id_set_pts, id_set_sp, id_set_ts, id_set_xy, id_set_xz,         &
     197               id_set_yz, id_set_3d, nc_stat, netcdf_create_file,              &
     198               netcdf_data_format, netcdf_define_header, netcdf_handle_error,  &
     199               netcdf_open_write_file
    196200
    197201    USE particle_attributes,                                                   &
     
    10771081          ENDIF
    10781082
     1083       CASE ( 118 )
     1084
     1085          IF ( myid == 0 )  THEN
     1086             filename = 'DATA_AGT_NETCDF'
     1087!
     1088!--       Inquire, if there is a netCDF file from a previuos run. This should
     1089!--       be opened for extension, if its variables match the actual run.
     1090          INQUIRE( FILE=filename, EXIST=netcdf_extend )
     1091
     1092!
     1093!--          Create a new netCDF output file with requested netCDF format
     1094             CALL netcdf_create_file( filename, id_set_agt, .FALSE., 43 )
     1095
     1096!
     1097!--          Define the header
     1098             CALL netcdf_define_header( 'ag', netcdf_extend, 0 )
     1099          ENDIF
     1100
     1101!           IF ( netcdf_extend )  THEN
     1102! !
     1103! !--          Open an existing netCDF file for output
     1104!              CALL netcdf_open_write_file( filename, id_set_agt, .FALSE., 41 )
     1105! !
     1106! !--          Read header information and set all ids. If there is a mismatch
     1107! !--          between the previuos and the actual run, netcdf_extend is returned
     1108! !--          as .FALSE.
     1109!              CALL netcdf_define_header( 'ag', netcdf_extend, 0 )
     1110!
     1111! !
     1112! !--          Remove the local file, if it can not be extended
     1113!              IF ( .NOT. netcdf_extend )  THEN
     1114!                 nc_stat = NF90_CLOSE( id_set_agt )
     1115!                 CALL netcdf_handle_error( 'check_open', 42 )
     1116!                 CALL local_system( 'rm ' // TRIM( filename ) )
     1117!              ENDIF
     1118!
     1119!           ENDIF
     1120
     1121          IF ( .NOT. netcdf_extend )  THEN
     1122
     1123!
     1124! !--          For runs on multiple processors create the subdirectory
     1125!              IF ( myid_char /= '' )  THEN
     1126!                 IF ( myid == 0  .AND. .NOT. openfile(file_id)%opened_before )  &
     1127!                 THEN    ! needs modification in case of non-extendable sets
     1128!                    CALL local_system( 'mkdir  DATA_PRT_NETCDF' //              &
     1129!                                        TRIM( coupling_char ) // '/' )
     1130!                 ENDIF
     1131! #if defined( __parallel )
     1132! !
     1133! !--             Set a barrier in order to allow that all other processors in the
     1134! !--             directory created by PE0 can open their file
     1135!                 CALL MPI_BARRIER( comm2d, ierr )
     1136! #endif
     1137!              ENDIF
     1138
     1139          ENDIF
     1140
    10791141!
    10801142!--    nc-file for virtual flight measurements
  • palm/trunk/SOURCE/init_3d_model.f90

    r3129 r3159  
    2525! -----------------
    2626! $Id$
     27! Added multi agent system
     28!
     29! 3129 2018-07-16 07:45:13Z gronemeier
    2730! Move initialization call for nudging and 1D/3D offline nesting.
    2831! Revise initialization with inifor data.
     
    506509   
    507510    USE indices
     511   
     512    USE kinds
     513
     514    USE land_surface_model_mod,                                                &
     515        ONLY:  lsm_init, lsm_init_arrays
    508516
    509517    USE lpm_init_mod,                                                          &
    510518        ONLY:  lpm_init
    511    
    512     USE kinds
    513 
    514     USE land_surface_model_mod,                                                &
    515         ONLY:  lsm_init, lsm_init_arrays
    516519 
    517520    USE lsf_nudging_mod,                                                       &
     
    524527        ONLY:  e1d, init_1d_model, kh1d, km1d, l1d, rif1d, u1d, us1d, usws1d,  &
    525528               v1d, vsws1d
     529
     530    USE multi_agent_system_mod,                                                &
     531        ONLY:  agents_active, mas_init
    526532
    527533    USE netcdf_interface,                                                      &
     
    23672373
    23682374!
     2375!-- If required, initialize particles
     2376    IF ( agents_active )  CALL mas_init
     2377
     2378!
    23692379!-- If required, initialize quantities needed for the LSM
    23702380    IF ( land_surface )  THEN
  • palm/trunk/SOURCE/modules.f90

    r3157 r3159  
    2525! -----------------
    2626! $Id$
     27! Added multi agent system
     28!
     29! 3157 2018-07-19 21:08:49Z maronga
    2730! added use_free_convection_scaling
    2831!
     
    11491152   
    11501153    INTEGER(iwp) ::  abort_mode = 1                    !< abort condition (nested runs)
     1154    INTEGER(iwp) ::  agt_time_count = 0                !< number of output intervals for agent data output
    11511155    INTEGER(iwp) ::  average_count_pr = 0              !< number of samples in vertical-profile output
    11521156    INTEGER(iwp) ::  average_count_3d = 0              !< number of samples in 3d output
     
    12621266    LOGICAL ::  aerosol_c3h4o4 =.FALSE.                          !< malonic acid aerosol for bulk scheme
    12631267    LOGICAL ::  aerosol_nh4no3 =.FALSE.                          !< malonic acid aerosol for bulk scheme
     1268    LOGICAL ::  agent_time_unlimited = .FALSE.                   !< namelist parameter
    12641269    LOGICAL ::  air_chemistry = .FALSE.                          !< chemistry model switch
    12651270    LOGICAL ::  bc_lr_cyc =.TRUE.                                !< left-right boundary condition cyclic?
     
    12991304    LOGICAL ::  dt_3d_reached_l                                  !< internal timestep for particle advection
    13001305    LOGICAL ::  first_call_lpm = .TRUE.                          !< call lpm only once per timestep?
     1306    LOGICAL ::  first_call_mas = .TRUE.                          !< call mas only once per timestep
    13011307    LOGICAL ::  force_print_header = .FALSE.                     !< namelist parameter
    13021308    LOGICAL ::  force_bound_l = .FALSE.                          !< flag indicating domain boundary on left side to set forcing boundary conditions
     
    14361442    REAL(wp) ::  dt_run_control = 60.0_wp                      !< namelist parameter
    14371443    REAL(wp) ::  dt_spinup = 60.0_wp                           !< namelist parameter
     1444    REAL(wp) ::  dt_write_agent_data = 9999999.9_wp            !< namelist parameter
    14381445    REAL(wp) ::  dt_3d = 0.01_wp                               !< time step
    14391446    REAL(wp) ::  dz_max = 1000.0_wp                            !< namelist parameter
  • palm/trunk/SOURCE/netcdf_interface_mod.f90

    r3049 r3159  
    2525! -----------------
    2626! $Id$
     27! Added multi agent system
     28!
     29! 3049 2018-05-29 13:52:36Z Giersch
    2730! Error messages revised
    2831!
     
    282285    PRIVATE
    283286
     287    CHARACTER (LEN=16), DIMENSION(13) ::  agt_var_names =                      &
     288          (/ 'ag_x            ', 'ag_y            ', 'ag_wind         ',       &
     289             'ag_temp         ', 'ag_group        ', 'PM10            ',       &
     290             'PM25            ', 'ag_therm_comf   ', 'ag_uv           ',       &
     291             'not_used        ', 'not_used        ', 'not_used        ',       &
     292             'not_used        ' /)
     293
     294    CHARACTER (LEN=16), DIMENSION(13) ::  agt_var_units = &
     295          (/ 'meters          ', 'meters          ', 'm/s             ',       &
     296             'K               ', 'dim_less        ', 'tbd             ',       &
     297             'tbd             ', 'tbd             ', 'tbd             ',       &
     298             'not_used        ', 'not_used        ', 'not_used        ',       &
     299             'not_used        ' /)
     300
    284301    INTEGER(iwp), PARAMETER ::  dopr_norm_num = 7, dopts_num = 29, dots_max = 100
    285302
     
    377394    CHARACTER(LEN=40) ::  netcdf_data_format_string
    378395
    379     INTEGER(iwp) ::  id_dim_prtnum, id_dim_time_fl, id_dim_time_pr, id_dim_time_prt, &
    380                      id_dim_time_pts, id_dim_time_sp, id_dim_time_ts, id_dim_x_sp, &
    381                      id_dim_y_sp, id_dim_zu_sp, id_dim_zw_sp, id_set_fl, id_set_pr, &
    382                      id_set_prt, id_set_pts, id_set_sp, id_set_ts, id_var_time_fl, &
    383                      id_var_prtnum, id_var_rnop_prt, id_var_time_pr, id_var_time_prt, &
    384                      id_var_time_pts, id_var_time_sp, id_var_time_ts, id_var_x_sp, &
    385                      id_var_y_sp, id_var_zu_sp, id_var_zw_sp, nc_stat
     396    INTEGER(iwp) ::  id_dim_agtnum, id_dim_prtnum, id_dim_time_agt,            &
     397                     id_dim_time_fl, id_dim_time_pr, id_dim_time_prt,          &
     398                     id_dim_time_pts, id_dim_time_sp, id_dim_time_ts,          &
     399                     id_dim_x_sp, id_dim_y_sp, id_dim_zu_sp, id_dim_zw_sp,     &
     400                     id_set_agt, id_set_fl, id_set_pr, id_set_prt, id_set_pts, &
     401                     id_set_sp, id_set_ts, id_var_agtnum, id_var_time_agt,     &
     402                     id_var_time_fl, id_var_prtnum, id_var_rnoa_agt,           &
     403                     id_var_rnop_prt, id_var_time_pr, id_var_time_prt,         &
     404                     id_var_time_pts, id_var_time_sp, id_var_time_ts,          &
     405                     id_var_x_sp, id_var_y_sp, id_var_zu_sp, id_var_zw_sp,     &
     406                     nc_stat
    386407
    387408
     
    413434    INTEGER(iwp)                 ::  dofl_time_count
    414435    INTEGER(iwp), DIMENSION(10)  ::  id_var_dospx, id_var_dospy
     436    INTEGER(iwp), DIMENSION(20)  ::  id_var_agt
    415437    INTEGER(iwp), DIMENSION(20)  ::  id_var_prt
    416438    INTEGER(iwp), DIMENSION(11)  ::  nc_precision
     
    457479            dofl_time_count, dofl_unit, domask_unit, dopr_unit, dopts_num,     &
    458480            dots_label, dots_max, dots_num, dots_rad, dots_soil, dots_unit,    &
    459             do2d_unit, do3d_unit, fill_value,                                  &
    460             id_set_fl, id_set_mask, id_set_pr,                                 &
    461             id_set_prt, id_set_pts, id_set_sp, id_set_ts, id_set_xy, id_set_xz,&
    462             id_set_yz, id_set_3d, id_var_domask, id_var_dofl, id_var_dopr,     &
    463             id_var_dopts, id_var_dospx, id_var_dospy, id_var_dots, id_var_do2d,&
    464             id_var_do3d, id_var_norm_dopr, id_var_time_fl, id_var_time_mask,   &
    465             id_var_time_pr, id_var_time_pts, id_var_time_sp, id_var_time_ts,   &
     481            do2d_unit, do3d_unit, fill_value, id_set_agt, id_set_fl,           &
     482            id_set_mask, id_set_pr, id_set_prt, id_set_pts, id_set_sp,         &
     483            id_set_ts, id_set_xy, id_set_xz, id_set_yz, id_set_3d, id_var_agt, &
     484            id_var_domask, id_var_dofl, id_var_dopr, id_var_dopts,             &
     485            id_var_dospx, id_var_dospy, id_var_dots, id_var_do2d, id_var_do3d, &
     486            id_var_norm_dopr, id_var_time_agt, id_var_time_fl,                 &
     487            id_var_time_mask, id_var_time_pr, id_var_rnoa_agt, id_var_time_pts,&
     488            id_var_time_sp, id_var_time_ts,                                    &
    466489            id_var_time_xy, id_var_time_xz, id_var_time_yz, id_var_time_3d,    &
    467490            id_var_x_fl, id_var_y_fl, id_var_z_fl,  nc_stat,                   &
     
    515538
    516539    USE control_parameters,                                                    &
    517         ONLY:  air_chemistry, averaging_interval, averaging_interval_pr,       &
    518                data_output_pr, domask, dopr_n,                                 &
     540        ONLY:  agent_time_unlimited, air_chemistry, averaging_interval,        &
     541               averaging_interval_pr, data_output_pr, domask, dopr_n,          &
    519542               dopr_time_count, dopts_time_count, dots_time_count,             &
    520543               do2d, do2d_at_begin, do2d_xz_time_count, do3d, do3d_at_begin,   &
    521544               do2d_yz_time_count, dt_data_output_av, dt_do2d_xy, dt_do2d_xz,  &
    522                dt_do2d_yz, dt_do3d, mask_size, do2d_xy_time_count,             &
     545               dt_do2d_yz, dt_do3d, dt_write_agent_data, mask_size,            &
     546               do2d_xy_time_count,                                             &
    523547               do3d_time_count, domask_time_count, end_time, land_surface,     &
    524548               mask_size_l, mask_i, mask_i_global, mask_j, mask_j_global,      &
     
    19221946                           '&This file will be extended.'
    19231947          CALL message( 'define_netcdf_header', 'PA0248', 0, 0, 0, 6, 0 )
     1948
     1949
     1950       CASE ( 'ag_new' )
     1951
     1952!
     1953!--       Define some global attributes of the dataset
     1954          nc_stat = NF90_PUT_ATT( id_set_agt, NF90_GLOBAL, 'title', &
     1955                                  TRIM( run_description_header ) )
     1956          CALL netcdf_handle_error( 'netcdf_define_header', 330 )
     1957!
     1958!--       Switch for unlimited time dimension
     1959          IF ( agent_time_unlimited ) THEN
     1960             CALL netcdf_create_dim( id_set_agt, 'time', NF90_UNLIMITED,       &
     1961                                     id_dim_time_agt, 331 )
     1962          ELSE
     1963             CALL netcdf_create_dim( id_set_agt, 'time',                       &
     1964                                     INT(end_time/dt_write_agent_data*1.2),    &
     1965                                     id_dim_time_agt, 331 )
     1966          ENDIF
     1967
     1968          CALL netcdf_create_var( id_set_agt, (/ id_dim_time_agt /), 'time',   &
     1969                                  NF90_DOUBLE, id_var_time_agt, 'seconds', '', &
     1970                                  332, 333, 000 )
     1971!
     1972!--       netCDF4 allows more than one unlimited dimension
     1973          CALL netcdf_create_dim( id_set_agt, 'agent_number',            &
     1974                                  NF90_UNLIMITED, id_dim_agtnum, 334 )
     1975
     1976          CALL netcdf_create_var( id_set_agt, (/ id_dim_agtnum /),             &
     1977                                  'agent_number', NF90_DOUBLE,              &
     1978                                  id_var_agtnum, 'agent number', '', 335,   &
     1979                                  336, 000 )
     1980!
     1981!--       Define variable which contains the real number of agents in use
     1982          CALL netcdf_create_var( id_set_agt, (/ id_dim_time_agt /),           &
     1983                                  'real_num_of_agt', NF90_DOUBLE,              &
     1984                                  id_var_rnoa_agt, 'agent number', '', 337, &
     1985                                  338, 000 )
     1986!
     1987!--       Define the variables
     1988          DO  i = 1, 5
     1989             CALL netcdf_create_var( id_set_agt, (/ id_dim_agtnum,             &
     1990                                     id_dim_time_agt /), agt_var_names(i),     &
     1991                                     nc_precision(8), id_var_agt(i),           &
     1992                                     TRIM( agt_var_units(i) ),                 &
     1993                                     TRIM( agt_var_names(i) ), 339, 340, 341 )
     1994
     1995          ENDDO
     1996!
     1997!--       Leave netCDF define mode
     1998          nc_stat = NF90_ENDDEF( id_set_agt )
     1999          CALL netcdf_handle_error( 'netcdf_define_header', 342 )
     2000
     2001
     2002!        CASE ( 'ag_ext' )
     2003! !+?agent extend output for restart runs has to be adapted
     2004!
     2005! !
     2006! !--       Get the id of the time coordinate (unlimited coordinate) and its
     2007! !--       last index on the file. The next time level is prt..count+1.
     2008! !--       The current time must be larger than the last output time
     2009! !--       on the file.
     2010!           nc_stat = NF90_INQ_VARID( id_set_agt, 'time', id_var_time_agt )
     2011!           CALL netcdf_handle_error( 'netcdf_define_header', 343 )
     2012!
     2013!           nc_stat = NF90_INQUIRE_VARIABLE( id_set_agt, id_var_time_agt, &
     2014!                                            dimids = id_dim_time_old )
     2015!           CALL netcdf_handle_error( 'netcdf_define_header', 344 )
     2016!           id_dim_time_agt = id_dim_time_old(1)
     2017!
     2018!           nc_stat = NF90_INQUIRE_DIMENSION( id_set_agt, id_dim_time_agt, &
     2019!                                             len = agt_time_count )
     2020!           CALL netcdf_handle_error( 'netcdf_define_header', 345 )
     2021!
     2022!           nc_stat = NF90_GET_VAR( id_set_agt, id_var_time_agt,  &
     2023!                                   last_time_coordinate,         &
     2024!                                   start = (/ agt_time_count /), &
     2025!                                   count = (/ 1 /) )
     2026!           CALL netcdf_handle_error( 'netcdf_define_header', 346 )
     2027!
     2028!           IF ( last_time_coordinate(1) >= simulated_time )  THEN
     2029!              message_string = 'netCDF file for agents ' //                  &
     2030!                               'from previous run found,' //                 &
     2031!                               '&but this file cannot be extended becaus' // &
     2032!                               'e the current output time' //                &
     2033!                               '&is less or equal than the last output t' // &
     2034!                               'ime on this file.' //                        &
     2035!                               '&New file is created instead.'
     2036!              CALL message( 'define_netcdf_header', 'PA0265', 0, 1, 0, 6, 0 )
     2037!              agt_time_count = 0
     2038!              extend = .FALSE.
     2039!              RETURN
     2040!           ENDIF
     2041!
     2042! !
     2043! !--       Dataset seems to be extendable.
     2044! !--       Now get the variable ids.
     2045!           nc_stat = NF90_INQ_VARID( id_set_agt, 'real_num_of_agt', &
     2046!                                     id_var_rnoa_agt )
     2047!           CALL netcdf_handle_error( 'netcdf_define_header', 347 )
     2048!
     2049!           DO  i = 1, 17
     2050!
     2051!              nc_stat = NF90_INQ_VARID( id_set_agt, agt_var_names(i), &
     2052!                                        id_var_prt(i) )
     2053!              CALL netcdf_handle_error( 'netcdf_define_header', 348 )
     2054!
     2055!           ENDDO
     2056!
     2057!           message_string = 'netCDF file for particles ' // &
     2058!                            'from previous run found.' //   &
     2059!                            '&This file will be extended.'
     2060!           CALL message( 'define_netcdf_header', 'PA0266', 0, 0, 0, 6, 0 )
     2061         
    19242062
    19252063       CASE ( 'xy_new' )
  • palm/trunk/SOURCE/parin.f90

    r3157 r3159  
    2525! -----------------
    2626! $Id$
     27! Added multi agent system
     28!
     29! 3157 2018-07-19 21:08:49Z maronga
    2730! added use_free_convection_scaling
    2831!
     
    441444    USE model_1d_mod,                                                          &
    442445        ONLY:  damp_level_1d, dt_pr_1d, dt_run_control_1d, end_time_1d
     446
     447    USE multi_agent_system_mod,                                                &
     448        ONLY:  mas_parin
    443449
    444450    USE netcdf_interface,                                                      &
     
    843849!--       Check if gust module is used and read &gust_par if required
    844850          CALL gust_parin
    845  
    846  
     851
     852!
     853!--       Check if multi agent system is used and read &agents_par if required
     854          CALL mas_parin
     855
     856!
    847857!--       Check if plant canopy model is used and read &canopy_par if required
    848858          CALL pcm_parin
    849  
     859
    850860!
    851861!--       Read control parameters for optionally used model software packages
  • palm/trunk/SOURCE/time_integration.f90

    r3042 r3159  
    2525! -----------------
    2626! $Id$
     27! Added multi agent system
     28!
     29! 3042 2018-05-25 10:44:37Z schwenkel
    2730! Changed the name specific humidity to mixing ratio
    2831!
     
    375378               dt_do2d_xz, dt_do2d_yz, dt_do3d, dt_domask,dt_dopts, dt_dopr,   &
    376379               dt_dopr_listing, dt_dots, dt_dvrp, dt_run_control, end_time,    &
    377                first_call_lpm, forcing, galilei_transformation, humidity,      &
    378                intermediate_timestep_count, intermediate_timestep_count_max,   &
    379                land_surface, large_scale_forcing,                              &
    380                loop_optimization, lsf_surf, lsf_vert, masks,                   &
    381                microphysics_morrison, microphysics_seifert, mid, nest_domain,  &
    382                neutral, nr_timesteps_this_run, nudging,                        &
     380               first_call_lpm, first_call_mas, forcing, galilei_transformation,&
     381               humidity, intermediate_timestep_count,                          &
     382               intermediate_timestep_count_max, land_surface,                  &
     383               large_scale_forcing, loop_optimization, lsf_surf, lsf_vert,     &
     384               masks, microphysics_morrison, microphysics_seifert, mid,        &
     385               nest_domain, neutral, nr_timesteps_this_run, nudging,           &
    383386               ocean, passive_scalar, prho_reference, pt_reference,            &
    384387               pt_slope_offset, random_heatflux, rans_mode,                    &
     
    431434        ONLY: collision_turbulence
    432435
     436    USE multi_agent_system_mod,                                                &
     437        ONLY:  agents_active, multi_agent_system, multi_agent_system_start
     438
    433439    USE particle_attributes,                                                   &
    434440        ONLY:  particle_advection, particle_advection_start,                   &
     
    706712
    707713!
     714!--       Movement of agents in multi agent system
     715          IF ( agents_active  .AND.                                            &
     716               simulated_time >= multi_agent_system_start  .AND.               &
     717               intermediate_timestep_count == 1 )  THEN
     718             CALL multi_agent_system
     719             first_call_mas = .FALSE.
     720          ENDIF
     721
     722!
    708723!--       Exchange of ghost points (lateral boundary conditions)
    709724          CALL cpu_log( log_point(26), 'exchange-horiz-progn', 'start' )
Note: See TracChangeset for help on using the changeset viewer.