Changeset 4017 for palm/trunk/SOURCE


Ignore:
Timestamp:
Jun 6, 2019 12:16:46 PM (5 years ago)
Author:
schwenkel
Message:

Modularization of all lagrangian particle model code components

Location:
palm/trunk/SOURCE
Files:
1 added
26 deleted
13 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/Makefile

    r4012 r4017  
    512512# by an include command for preprocessor and compiler options when the simple
    513513# install process is used instead of mbuild/mrun,
    514 # +set_particle_attributes, set_slicer_attributes_dvrp
     514# +set_particle_attributes
    515515# +subsidence
    516516#
     
    587587        data_output_2d.f90 \
    588588        data_output_3d.f90 \
    589         data_output_dvrp.f90 \
    590589        data_output_flight.f90\
    591590        data_output_mask.f90 \
    592591        data_output_profiles.f90 \
    593         data_output_ptseries.f90 \
    594592        data_output_spectra.f90 \
    595593        data_output_tseries.f90 \
     
    614612        init_advec.f90 \
    615613        init_coupling.f90 \
    616         init_dvrp.f90 \
    617614        init_grid.f90 \
    618615        init_masks.f90 \
     
    623620        init_vertical_profiles.f90 \
    624621        interaction_droplets_ptq.f90 \
     622        lagrangian_particle_model_mod.f90 \
    625623        land_surface_model_mod.f90 \
    626624        large_scale_forcing_nudging_mod.f90 \
     
    629627        local_tremain.f90 \
    630628        local_tremain_ini.f90 \
    631         lpm_advec.f90 \
    632         lpm_boundary_conds.f90 \
    633         lpm_calc_liquid_water_content.f90 \
    634         lpm_collision_kernels.f90 \
    635         lpm_data_output_particles.f90 \
    636         lpm_droplet_collision.f90 \
    637         lpm_droplet_condensation.f90 \
    638         lpm_exchange_horiz.f90 \
    639         lpm.f90 \
    640         lpm_init.f90 \
    641         lpm_init_sgs_tke.f90 \
    642         lpm_merging.f90 \
    643         lpm_pack_arrays.f90 \
    644         lpm_read_restart_file.f90 \
    645         lpm_set_attributes.f90 \
    646         lpm_splitting.f90 \
    647         lpm_write_exchange_statistics.f90 \
    648         lpm_write_restart_file.f90 \
    649629        message.f90 \
    650630        bulk_cloud_model_mod.f90 \
     
    660640        ocean_mod.f90 \
    661641        outflow_turbulence.f90 \
    662         package_parin.f90 \
    663642        palm.f90 \
    664643        parin.f90 \
     
    686665        run_control.f90 \
    687666        salsa_mod.f90 \
    688         set_slicer_attributes_dvrp.f90 \
    689667        singleton_mod.f90 \
    690668        sor.f90 \
     
    708686        turbulence_closure_mod.f90 \
    709687        urban_surface_mod.f90 \
    710         user_data_output_dvrp.f90 \
    711688        user_data_output_mask.f90 \
    712         user_dvrp_coltab.f90 \
    713689        user_flight.f90\
    714690        user_init_3d_model.f90 \
     
    721697        user_lpm_advec.f90 \
    722698        user_lpm_init.f90 \
    723         user_lpm_set_attributes.f90 \
    724699        user_module.f90 \
    725700        user_spectra.f90 \
     
    756731
    757732clean:
    758         rm -f $(PROG) $(OBJS) *.mod *.i *.lst
     733        rm -f $(PROG) $(OBJS) *.mod *.smod *.i *.lst
    759734
    760735.f90.o:
     
    844819check_open.o: \
    845820        mod_kinds.o \
    846         mod_particle_attributes.o \
    847821        modules.o \
    848822        netcdf_interface_mod.o \
     
    921895        mod_kinds.o \
    922896        modules.o
    923 data_output_dvrp.o: \
    924         basic_constants_and_equations_mod.o \
    925         bulk_cloud_model_mod.o \
    926         cpulog_mod.o \
    927         mod_kinds.o \
    928         modules.o
    929897data_output_mask.o: \
    930898        basic_constants_and_equations_mod.o \
     
    942910        cpulog_mod.o \
    943911        mod_kinds.o \
    944         modules.o \
    945         netcdf_interface_mod.o
    946 data_output_ptseries.o: \
    947         cpulog_mod.o \
    948         mod_kinds.o \
    949         mod_particle_attributes.o \
    950912        modules.o \
    951913        netcdf_interface_mod.o
     
    10981060        disturb_heatflux.o \
    10991061        large_scale_forcing_nudging_mod.o \
    1100         lpm_init.o \
    11011062        model_1d_mod.o \
    11021063        mod_kinds.o \
    1103         mod_particle_attributes.o \
    11041064        modules.o \
    11051065        multi_agent_system_mod.o \
     
    11241084        modules.o \
    11251085        vertical_nesting_mod.o
    1126 init_dvrp.o: \
    1127         mod_kinds.o \
    1128         modules.o
    11291086init_grid.o: \
    11301087        advec_ws.o \
     
    11671124        mod_kinds.o \
    11681125        modules.o
     1126lagrangian_particle_model_mod.o: \
     1127        basic_constants_and_equations_mod.o \
     1128        cpulog_mod.o \
     1129        mod_kinds.o \
     1130        mod_particle_attributes.o \
     1131        modules.o \
     1132        pmc_interface_mod.o \
     1133        pmc_particle_interface.o \
     1134        netcdf_interface_mod.o \
     1135        random_function_mod.o \
     1136        random_generator_parallel_mod.o \
     1137        surface_mod.o
    11691138land_surface_model_mod.o: \
    11701139        basic_constants_and_equations_mod.o \
     
    11941163        cpulog_mod.o \
    11951164        mod_kinds.o \
    1196         modules.o
    1197 lpm.o: \
    1198         cpulog_mod.o \
    1199         lpm_exchange_horiz.o \
    1200         lpm_init.o \
    1201         lpm_merging.o \
    1202         lpm_pack_arrays.o \
    1203         lpm_splitting.o \
    1204         mod_kinds.o \
    1205         mod_particle_attributes.o \
    1206         modules.o \
    1207         pmc_interface_mod.o \
    1208         pmc_particle_interface.o
    1209 lpm_advec.o: \
    1210         basic_constants_and_equations_mod.o \
    1211         cpulog_mod.o \
    1212         mod_kinds.o \
    1213         mod_particle_attributes.o \
    1214         modules.o \
    1215         surface_mod.o
    1216 lpm_boundary_conds.o: \
    1217         cpulog_mod.o \
    1218         mod_kinds.o \
    1219         mod_particle_attributes.o \
    1220         modules.o \
    1221         surface_mod.o
    1222 lpm_calc_liquid_water_content.o: \
    1223         basic_constants_and_equations_mod.o \
    1224         cpulog_mod.o \
    1225         mod_kinds.o \
    1226         mod_particle_attributes.o \
    1227         modules.o
    1228 lpm_collision_kernels.o: \
    1229         basic_constants_and_equations_mod.o \
    1230         cpulog_mod.o \
    1231         mod_kinds.o \
    1232         mod_particle_attributes.o \
    1233         modules.o
    1234 lpm_data_output_particles.o: \
    1235         cpulog_mod.o \
    1236         mod_kinds.o \
    1237         mod_particle_attributes.o \
    1238         modules.o \
    1239         netcdf_interface_mod.o
    1240 lpm_droplet_collision.o: \
    1241         basic_constants_and_equations_mod.o \
    1242         cpulog_mod.o \
    1243         lpm_collision_kernels.o \
    1244         mod_kinds.o \
    1245         mod_particle_attributes.o \
    1246         modules.o
    1247 lpm_droplet_condensation.o: \
    1248         basic_constants_and_equations_mod.o \
    1249         cpulog_mod.o \
    1250         lpm_collision_kernels.o \
    1251         mod_kinds.o \
    1252         mod_particle_attributes.o \
    1253         modules.o
    1254 lpm_exchange_horiz.o: \
    1255         cpulog_mod.o \
    1256         lpm_pack_arrays.o \
    1257         mod_kinds.o \
    1258         mod_particle_attributes.o \
    1259         modules.o \
    1260         netcdf_interface_mod.o
    1261 lpm_init.o: \
    1262         basic_constants_and_equations_mod.o \
    1263         lpm_collision_kernels.o \
    1264         lpm_exchange_horiz.o \
    1265         lpm_pack_arrays.o \
    1266         mod_kinds.o \
    1267         mod_particle_attributes.o \
    1268         modules.o \
    1269         netcdf_interface_mod.o \
    1270         pmc_particle_interface.o \
    1271         random_function_mod.o \
    1272         random_generator_parallel_mod.o \
    1273         surface_mod.o
    1274 lpm_init_sgs_tke.o: \
    1275         mod_kinds.o \
    1276         mod_particle_attributes.o \
    1277         modules.o \
    1278         surface_mod.o
    1279 lpm_merging.o: \
    1280         cpulog_mod.o \
    1281         mod_kinds.o \
    1282         mod_particle_attributes.o \
    1283         modules.o
    1284 lpm_pack_arrays.o: \
    1285         cpulog_mod.o \
    1286         mod_kinds.o \
    1287         mod_particle_attributes.o \
    1288         modules.o
    1289 lpm_read_restart_file.o: \
    1290         lpm_pack_arrays.o \
    1291         mod_kinds.o \
    1292         mod_particle_attributes.o \
    1293         modules.o
    1294 lpm_set_attributes.o: \
    1295         cpulog_mod.o \
    1296         mod_kinds.o \
    1297         mod_particle_attributes.o \
    1298         modules.o
    1299 lpm_splitting.o: \
    1300         basic_constants_and_equations_mod.o \
    1301         cpulog_mod.o \
    1302         lpm_exchange_horiz.o \
    1303         mod_kinds.o \
    1304         mod_particle_attributes.o \
    1305         modules.o
    1306 lpm_write_exchange_statistics.o: \
    1307         mod_kinds.o \
    1308         mod_particle_attributes.o \
    1309         modules.o \
    1310         pmc_particle_interface.o
    1311 lpm_write_restart_file.o: \
    1312         mod_kinds.o \
    1313         mod_particle_attributes.o \
    13141165        modules.o
    13151166message.o: \
     
    13301181        gust_mod.o \
    13311182        indoor_model_mod.o \
     1183        lagrangian_particle_model_mod.o \
    13321184        land_surface_model_mod.o \
    13331185        large_scale_forcing_nudging_mod.o \
     1186        mod_particle_attributes.o \
    13341187        multi_agent_system_mod.o \
    13351188        nesting_offl_mod.o \
     
    14061259        mod_kinds.o \
    14071260        modules.o
    1408 package_parin.o: \
    1409         mod_kinds.o \
    1410         mod_particle_attributes.o \
    1411         modules.o
    14121261palm.o: \
    14131262        bulk_cloud_model_mod.o \
     
    14501299        surface_mod.o
    14511300pmc_particle_interface.o: \
    1452         lpm_exchange_horiz.o \
    1453         lpm_pack_arrays.o \
    14541301        mod_particle_attributes.o \
    14551302        modules.o \
     
    16081455        surface_mod.o \
    16091456        netcdf_data_input_mod.o
    1610 set_slicer_attributes_dvrp.o: \
    1611         mod_kinds.o \
    1612         modules.o
    16131457singleton_mod.o: \
    16141458        mod_kinds.o
     
    17001544        land_surface_model_mod.o \
    17011545        large_scale_forcing_nudging_mod.o \
    1702         lpm.o \
    17031546        mod_kinds.o \
    17041547        modules.o \
     
    17831626        surface_mod.o \
    17841627        user_module.o
    1785 user_data_output_dvrp.o: \
    1786         mod_kinds.o \
    1787         modules.o \
    1788         user_module.o
    1789 user_dvrp_coltab.o: \
    1790         mod_kinds.o \
    1791         modules.o \
    1792         user_module.o
    17931628user_flight.o: \
    17941629        mod_kinds.o \
     
    18351670        user_module.o
    18361671user_lpm_init.o: \
    1837         mod_kinds.o \
    1838         modules.o \
    1839         user_module.o
    1840 user_lpm_set_attributes.o: \
    18411672        mod_kinds.o \
    18421673        modules.o \
     
    18851716        diagnostic_output_quantities_mod.o \
    18861717        mod_kinds.o \
    1887         mod_particle_attributes.o \
    18881718        model_1d_mod.o \
    18891719        module_interface.o \
  • palm/trunk/SOURCE/check_parameters.f90

    r3994 r4017  
    790790    USE control_parameters
    791791
    792     USE dvrp_variables
    793 
    794792    USE grid_variables
    795793
     
    817815               dots_max, dots_num, dots_label
    818816
    819     USE particle_attributes
    820 
     817    USE particle_attributes,                                                   &
     818        ONLY:  particle_advection, use_sgs_for_particles
     819       
    821820    USE pegrid
    822821
     
    14121411       CALL message( 'check_parameters', 'PA0442', 1, 2, 0, 6, 0 )
    14131412    ENDIF
    1414 
    1415 !
    1416 !-- Collision kernels:
    1417     SELECT CASE ( TRIM( collision_kernel ) )
    1418 
    1419        CASE ( 'hall', 'hall_fast' )
    1420           hall_kernel = .TRUE.
    1421 
    1422        CASE ( 'wang', 'wang_fast' )
    1423           wang_kernel = .TRUE.
    1424 
    1425        CASE ( 'none' )
    1426 
    1427 
    1428        CASE DEFAULT
    1429           message_string = 'unknown collision kernel: collision_kernel = "' // &
    1430                            TRIM( collision_kernel ) // '"'
    1431           CALL message( 'check_parameters', 'PA0350', 1, 2, 0, 6, 0 )
    1432 
    1433     END SELECT
    1434     IF ( collision_kernel(6:9) == 'fast' )  use_kernel_tables = .TRUE.
    14351413
    14361414!
     
    37873765       CALL message( 'check_parameters', 'PA0157', 1, 2, 0, 6, 0 )
    37883766    ENDIF
    3789 
    3790 !
    3791 !-- Check particle attributes
    3792     IF ( particle_color /= 'none' )  THEN
    3793        IF ( particle_color /= 'absuv'  .AND.  particle_color /= 'pt*'  .AND.   &
    3794             particle_color /= 'z' )  THEN
    3795           message_string = 'illegal value for parameter particle_color: ' //   &
    3796                            TRIM( particle_color)
    3797           CALL message( 'check_parameters', 'PA0313', 1, 2, 0, 6, 0 )
    3798        ELSE
    3799           IF ( color_interval(2) <= color_interval(1) )  THEN
    3800              message_string = 'color_interval(2) <= color_interval(1)'
    3801              CALL message( 'check_parameters', 'PA0315', 1, 2, 0, 6, 0 )
    3802           ENDIF
    3803        ENDIF
    3804     ENDIF
    3805 
    3806     IF ( particle_dvrpsize /= 'none' )  THEN
    3807        IF ( particle_dvrpsize /= 'absw' )  THEN
    3808           message_string = 'illegal value for parameter particle_dvrpsize:' // &
    3809                            ' ' // TRIM( particle_dvrpsize)
    3810           CALL message( 'check_parameters', 'PA0314', 1, 2, 0, 6, 0 )
    3811        ELSE
    3812           IF ( dvrpsize_interval(2) <= dvrpsize_interval(1) )  THEN
    3813              message_string = 'dvrpsize_interval(2) <= dvrpsize_interval(1)'
    3814              CALL message( 'check_parameters', 'PA0316', 1, 2, 0, 6, 0 )
    3815           ENDIF
    3816        ENDIF
    3817     ENDIF
    3818 
     3767   
    38193768!
    38203769!-- Prevent empty time records in volume, cross-section and masked data in case
  • palm/trunk/SOURCE/header.f90

    r3761 r4017  
    1 !> @file header.f90
     1! !> @file header.f90
    22!------------------------------------------------------------------------------!
    33! This file is part of the PALM model system.
     
    437437        ONLY:  day_of_year_init, time_utc_init
    438438
    439     USE dvrp_variables,                                                        &
    440         ONLY:  use_seperate_pe_for_dvrp_output
    441 
    442439    USE grid_variables,                                                        &
    443440        ONLY:  dx, dy
     
    462459               sa_vertical_gradient, sa_vertical_gradient_level,               &
    463460               sa_vertical_gradient_level_ind
    464 
    465     USE particle_attributes,                                                   &
    466         ONLY:  bc_par_b, bc_par_lr, bc_par_ns, bc_par_t, collision_kernel,     &
    467                curvature_solution_effects,                                     &
    468                density_ratio, dissipation_classes, dt_min_part, dt_prel,       &
    469                dt_write_particle_data, end_time_prel,                          &
    470                number_of_particle_groups, particle_advection,                  &
    471                particle_advection_start,                                       &
    472                particles_per_point, pdx, pdy, pdz,  psb, psl, psn, psr, pss,   &
    473                pst, radius, radius_classes, random_start_position,             &
    474                seed_follows_topography,                                        &
    475                total_number_of_particles, use_sgs_for_particles,               &
    476                vertical_particle_advection, write_particle_statistics
    477461
    478462    USE pegrid
     
    509493   
    510494    CHARACTER (LEN=40) ::  output_format       !< netcdf format
    511    
     495       
    512496    CHARACTER (LEN=70) ::  char1               !< dummy varialbe used for various strings
    513497    CHARACTER (LEN=70) ::  char2               !< string containing informating about the advected distance in case of Galilei transformation
     
    651635       WRITE ( io, 107 )  'y'
    652636    ENDIF
    653     IF ( use_seperate_pe_for_dvrp_output )  WRITE ( io, 105 )
    654637    IF ( numprocs /= maximum_parallel_io_streams )  THEN
    655638       WRITE ( io, 108 )  maximum_parallel_io_streams
     
    18361819    ENDIF
    18371820
    1838 #if defined( __dvrp_graphics )
    1839 !
    1840 !-- Dvrp-output
    1841     IF ( dt_dvrp /= 9999999.9_wp )  THEN
    1842        WRITE ( io, 360 )  dt_dvrp, TRIM( dvrp_output ), TRIM( dvrp_host ), &
    1843                           TRIM( dvrp_username ), TRIM( dvrp_directory )
    1844        i = 1
    1845        l = 0
    1846        m = 0
    1847        DO WHILE ( mode_dvrp(i) /= ' ' )
    1848           IF ( mode_dvrp(i)(1:10) == 'isosurface' )  THEN
    1849              READ ( mode_dvrp(i), '(10X,I2)' )  j
    1850              l = l + 1
    1851              IF ( do3d(0,j) /= ' ' )  THEN
    1852                 WRITE ( io, 361 )  TRIM( do3d(0,j) ), threshold(l), &
    1853                                    isosurface_color(:,l)
    1854              ENDIF
    1855           ELSEIF ( mode_dvrp(i)(1:6) == 'slicer' )  THEN
    1856              READ ( mode_dvrp(i), '(6X,I2)' )  j
    1857              m = m + 1
    1858              IF ( do2d(0,j) /= ' ' )  THEN
    1859                 WRITE ( io, 362 )  TRIM( do2d(0,j) ), &
    1860                                    slicer_range_limits_dvrp(:,m)
    1861              ENDIF
    1862           ENDIF
    1863           i = i + 1
    1864        ENDDO
    1865 
    1866        WRITE ( io, 365 )  groundplate_color, superelevation_x, &
    1867                           superelevation_y, superelevation, clip_dvrp_l, &
    1868                           clip_dvrp_r, clip_dvrp_s, clip_dvrp_n
    1869 
    1870        IF ( TRIM( topography ) /= 'flat' )  THEN
    1871           WRITE ( io, 366 )  topography_color
    1872           IF ( cluster_size > 1 )  THEN
    1873              WRITE ( io, 367 )  cluster_size
    1874           ENDIF
    1875        ENDIF
    1876 
    1877     ENDIF
    1878 #endif
    1879 
    1880 
    18811821    WRITE ( io, 99 )
    18821822
     
    19121852       WRITE ( io, 431 )
    19131853    ENDIF
    1914     IF ( humidity  .AND.  cloud_droplets )  THEN
    1915        WRITE ( io, 433 )
    1916        IF ( curvature_solution_effects )  WRITE ( io, 434 )
    1917        IF ( collision_kernel /= 'none' )  THEN
    1918           WRITE ( io, 435 )  TRIM( collision_kernel )
    1919           IF ( collision_kernel(6:9) == 'fast' )  THEN
    1920              WRITE ( io, 436 )  radius_classes, dissipation_classes
    1921           ENDIF
    1922        ELSE
    1923           WRITE ( io, 437 )
    1924        ENDIF
    1925     ENDIF
    1926 
    19271854!
    19281855!-- LES / turbulence parameters
     
    19671894       WRITE ( io, 477 )  q_surface_initial_change       
    19681895    ENDIF
    1969 
    1970     IF ( particle_advection )  THEN
    1971 !
    1972 !--    Particle attributes
    1973        WRITE ( io, 480 )  particle_advection_start, dt_prel, bc_par_lr, &
    1974                           bc_par_ns, bc_par_b, bc_par_t, particle_maximum_age, &
    1975                           end_time_prel
    1976        IF ( use_sgs_for_particles )  WRITE ( io, 488 )  dt_min_part
    1977        IF ( random_start_position )  WRITE ( io, 481 )
    1978        IF ( seed_follows_topography )  WRITE ( io, 496 )
    1979        IF ( particles_per_point > 1 )  WRITE ( io, 489 )  particles_per_point
    1980        WRITE ( io, 495 )  total_number_of_particles
    1981        IF ( dt_write_particle_data /= 9999999.9_wp )  THEN
    1982           WRITE ( io, 485 )  dt_write_particle_data
    1983           IF ( netcdf_data_format > 1 )  THEN
    1984              output_format = 'netcdf (64 bit offset) and binary'
    1985           ELSE
    1986              output_format = 'netcdf and binary'
    1987           ENDIF
    1988           IF ( netcdf_deflate == 0 )  THEN
    1989              WRITE ( io, 344 )  output_format
    1990           ELSE
    1991              WRITE ( io, 354 )  TRIM( output_format ), netcdf_deflate
    1992           ENDIF
    1993        ENDIF
    1994        IF ( dt_dopts /= 9999999.9_wp )  WRITE ( io, 494 )  dt_dopts
    1995        IF ( write_particle_statistics )  WRITE ( io, 486 )
    1996 
    1997        WRITE ( io, 487 )  number_of_particle_groups
    1998 
    1999        DO  i = 1, number_of_particle_groups
    2000           IF ( i == 1  .AND.  density_ratio(i) == 9999999.9_wp )  THEN
    2001              WRITE ( io, 490 )  i, 0.0_wp
    2002              WRITE ( io, 492 )
    2003           ELSE
    2004              WRITE ( io, 490 )  i, radius(i)
    2005              IF ( density_ratio(i) /= 0.0_wp )  THEN
    2006                 WRITE ( io, 491 )  density_ratio(i)
    2007              ELSE
    2008                 WRITE ( io, 492 )
    2009              ENDIF
    2010           ENDIF
    2011           WRITE ( io, 493 )  psl(i), psr(i), pss(i), psn(i), psb(i), pst(i), &
    2012                              pdx(i), pdy(i), pdz(i)
    2013           IF ( .NOT. vertical_particle_advection(i) )  WRITE ( io, 482 )
    2014        ENDDO
    2015 
    2016     ENDIF
    2017 
    20181896
    20191897!
     
    20551933104 FORMAT (' Number of PEs:',10X,I6,4X,'Tasks:',I4,'   threads per task:',I4/ &
    20561934              35X,'Processor grid (x,y): (',I4,',',I4,')',1X,A)
    2057 105 FORMAT (35X,'One additional PE is used to handle'/37X,'the dvrp output!')
    20581935107 FORMAT (35X,'A 1d-decomposition along ',A,' is used')
    20591936108 FORMAT (35X,'Max. # of parallel I/O streams is ',I5)
     
    22782155353 FORMAT  (/'       Number of output time levels allowed: unlimited' /)
    22792156354 FORMAT ('       Output format: ',A, '   compressed with level: ',I1/)
    2280 #if defined( __dvrp_graphics )
    2281 360 FORMAT ('    Plot-Sequence with dvrp-software:'/ &
    2282             '       Output every      ',F7.1,' s'/ &
    2283             '       Output mode:      ',A/ &
    2284             '       Host / User:      ',A,' / ',A/ &
    2285             '       Directory:        ',A// &
    2286             '       The sequence contains:')
    2287 361 FORMAT (/'       Isosurface of "',A,'"    Threshold value: ', E12.3/ &
    2288             '          Isosurface color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)')
    2289 362 FORMAT (/'       Slicer plane ',A/ &
    2290             '       Slicer limits: [',F6.2,',',F6.2,']')
    2291 365 FORMAT (/'       Groundplate color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)'/ &
    2292             '       Superelevation along (x,y,z): (',F4.1,',',F4.1,',',F4.1, &
    2293                      ')'/ &
    2294             '       Clipping limits: from x = ',F9.1,' m to x = ',F9.1,' m'/ &
    2295             '                        from y = ',F9.1,' m to y = ',F9.1,' m')
    2296 366 FORMAT (/'       Topography color: (',F4.2,',',F4.2,',',F4.2,') (R,G,B)')
    2297 367 FORMAT ('       Polygon reduction for topography: cluster_size = ', I1)
    2298 #endif
    22992157400 FORMAT (//' Physical quantities:'/ &
    23002158              ' -------------------'/)
     
    23502208              ' ----------------------------------'/)
    23512209431 FORMAT ('    Humidity is considered, bu no condensation')
    2352 433 FORMAT ('    Cloud droplets treated explicitly using the Lagrangian part', &
    2353                  'icle model')
    2354 434 FORMAT ('    Curvature and solution effecs are considered for growth of', &
    2355                  ' droplets < 1.0E-6 m')
    2356 435 FORMAT ('    Droplet collision is handled by ',A,'-kernel')
    2357 436 FORMAT ('       Fast kernel with fixed radius- and dissipation classes ', &
    2358                     'are used'/ &
    2359             '          number of radius classes:       ',I3,'    interval ', &
    2360                        '[1.0E-6,2.0E-4] m'/ &
    2361             '          number of dissipation classes:   ',I2,'    interval ', &
    2362                        '[0,1000] cm**2/s**3')
    2363 437 FORMAT ('    Droplet collision is switched off')
    23642210450 FORMAT (//' LES / Turbulence quantities:'/ &
    23652211              ' ---------------------------'/)
     
    24012247            '    value is negative) by ',E8.1,' kg/m**3 at the beginning of', &
    24022248                 ' the 3D-simulation'/)
    2403 480 FORMAT ('    Particles:'/ &
    2404             '    ---------'// &
    2405             '       Particle advection is active (switched on at t = ', F7.1, &
    2406                     ' s)'/ &
    2407             '       Start of new particle generations every  ',F6.1,' s'/ &
    2408             '       Boundary conditions: left/right: ', A, ' north/south: ', A/&
    2409             '                            bottom:     ', A, ' top:         ', A/&
    2410             '       Maximum particle age:                 ',F9.1,' s'/ &
    2411             '       Advection stopped at t = ',F9.1,' s'/)
    2412 481 FORMAT ('       Particles have random start positions'/)
    2413 482 FORMAT ('          Particles are advected only horizontally'/)
    2414 485 FORMAT ('       Particle data are written on file every ', F9.1, ' s')
    2415 486 FORMAT ('       Particle statistics are written on file'/)
    2416 487 FORMAT ('       Number of particle groups: ',I2/)
    2417 488 FORMAT ('       SGS velocity components are used for particle advection'/ &
    2418             '          minimum timestep for advection:', F8.5/)
    2419 489 FORMAT ('       Number of particles simultaneously released at each ', &
    2420                     'point: ', I5/)
    2421 490 FORMAT ('       Particle group ',I2,':'/ &
    2422             '          Particle radius: ',E10.3, 'm')
    2423 491 FORMAT ('          Particle inertia is activated'/ &
    2424             '             density_ratio (rho_fluid/rho_particle) =',F6.3/)
    2425 492 FORMAT ('          Particles are advected only passively (no inertia)'/)
    2426 493 FORMAT ('          Boundaries of particle source: x:',F8.1,' - ',F8.1,' m'/&
    2427             '                                         y:',F8.1,' - ',F8.1,' m'/&
    2428             '                                         z:',F8.1,' - ',F8.1,' m'/&
    2429             '          Particle distances:  dx = ',F8.1,' m  dy = ',F8.1, &
    2430                        ' m  dz = ',F8.1,' m'/)
    2431 494 FORMAT ('       Output of particle time series in NetCDF format every ', &
    2432                     F8.2,' s'/)
    2433 495 FORMAT ('       Number of particles in total domain: ',I10/)
    2434 496 FORMAT ('       Initial vertical particle positions are interpreted ', &
    2435                     'as relative to the given topography')
    24362249500 FORMAT (//' 1D-Model parameters:'/                           &
    24372250              ' -------------------'//                           &
  • palm/trunk/SOURCE/init_3d_model.f90

    r3987 r4017  
    625625
    626626    USE kinds
    627 
    628     USE lpm_init_mod,                                                          &
    629         ONLY:  lpm_init
    630627 
    631628    USE lsf_nudging_mod,                                                       &
     
    652649    USE nesting_offl_mod,                                                      &
    653650        ONLY:  nesting_offl_init
    654 
    655     USE particle_attributes,                                                   &
    656         ONLY:  particle_advection
    657651
    658652    USE pegrid
     
    22712265    ENDIF
    22722266
    2273 !
    2274 !-- If required, initialize dvrp-software
    2275     IF ( dt_dvrp /= 9999999.9_wp )  CALL init_dvrp
    2276 
    2277 !
    2278 !-- Initialize quantities for handling cloud physics.
    2279 !-- This routine must be called before lpm_init, becaus otherwise,
    2280 !-- array d_exner, needed in data_output_dvrp (called by lpm_init) is not defined.
    22812267    IF ( .NOT. ocean_mode )  THEN
    22822268
     
    23072293    ENDIF
    23082294
    2309 !
    2310 !-- If required, initialize particles
    2311     IF ( particle_advection )  CALL lpm_init
    23122295!
    23132296!-- If required, initialize particles
  • palm/trunk/SOURCE/mod_particle_attributes.f90

    r3786 r4017  
    115115    USE kinds
    116116
    117     CHARACTER(LEN=15) ::  aero_species = 'nacl'                    !< aerosol species
    118     CHARACTER(LEN=15) ::  aero_type    = 'maritime'                !< aerosol type
    119     CHARACTER(LEN=15) ::  bc_par_lr    = 'cyclic'                  !< left/right boundary condition
    120     CHARACTER(LEN=15) ::  bc_par_ns    = 'cyclic'                  !< north/south boundary condition
    121     CHARACTER(LEN=15) ::  bc_par_b     = 'reflect'                 !< bottom boundary condition
    122     CHARACTER(LEN=15) ::  bc_par_t     = 'absorb'                  !< top boundary condition
    123     CHARACTER(LEN=15) ::  collision_kernel   = 'none'              !< collision kernel
    124     CHARACTER(LEN=5)  ::  splitting_function = 'gamma'             !< function for calculation critical weighting factor
    125     CHARACTER(LEN=5)  ::  splitting_mode     = 'const'             !< splitting mode
    126 
    127     INTEGER(iwp) ::  deleted_particles = 0                        !< number of deleted particles per time step
    128117    INTEGER(iwp) ::  dissipation_classes = 10                     !< namelist parameter (see documentation)
    129118    INTEGER(iwp) ::  ibc_par_b                                    !< particle bottom boundary condition dummy
     
    131120    INTEGER(iwp) ::  ibc_par_ns                                   !< particle north/south boundary condition dummy
    132121    INTEGER(iwp) ::  ibc_par_t                                    !< particle top boundary condition dummy
    133     INTEGER(iwp) ::  iran_part = -1234567                         !< number for random generator
    134     INTEGER(iwp) ::  isf                                          !< dummy for splitting function
    135     INTEGER(iwp) ::  i_splitting_mode                             !< dummy for splitting mode
    136     INTEGER(iwp) ::  max_number_particles_per_gridbox = 100       !< namelist parameter (see documentation)
    137     INTEGER(iwp) ::  merge_drp = 0                                !< number of merged droplets
    138122    INTEGER(iwp) ::  min_nr_particle = 50                         !< namelist parameter (see documentation)
    139     INTEGER(iwp) ::  new_particles = 0                            !< number of new particles
    140     INTEGER(iwp) ::  n_max = 100                                  !< number of radii bin for splitting functions
    141123    INTEGER(iwp) ::  number_of_particles = 0                      !< number of particles for each grid box (3d array is saved on prt_count)
    142124    INTEGER(iwp) ::  number_of_particle_groups = 1                !< namelist parameter (see documentation)
    143     INTEGER(iwp) ::  number_of_sublayers = 20                     !< number of sublayers for particle velocities betwenn surface and first grid level
    144     INTEGER(iwp) ::  number_particles_per_gridbox = -1            !< namelist parameter (see documentation)
    145     INTEGER(iwp) ::  offset_ocean_nzt = 0                         !< in case of oceans runs, the vertical index calculations need an offset
    146     INTEGER(iwp) ::  offset_ocean_nzt_m1 = 0                      !< in case of oceans runs, the vertical index calculations need an offset
    147     INTEGER(iwp) ::  particles_per_point = 1                      !< namelist parameter (see documentation)
    148     INTEGER(iwp) ::  radius_classes = 20                          !< namelist parameter (see documentation)
    149     INTEGER(iwp) ::  sort_count = 0                               !< counter for sorting particles
    150     INTEGER(iwp) ::  splitting_factor = 2                         !< namelist parameter (see documentation)
    151     INTEGER(iwp) ::  splitting_factor_max = 5                     !< namelist parameter (see documentation)
    152     INTEGER(iwp) ::  step_dealloc = 100                           !< namelist parameter (see documentation)
    153     INTEGER(iwp) ::  sum_merge_drp = 0                            !< sum of merged super droplets
    154     INTEGER(iwp) ::  sum_new_particles = 0                        !< sum of created particles (in splitting algorithm)
    155     INTEGER(iwp) ::  total_number_of_particles                    !< total number of particles in the whole model domain
    156     INTEGER(iwp) ::  trlp_count_sum                               !< parameter for particle exchange of PEs
    157     INTEGER(iwp) ::  trlp_count_recv_sum                          !< parameter for particle exchange of PEs
    158     INTEGER(iwp) ::  trrp_count_sum                               !< parameter for particle exchange of PEs
    159     INTEGER(iwp) ::  trrp_count_recv_sum                          !< parameter for particle exchange of PEs
    160     INTEGER(iwp) ::  trsp_count_sum                               !< parameter for particle exchange of PEs
    161     INTEGER(iwp) ::  trsp_count_recv_sum                          !< parameter for particle exchange of PEs
    162     INTEGER(iwp) ::  trnp_count_sum                               !< parameter for particle exchange of PEs
    163     INTEGER(iwp) ::  trnp_count_recv_sum                          !< parameter for particle exchange of PEs
    164125
    165126    INTEGER(iwp), PARAMETER ::  max_number_of_particle_groups = 10 !< maximum allowed number of particle groups
    166127
    167128    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  prt_count  !< 3d array of number of particles of every grid box
    168 
    169     LOGICAL ::  curvature_solution_effects = .FALSE.      !< namelist parameter (see documentation)
    170     LOGICAL ::  deallocate_memory = .TRUE.                !< namelist parameter (see documentation)
    171     LOGICAL ::  hall_kernel = .FALSE.                     !< flag for collision kernel
    172     LOGICAL ::  merging = .FALSE.                         !< namelist parameter (see documentation)
     129   
    173130    LOGICAL ::  particle_advection = .FALSE.              !< parameter to steer the advection of particles
    174     LOGICAL ::  random_start_position = .FALSE.           !< namelist parameter (see documentation)
    175     LOGICAL ::  read_particles_from_restartfile = .TRUE.  !< namelist parameter (see documentation)
    176     LOGICAL ::  seed_follows_topography = .FALSE.         !< namelist parameter (see documentation)
    177     LOGICAL ::  splitting = .FALSE.                       !< namelist parameter (see documentation)
    178     LOGICAL ::  use_kernel_tables = .FALSE.               !< parameter, which turns on the use of precalculated collision kernels
    179     LOGICAL ::  use_sgs_for_particles = .FALSE.           !< namelist parameter (see documentation)
     131    LOGICAL ::  use_sgs_for_particles = .FALSE.           !< namelist parameter (see documentation)   
    180132    LOGICAL ::  wang_kernel = .FALSE.                     !< flag for collision kernel
    181     LOGICAL ::  write_particle_statistics = .FALSE.       !< namelist parameter (see documentation)
    182 
    183     LOGICAL, DIMENSION(max_number_of_particle_groups) ::                       &
    184                 vertical_particle_advection = .TRUE.              !< Switch on/off vertical particle transport
    185 
    186     REAL(wp) ::  aero_weight = 1.0_wp                      !< namelist parameter (see documentation)
     133
    187134    REAL(wp) ::  alloc_factor = 20.0_wp                    !< namelist parameter (see documentation)
    188     REAL(wp) ::  c_0 = 3.0_wp                              !< parameter for lagrangian timescale
    189     REAL(wp) ::  dt_min_part = 0.0002_wp                   !< minimum particle time step when SGS velocities are used (s)
    190     REAL(wp) ::  dt_prel = 9999999.9_wp                    !< namelist parameter (see documentation)
    191     REAL(wp) ::  dt_write_particle_data = 9999999.9_wp     !< namelist parameter (see documentation)
    192     REAL(wp) ::  end_time_prel = 9999999.9_wp              !< namelist parameter (see documentation)
    193     REAL(wp) ::  initial_weighting_factor = 1.0_wp         !< namelist parameter (see documentation)
    194     REAL(wp) ::  last_particle_release_time = 0.0_wp       !< last time of particle release
    195     REAL(wp) ::  log_sigma(3) = 1.0_wp                     !< namelist parameter (see documentation)
    196     REAL(wp) ::  na(3) = 0.0_wp                            !< namelist parameter (see documentation)
    197     REAL(wp) ::  number_concentration = -1.0_wp            !< namelist parameter (see documentation)
    198135    REAL(wp) ::  particle_advection_start = 0.0_wp         !< namelist parameter (see documentation)
    199     REAL(wp) ::  radius_merge = 1.0E-7_wp                  !< namelist parameter (see documentation)
    200     REAL(wp) ::  radius_split = 40.0E-6_wp                 !< namelist parameter (see documentation)
    201     REAL(wp) ::  rm(3) = 1.0E-6_wp                         !< namelist parameter (see documentation)
    202     REAL(wp) ::  sgs_wf_part                               !< parameter for sgs
    203     REAL(wp) ::  time_write_particle_data = 0.0_wp         !< write particle data at current time on file
    204     REAL(wp) ::  weight_factor_merge = -1.0_wp             !< namelist parameter (see documentation)
    205     REAL(wp) ::  weight_factor_split = -1.0_wp             !< namelist parameter (see documentation)
    206     REAL(wp) ::  z0_av_global                              !< horizontal mean value of z0
    207 
    208     REAL(wp), DIMENSION(max_number_of_particle_groups) ::  density_ratio = 9999999.9_wp  !< namelist parameter (see documentation)
    209     REAL(wp), DIMENSION(max_number_of_particle_groups) ::  pdx = 9999999.9_wp            !< namelist parameter (see documentation)
    210     REAL(wp), DIMENSION(max_number_of_particle_groups) ::  pdy = 9999999.9_wp            !< namelist parameter (see documentation)
    211     REAL(wp), DIMENSION(max_number_of_particle_groups) ::  pdz = 9999999.9_wp            !< namelist parameter (see documentation)
    212     REAL(wp), DIMENSION(max_number_of_particle_groups) ::  psb = 9999999.9_wp            !< namelist parameter (see documentation)
    213     REAL(wp), DIMENSION(max_number_of_particle_groups) ::  psl = 9999999.9_wp            !< namelist parameter (see documentation)
    214     REAL(wp), DIMENSION(max_number_of_particle_groups) ::  psn = 9999999.9_wp            !< namelist parameter (see documentation)
    215     REAL(wp), DIMENSION(max_number_of_particle_groups) ::  psr = 9999999.9_wp            !< namelist parameter (see documentation)
    216     REAL(wp), DIMENSION(max_number_of_particle_groups) ::  pss = 9999999.9_wp            !< namelist parameter (see documentation)
    217     REAL(wp), DIMENSION(max_number_of_particle_groups) ::  pst = 9999999.9_wp            !< namelist parameter (see documentation).
    218     REAL(wp), DIMENSION(max_number_of_particle_groups) ::  radius = 9999999.9_wp         !< namelist parameter (see documentation)
    219 
    220     REAL(wp), DIMENSION(:), ALLOCATABLE     ::  log_z_z0   !< Precalculate LOG(z/z0)
    221136
    222137!
  • palm/trunk/SOURCE/module_interface.f90

    r4008 r4017  
    242242               im_data_output_3d,                                              &
    243243               im_init
    244 
     244               
     245    USE lagrangian_particle_model_mod,                                         &
     246        ONLY:  lpm_parin,                                                      &
     247               lpm_header,                                                     &
     248               lpm_check_parameters,                                           &
     249               lpm_init,                                                       &
     250               lpm_actions,                                                    &
     251               lpm_rrd_global,                                                 &
     252               lpm_rrd_local,                                                  &
     253               lpm_wrd_local,                                                  &
     254               lpm_wrd_global
     255               
    245256    USE land_surface_model_mod,                                                &
    246257        ONLY:  lsm_parin,                                                      &
     
    290301               ocean_rrd_local,                                                &
    291302               ocean_wrd_local
     303               
     304    USE particle_attributes,                                                   &
     305        ONLY:  particle_advection               
    292306
    293307    USE plant_canopy_model_mod,                                                &
     
    558572    CALL gust_parin
    559573    CALL im_parin
     574    CALL lpm_parin     
    560575    CALL lsm_parin
    561576    ! ToDo: create parin routine for large_scale_forcing and nudging (should be seperate modules or new module switch)
     
    574589    CALL wtm_parin
    575590
    576     CALL package_parin ! ToDo: deprecated, needs to be dissolved
    577 
    578591    IF ( debug_output )  CALL debug_message( 'reading module-specific parameters', 'end' )
    579592
     
    596609    IF ( gust_module_enabled )  CALL gust_check_parameters
    597610    IF ( indoor_model )         CALL im_check_parameters
     611    IF ( particle_advection )   CALL lpm_check_parameters       
    598612    IF ( land_surface )         CALL lsm_check_parameters
    599613    IF ( large_scale_forcing  .OR.  nudging )  CALL lsf_nudging_check_parameters ! ToDo: create single module switch
     
    896910    IF ( gust_module_enabled )  CALL gust_init
    897911    IF ( indoor_model        )  CALL im_init
     912    IF ( particle_advection  )  CALL lpm_init   
    898913    IF ( large_scale_forcing )  CALL lsf_init
    899914    IF ( land_surface        )  CALL lsm_init
     
    950965    IF ( virtual_flight      )  CALL flight_header( io )
    951966    IF ( gust_module_enabled )  CALL gust_header( io )
     967    IF ( particle_advection  )  CALL lpm_header( io )   
    952968    IF ( land_surface        )  CALL lsm_header( io )
    953969    IF ( large_scale_forcing )  CALL lsf_nudging_header( io )
     
    981997    IF ( air_chemistry       )  CALL chem_actions( location )
    982998    IF ( gust_module_enabled )  CALL gust_actions( location )
     999    IF ( particle_advection  )  CALL lpm_actions( location )   
    9831000    IF ( ocean_mode          )  CALL ocean_actions( location )
    9841001    IF ( salsa               )  CALL salsa_actions( location )
     
    13771394    IF ( .NOT. found )  CALL flight_rrd_global( found ) ! ToDo: change interface to pass variable
    13781395    IF ( .NOT. found )  CALL gust_rrd_global( found ) ! ToDo: change interface to pass variable
     1396    IF ( .NOT. found )  CALL lpm_rrd_global( found ) ! ToDo: change interface to pass variable       
    13791397    IF ( .NOT. found )  CALL ocean_rrd_global( found ) ! ToDo: change interface to pass variable
    13801398    IF ( .NOT. found )  CALL stg_rrd_global ( found ) ! ToDo: change interface to pass variable
     
    14801498                            ) ! ToDo: change interface to pass variable
    14811499
     1500    IF ( .NOT. found ) CALL lpm_rrd_local(                                     &
     1501                               map_index,                                      &
     1502                               nxlf, nxlc, nxl_on_file,                        &
     1503                               nxrf, nxrc, nxr_on_file,                        &
     1504                               nynf, nync, nyn_on_file,                        &
     1505                               nysf, nysc, nys_on_file,                        &
     1506                               tmp_3d, found                                   &
     1507                            ) ! ToDo: change interface to pass variable
     1508
    14821509    IF ( .NOT. found ) CALL lsm_rrd_local(                                     &
    14831510                               map_index,                                      &
     
    15571584    IF ( air_chemistry )        CALL chem_wrd_local
    15581585    IF ( gust_module_enabled )  CALL gust_wrd_local
     1586    IF ( particle_advection )   CALL lpm_wrd_local   
    15591587    IF ( land_surface )         CALL lsm_wrd_local
    15601588    IF ( ocean_mode )           CALL ocean_wrd_local
  • palm/trunk/SOURCE/modules.f90

    r3990 r4017  
    11951195    INTEGER(iwp) ::  dots_time_count = 0               !< number of output intervals for timeseries output
    11961196    INTEGER(iwp) ::  dp_level_ind_b = 0                !< lowest grid index for external pressure gradient forcing
    1197     INTEGER(iwp) ::  dvrp_filecount = 0                !< parameter for dvr visualization software
    11981197    INTEGER(iwp) ::  ensemble_member_nr = 0            !< namelist parameter
    11991198    INTEGER(iwp) ::  gamma_mg                          !< switch for steering the multigrid cycle: 1: v-cycle, 2: w-cycle
     
    14601459    REAL(wp) ::  dt_do2d_yz = 9999999.9_wp                     !< namelist parameter
    14611460    REAL(wp) ::  dt_do3d = 9999999.9_wp                        !< namelist parameter
    1462     REAL(wp) ::  dt_dvrp = 9999999.9_wp                        !< namelist parameter
    14631461    REAL(wp) ::  dt_max = 20.0_wp                              !< namelist parameter
    14641462    REAL(wp) ::  dt_restart = 9999999.9_wp                     !< namelist parameter
     
    15451543    REAL(wp) ::  time_do_av = 0.0_wp                           !< time since last averaged-data output
    15461544    REAL(wp) ::  time_do_sla = 0.0_wp                          !< time since last
    1547     REAL(wp) ::  time_dvrp = 0.0_wp                            !< time since last dvrp output
    15481545    REAL(wp) ::  time_restart = 9999999.9_wp                   !< time at which run shall be terminated and restarted
    15491546    REAL(wp) ::  time_run_control = 0.0_wp                     !< time since last RUN_CONTROL output
     
    16271624
    16281625 END MODULE control_parameters
    1629 
    1630 
    1631 !------------------------------------------------------------------------------!
    1632 ! Description:
    1633 ! ------------
    1634 !> Definition of variables used with dvrp-software.
    1635 !------------------------------------------------------------------------------!
    1636  MODULE dvrp_variables
    1637 
    1638     USE kinds
    1639 
    1640     CHARACTER (LEN=10) ::  dvrp_output = 'rtsp'        !< dvr namelist parameter
    1641     CHARACTER (LEN=10) ::  particle_color = 'none'     !< dvr namelist parameter
    1642     CHARACTER (LEN=10) ::  particle_dvrpsize = 'none'  !< dvr namelist parameter
    1643 
    1644     CHARACTER (LEN=20), DIMENSION(10) ::  mode_dvrp = &  !< dvr namelist parameter
    1645                                      (/ ( '                    ', i9 = 1,10 ) /)
    1646 
    1647     CHARACTER (LEN=80) ::  dvrp_directory = 'default'                     !< dvr namelist parameter
    1648     CHARACTER (LEN=80) ::  dvrp_file      = 'default'                     !< dvr namelist parameter
    1649     CHARACTER (LEN=80) ::  dvrp_host      = 'origin.rvs.uni-hannover.de'  !< dvr namelist parameter
    1650     CHARACTER (LEN=80) ::  dvrp_password  = '********'                    !< dvr namelist parameter
    1651     CHARACTER (LEN=80) ::  dvrp_username  = ' '                           !< dvr namelist parameter
    1652 
    1653     INTEGER(iwp) ::  cluster_size = 1                   !< dvr namelist parameter
    1654     INTEGER(iwp) ::  dvrp_colortable_entries = 4        !< internal dvr software variable
    1655     INTEGER(iwp) ::  dvrp_colortable_entries_prt = 22   !< internal dvr software variable
    1656     INTEGER(iwp) ::  islice_dvrp                        !< internal dvr software variable
    1657     INTEGER(iwp) ::  nx_dvrp                            !< internal dvr software variable
    1658     INTEGER(iwp) ::  nxl_dvrp                           !< internal dvr software variable
    1659     INTEGER(iwp) ::  nxr_dvrp                           !< internal dvr software variable
    1660     INTEGER(iwp) ::  ny_dvrp                            !< internal dvr software variable
    1661     INTEGER(iwp) ::  nyn_dvrp                           !< internal dvr software variable
    1662     INTEGER(iwp) ::  nys_dvrp                           !< internal dvr software variable
    1663     INTEGER(iwp) ::  nz_dvrp                            !< internal dvr software variable
    1664     INTEGER(iwp) ::  pathlines_fadeintime = 5           !< dvr namelist parameter
    1665     INTEGER(iwp) ::  pathlines_fadeouttime = 5          !< dvr namelist parameter
    1666     INTEGER(iwp) ::  pathlines_linecount = 1000         !< dvr namelist parameter
    1667     INTEGER(iwp) ::  pathlines_maxhistory = 40          !< dvr namelist parameter
    1668     INTEGER(iwp) ::  pathlines_wavecount = 10           !< dvr namelist parameter
    1669     INTEGER(iwp) ::  pathlines_wavetime = 50            !< dvr namelist parameter
    1670     INTEGER(iwp) ::  vc_gradient_normals = 0            !< dvr namelist parameter
    1671     INTEGER(iwp) ::  vc_mode = 0                        !< dvr namelist parameter
    1672     INTEGER(iwp) ::  vc_size_x = 2                      !< dvr namelist parameter
    1673     INTEGER(iwp) ::  vc_size_y = 2                      !< dvr namelist parameter
    1674     INTEGER(iwp) ::  vc_size_z = 2                      !< dvr namelist parameter
    1675 
    1676     INTEGER(iwp), DIMENSION(10) ::  slicer_position_dvrp  !< internal dvr software variable
    1677 
    1678     LOGICAL ::  cyclic_dvrp = .FALSE.                      !< internal dvr software variable
    1679     LOGICAL ::  dvrp_overlap                               !< internal dvr software variable
    1680     LOGICAL ::  dvrp_total_overlap                         !< internal dvr software variable
    1681     LOGICAL ::  local_dvrserver_running                    !< namelist parameter (ENVPAR namelist provided by palmrun)
    1682     LOGICAL ::  lock_steering_update = .FALSE.             !< internal dvr software variable
    1683     LOGICAL ::  use_seperate_pe_for_dvrp_output = .FALSE.  !< internal dvr software variable
    1684 
    1685     REAL(wp) ::  clip_dvrp_l = 9999999.9_wp  !< dvr namelist parameter
    1686     REAL(wp) ::  clip_dvrp_n = 9999999.9_wp  !< dvr namelist parameter
    1687     REAL(wp) ::  clip_dvrp_r = 9999999.9_wp  !< dvr namelist parameter
    1688     REAL(wp) ::  clip_dvrp_s = 9999999.9_wp  !< dvr namelist parameter
    1689     REAL(wp) ::  superelevation = 1.0_wp     !< dvr namelist parameter
    1690     REAL(wp) ::  superelevation_x = 1.0_wp   !< dvr namelist parameter
    1691     REAL(wp) ::  superelevation_y = 1.0_wp   !< dvr namelist parameter
    1692     REAL(wp) ::  vc_alpha = 38.0_wp          !< dvr namelist parameter
    1693 
    1694     REAL(wp), DIMENSION(2) ::  color_interval = (/ 0.0_wp, 1.0_wp /)     !< dvr namelist parameter
    1695     REAL(wp), DIMENSION(2) ::  dvrpsize_interval = (/ 0.0_wp, 1.0_wp /)  !< dvr namelist parameter
    1696 
    1697     REAL(wp), DIMENSION(3) ::  groundplate_color = (/ 0.0_wp, 0.6_wp, 0.0_wp /)  !< dvr namelist parameter
    1698     REAL(wp), DIMENSION(3) ::  topography_color = (/ 0.8_wp, 0.7_wp, 0.6_wp /)   !< dvr namelist parameter
    1699 
    1700     REAL(wp), DIMENSION(2,10) ::  slicer_range_limits_dvrp  !< dvr namelist parameter
    1701 
    1702     REAL(wp), DIMENSION(3,10) ::  isosurface_color  !< dvr namelist parameter
    1703 
    1704     REAL(sp), DIMENSION(2,100) ::  interval_values_dvrp          !< internal dvr software variable
    1705     REAL(sp), DIMENSION(2,100) ::  interval_values_dvrp_prt      !< internal dvr software variable
    1706     REAL(sp), DIMENSION(2,100) ::  interval_h_dvrp               !< internal dvr software variable
    1707     REAL(sp), DIMENSION(2,100) ::  interval_h_dvrp_prt           !< internal dvr software variable
    1708     REAL(sp), DIMENSION(2,100) ::  interval_l_dvrp = 0.5_sp      !< internal dvr software variable
    1709     REAL(sp), DIMENSION(2,100) ::  interval_l_dvrp_prt = 0.5_sp  !< internal dvr software variable
    1710     REAL(sp), DIMENSION(2,100) ::  interval_s_dvrp = 1.0_sp      !< internal dvr software variable
    1711     REAL(sp), DIMENSION(2,100) ::  interval_s_dvrp_prt = 1.0_sp  !< internal dvr software variable
    1712     REAL(sp), DIMENSION(2,100) ::  interval_a_dvrp = 0.0_sp      !< internal dvr software variable
    1713     REAL(sp), DIMENSION(2,100) ::  interval_a_dvrp_prt = 0.0_sp  !< internal dvr software variable
    1714 
    1715     DATA  slicer_range_limits_dvrp / -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, &  !< internal dvr software variable
    1716                                      -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, &
    1717                                      -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, -1.0_wp, 1.0_wp, &
    1718                                      -1.0_wp, 1.0_wp /
    1719 
    1720     DATA  isosurface_color / 0.9_wp, 0.9_wp, 0.9_wp,  0.8_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.8_wp, &  !< internal dvr software variable
    1721                              0.1_wp, 0.8_wp, 0.1_wp,  0.6_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.6_wp, &
    1722                              0.1_wp, 0.6_wp, 0.1_wp,  0.4_wp, 0.1_wp, 0.1_wp,  0.1_wp, 0.1_wp, 0.4_wp, &
    1723                              0.1_wp, 0.4_wp, 0.1_wp /
    1724 
    1725     DATA  interval_h_dvrp / 270.0_wp, 225.0_wp, 225.0_wp, 180.0_wp, 70.0_wp, 25.0_wp, &  !< internal dvr software variable
    1726                             25.0_wp, -25.0_wp, 192 * 0.0_wp /
    1727 
    1728     DATA  interval_h_dvrp_prt / 270.0_wp, 225.0_wp, 225.0_wp, 180.0_wp, 70.0_wp, 25.0_wp, &  !< internal dvr software variable
    1729                                 25.0_wp, -25.0_wp, 192 * 0.0_wp /
    1730 
    1731     REAL(sp), DIMENSION(:), ALLOCATABLE ::  xcoor_dvrp  !< internal dvr software variable
    1732     REAL(sp), DIMENSION(:), ALLOCATABLE ::  ycoor_dvrp  !< internal dvr software variable
    1733     REAL(sp), DIMENSION(:), ALLOCATABLE ::  zcoor_dvrp  !< internal dvr software variable
    1734 
    1735     TYPE steering
    1736        CHARACTER (LEN=24) ::  name  !< internal dvr software variable
    1737        REAL(sp)           ::  min   !< internal dvr software variable
    1738        REAL(sp)           ::  max   !< internal dvr software variable
    1739        INTEGER(iwp)       ::  imin  !< internal dvr software variable
    1740        INTEGER(iwp)       ::  imax  !< internal dvr software variable
    1741     END TYPE steering
    1742 
    1743     TYPE(steering), DIMENSION(:), ALLOCATABLE ::  steering_dvrp  !< internal dvr software variable
    1744 
    1745     SAVE
    1746 
    1747  END MODULE dvrp_variables
    17481626
    17491627
  • palm/trunk/SOURCE/palm.f90

    r3995 r4017  
    1 !> @file palm.f90
     1! !> @file palm.f90
    22!------------------------------------------------------------------------------!
    33! This file is part of the PALM model system.
     
    321321        ONLY:  netcdf_data_input_inquire_file, netcdf_data_input_init,         &
    322322               netcdf_data_input_surface_data, netcdf_data_input_topo
    323 
    324     USE particle_attributes,                                                   &
    325         ONLY:  particle_advection
    326323
    327324    USE pegrid
     
    452449    CALL MPI_COMM_RANK( comm_palm, myid, ierr )
    453450#endif
    454 
    455     CALL init_dvrp_logging
    456451
    457452!
     
    614609
    615610       CALL cpu_log( log_point(22), 'wrd_local', 'stop' )
    616 
    617 !
    618 !--    If required, write particle data in own restart files
    619        IF ( particle_advection )  CALL lpm_write_restart_file
    620611       
    621612    ENDIF
     
    641632!-- Close files
    642633    CALL close_file( 0 )
    643     CALL close_dvrp
    644634
    645635!
  • palm/trunk/SOURCE/parin.f90

    r3987 r4017  
    503503    USE date_and_time_mod,                                                     &
    504504        ONLY:  date_init, day_of_year_init, time_utc_init
    505 
    506     USE dvrp_variables,                                                        &
    507         ONLY:  local_dvrserver_running
    508505
    509506    USE grid_variables,                                                        &
     
    744741             termination_time_needed, vnest_start_time
    745742
    746     NAMELIST /envpar/  progress_bar_disabled, host, local_dvrserver_running,   &
     743    NAMELIST /envpar/  progress_bar_disabled, host,                            &
    747744                       maximum_cpu_time_allowed, maximum_parallel_io_streams,  &
    748745                       read_svf, revision, run_identifier, tasks_per_node,     &
  • palm/trunk/SOURCE/pmc_particle_interface.f90

    r3948 r4017  
    9090       ONLY:  prt_count, particles, grid_particles,                            &
    9191              particle_type, number_of_particles, zero_particle,               &
    92               ibc_par_t, ibc_par_lr, ibc_par_ns, alloc_factor
    93 
    94    USE lpm_pack_and_sort_mod
    95 
    96    USE lpm_exchange_horiz_mod,                                                 &
    97        ONLY: realloc_particles_array
     92              ibc_par_t, ibc_par_lr, ibc_par_ns, alloc_factor, min_nr_particle
     93
     94!    USE lpm_pack_and_sort_mod
    9895
    9996#if defined( __parallel )
     
    956953                   prt_count(kp,jp,ip) = prt_count(kp,jp,ip) + 1
    957954                   IF ( prt_count(kp,jp,ip) > SIZE( grid_particles(kp,jp,ip)%particles ) ) THEN
    958                       CALL realloc_particles_array( ip, jp, kp )
     955                      CALL pmc_realloc_particles_array( ip, jp, kp )
    959956                   ENDIF
    960957                   coarse_particles(jc,ic)%parent_particles(n)%x = xc                   ! Adjust coordinates to child grid
     
    10821079!- Pack particles (eliminate those marked for deletion),
    10831080!- determine new number of particles
    1084    CALL lpm_sort_in_subboxes
     1081!    CALL lpm_sort_in_subboxes
    10851082
    10861083#endif
     
    11371134                prt_count(k,j,i) = prt_count(k,j,i) + 1
    11381135                IF ( prt_count(k,j,i) > SIZE( grid_particles(k,j,i)%particles ) ) THEN
    1139                    CALL realloc_particles_array( i, j, k )
     1136                   CALL pmc_realloc_particles_array( i, j, k )
    11401137                ENDIF
    11411138                grid_particles(k,j,i)%particles(prt_count(k,j,i)) = particle_in_win(pindex)
     
    11551152#endif
    11561153 END SUBROUTINE p_copy_particle_to_org_grid
    1157 
     1154 
     1155!------------------------------------------------------------------------------!
     1156! Description:
     1157! ------------
     1158!> If the allocated memory for the particle array do not suffice to add arriving
     1159!> particles from neighbour grid cells, this subrouting reallocates the
     1160!> particle array to assure enough memory is available.
     1161!------------------------------------------------------------------------------!
     1162 SUBROUTINE pmc_realloc_particles_array ( i, j, k, size_in )
     1163
     1164    INTEGER(iwp), INTENT(IN)                       ::  i              !<
     1165    INTEGER(iwp), INTENT(IN)                       ::  j              !<
     1166    INTEGER(iwp), INTENT(IN)                       ::  k              !<
     1167    INTEGER(iwp), INTENT(IN), OPTIONAL             ::  size_in        !<
     1168
     1169    INTEGER(iwp)                                   ::  old_size        !<
     1170    INTEGER(iwp)                                   ::  new_size        !<
     1171    TYPE(particle_type), DIMENSION(:), ALLOCATABLE ::  tmp_particles_d !<
     1172    TYPE(particle_type), DIMENSION(500)            ::  tmp_particles_s !<
     1173
     1174    old_size = SIZE(grid_particles(k,j,i)%particles)
     1175
     1176    IF ( PRESENT(size_in) )   THEN
     1177       new_size = size_in
     1178    ELSE
     1179       new_size = old_size * ( 1.0_wp + alloc_factor / 100.0_wp )
     1180    ENDIF
     1181
     1182    new_size = MAX( new_size, min_nr_particle, old_size + 1 )
     1183
     1184    IF ( old_size <= 500 )  THEN
     1185
     1186       tmp_particles_s(1:old_size) = grid_particles(k,j,i)%particles(1:old_size)
     1187
     1188       DEALLOCATE(grid_particles(k,j,i)%particles)
     1189       ALLOCATE(grid_particles(k,j,i)%particles(new_size))
     1190
     1191       grid_particles(k,j,i)%particles(1:old_size)          = tmp_particles_s(1:old_size)
     1192       grid_particles(k,j,i)%particles(old_size+1:new_size) = zero_particle
     1193
     1194    ELSE
     1195
     1196       ALLOCATE(tmp_particles_d(new_size))
     1197       tmp_particles_d(1:old_size) = grid_particles(k,j,i)%particles
     1198
     1199       DEALLOCATE(grid_particles(k,j,i)%particles)
     1200       ALLOCATE(grid_particles(k,j,i)%particles(new_size))
     1201
     1202       grid_particles(k,j,i)%particles(1:old_size)          = tmp_particles_d(1:old_size)
     1203       grid_particles(k,j,i)%particles(old_size+1:new_size) = zero_particle
     1204
     1205       DEALLOCATE(tmp_particles_d)
     1206
     1207    ENDIF
     1208    particles => grid_particles(k,j,i)%particles(1:new_size)
     1209
     1210    RETURN
     1211   
     1212 END SUBROUTINE pmc_realloc_particles_array
    11581213
    11591214END MODULE pmc_particle_interface
  • palm/trunk/SOURCE/read_restart_data_mod.f90

    r4009 r4017  
    155155    USE netcdf_interface,                                                      &
    156156        ONLY:  netcdf_precision, output_for_t0
    157 
    158     USE particle_attributes,                                                   &
    159         ONLY:  curvature_solution_effects, iran_part
    160157
    161158    USE pegrid
     
    410407             CASE ( 'current_timestep_number' )
    411408                READ ( 13 )  current_timestep_number
    412              CASE ( 'curvature_solution_effects' )
    413                 READ ( 13 )  curvature_solution_effects
    414409             CASE ( 'cycle_mg' )
    415410                READ ( 13 )  cycle_mg
     
    442437             CASE ( 'dt_run_control_1d' )
    443438                READ ( 13 )  dt_run_control_1d
    444              CASE ( 'dvrp_filecount' )
    445                 READ ( 13 )  dvrp_filecount
    446439             CASE ( 'dx' )
    447440                READ ( 13 )  dx
     
    676669             CASE ( 'time_dots' )
    677670                READ ( 13 )  time_dots
    678              CASE ( 'time_dvrp' )
    679                 READ ( 13 )  time_dvrp
    680671             CASE ( 'time_radiation' )
    681672                READ ( 13 )  time_radiation
     
    13491340                      tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    13501341
    1351                 CASE ( 'iran' ) ! matching random numbers is still unresolved issue
    1352                    IF ( k == 1 )  READ ( 13 )  iran, iran_part
    1353 
    13541342                CASE ( 'kh' )
    13551343                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     
    14071395                      tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    14081396
    1409                 CASE ( 'pc_av' )
    1410                    IF ( .NOT. ALLOCATED( pc_av ) )  THEN
    1411                       ALLOCATE( pc_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    1412                    ENDIF
    1413                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    1414                    pc_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =                              &
    1415                       tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    1416 
    1417                 CASE ( 'pr_av' )
    1418                    IF ( .NOT. ALLOCATED( pr_av ) )  THEN
    1419                       ALLOCATE( pr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    1420                    ENDIF
    1421                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    1422                    pr_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =                              &
    1423                       tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    1424 
    14251397                CASE ( 'pt' )
    14261398                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     
    14681440                   IF ( k == 1 )  READ ( 13 )  tmp_3d
    14691441                   ql_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =                              &
    1470                       tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    1471 
    1472                 CASE ( 'ql_c_av' )
    1473                    IF ( .NOT. ALLOCATED( ql_c_av ) )  THEN
    1474                       ALLOCATE( ql_c_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    1475                    ENDIF
    1476                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    1477                    ql_c_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =                            &
    1478                       tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    1479 
    1480                 CASE ( 'ql_v_av' )
    1481                    IF ( .NOT. ALLOCATED( ql_v_av ) )  THEN
    1482                       ALLOCATE( ql_v_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    1483                    ENDIF
    1484                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    1485                    ql_v_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =                            &
    1486                       tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    1487 
    1488                 CASE ( 'ql_vp_av' )
    1489                    IF ( .NOT. ALLOCATED( ql_vp_av ) )  THEN
    1490                       ALLOCATE( ql_vp_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    1491                    ENDIF
    1492                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    1493                    ql_vp_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =                           &
    14941442                      tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    14951443
  • palm/trunk/SOURCE/time_integration.f90

    r4010 r4017  
    544544               do_sum, dt_3d, dt_averaging_input, dt_averaging_input_pr, dt_coupling,              &
    545545               dt_data_output_av, dt_disturb, dt_do2d_xy, dt_do2d_xz, dt_do2d_yz, dt_do3d,         &
    546                dt_domask,dt_dopts, dt_dopr, dt_dopr_listing, dt_dots, dt_dvrp, dt_run_control,     &
     546               dt_domask,dt_dopts, dt_dopr, dt_dopr_listing, dt_dots, dt_run_control,              &
    547547               end_time, first_call_lpm, first_call_mas, galilei_transformation, humidity,         &
    548548               indoor_model, intermediate_timestep_count, intermediate_timestep_count_max,         &
     
    557557               time_do2d_xz, time_do2d_yz, time_do3d, time_domask, time_dopr, time_dopr_av,        &
    558558               time_dopr_listing, time_dopts, time_dosp, time_dosp_av, time_dots, time_do_av,      &
    559                time_do_sla, time_disturb, time_dvrp, time_run_control, time_since_reference_point, &
     559               time_do_sla, time_disturb, time_run_control, time_since_reference_point,            &
    560560               turbulent_inflow, turbulent_outflow, urban_surface,                                 &
    561561               use_initial_profile_as_reference, use_single_reference_value, u_gtrans, v_gtrans,   &
     
    591591        ONLY:  lsm_boundary_condition, lsm_energy_balance, lsm_soil_model, skip_time_do_lsm
    592592
    593     USE lpm_mod,                                                                                   &
    594         ONLY:  lpm
     593    USE lagrangian_particle_model_mod,                                                             &
     594        ONLY:  lpm_data_output_ptseries
    595595
    596596    USE lsf_nudging_mod,                                                                           &
     
    846846       ENDIF
    847847    ENDIF
    848 
    849 #if defined( __dvrp_graphics )
    850 !
    851 !-- Time measurement with dvrp software 
    852     CALL DVRP_LOG_EVENT( 2, current_timestep_number )
    853 #endif
    854848
    855849    CALL location_message( 'atmosphere (and/or ocean) time-stepping', 'start' )
     
    1003997               .AND.  intermediate_timestep_count == 1 )                                           &
    1004998          THEN
    1005              CALL lpm
     999             CALL module_interface_actions( 'after_prognostic_equations' )
    10061000             first_call_lpm = .FALSE.
    10071001          ENDIF
     
    15411535          ENDIF
    15421536       ENDDO
    1543        time_dvrp          = time_dvrp        + dt_3d
    15441537       IF ( time_since_reference_point >= skip_time_dosp )  THEN
    15451538          time_dosp       = time_dosp        + dt_3d
     
    18381831               ( time_since_reference_point >= particle_advection_start  .AND.                     &
    18391832                 first_call_lpm ) )  THEN
    1840              CALL data_output_ptseries
     1833             CALL lpm_data_output_ptseries
    18411834             time_dopts = MOD( time_dopts, MAX( dt_dopts, dt_3d ) )
    18421835          ENDIF
    18431836       ENDIF
    1844 
    1845 !
    1846 !--    Output of dvrp-graphics (isosurface, particles, slicer)
    1847 #if defined( __dvrp_graphics )
    1848        CALL DVRP_LOG_EVENT( -2, current_timestep_number-1 )
    1849 #endif
    1850        IF ( time_dvrp >= dt_dvrp )  THEN
    1851           CALL data_output_dvrp
    1852           time_dvrp = MOD( time_dvrp, MAX( dt_dvrp, dt_3d ) )
    1853        ENDIF
    1854 #if defined( __dvrp_graphics )
    1855        CALL DVRP_LOG_EVENT( 2, current_timestep_number )
    1856 #endif
    18571837
    18581838!
     
    19341914    IF ( myid == 0 )  CALL finish_progress_bar
    19351915
    1936 #if defined( __dvrp_graphics )
    1937     CALL DVRP_LOG_EVENT( -2, current_timestep_number )
    1938 #endif
    1939 
    19401916    CALL location_message( 'atmosphere (and/or ocean) time-stepping', 'finished' )
    19411917
  • palm/trunk/SOURCE/write_restart_data_mod.f90

    r3994 r4017  
    116116        ONLY:  netcdf_precision, output_for_t0
    117117
    118     USE particle_attributes,                                                   &
    119         ONLY:  curvature_solution_effects, iran_part
    120 
    121118    USE pegrid,                                                                &
    122119        ONLY:  collective_wait, hor_index_bounds, myid, numprocs
     
    324321       WRITE ( 14 )  current_timestep_number
    325322
    326        CALL wrd_write_string( 'curvature_solution_effects' )
    327        WRITE ( 14 )  curvature_solution_effects
    328 
    329323       CALL wrd_write_string( 'cycle_mg' )
    330324       WRITE ( 14 )  cycle_mg
     
    371365       CALL wrd_write_string( 'dt_run_control_1d' )
    372366       WRITE ( 14 )  dt_run_control_1d
    373 
    374        CALL wrd_write_string( 'dvrp_filecount' )
    375        WRITE ( 14 )  dvrp_filecount
    376367
    377368       CALL wrd_write_string( 'dx' )
     
    707698       WRITE ( 14 )  time_dots
    708699
    709        CALL wrd_write_string( 'time_dvrp' )
    710        WRITE ( 14 )  time_dvrp
    711 
    712700       CALL wrd_write_string( 'time_radiation' )
    713701       WRITE ( 14 )  time_radiation
     
    935923       ENDIF
    936924
    937        CALL wrd_write_string( 'iran' )
    938        WRITE ( 14 )  iran, iran_part
    939 
    940925       CALL wrd_write_string( 'kh' )
    941926       WRITE ( 14 )  kh
Note: See TracChangeset for help on using the changeset viewer.