Changeset 213 for palm/trunk


Ignore:
Timestamp:
Nov 13, 2008 10:26:18 AM (13 years ago)
Author:
raasch
Message:

Output message can be handled with new subroutine handle_palm_message. All output messages will be replaced by this routine step by step within the next revisions

Location:
palm/trunk/SOURCE
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/CURRENT_MODIFICATIONS

    r212 r213  
    1111User can add additional routines in files user_additional_routines.f90
    1212
    13 
    1413check_for_restart, check_parameters, data_output_dvrp, init_dvrp, init_pegrid, local_stop, modules, package_parin, palm, surface_coupler, timestep, user_additional_routines
    1514Makefile, mrun, mbuild, subjob
     
    2221User interface has been split into single files.
    2322
    24 Makefile
     23Output messages (including required stop of execution) can now be handled with
     24the new subroutine handle_palm_message. All output messages will be replaced
     25by this routine step by step within the next revisions.
    2526
    26 New: user_3d_data_averaging user_actions user_advec_particles user_check_data_output user_check_data_output_pr user_data_output_2d user_data_output_3d user_data_output_dvrp user_define_netcdf_grid user_dvrp_coltab user_header user_init user_init_3d_model user_init_grid user_init_particles user_init_plant_canopy user_last_actions user_module user_parin user_particle_attributes user_read_restart_data user_spectra user_statistics
     27Makefile, check_parameters, local_stop, modules
     28
     29New: handle_palm_message, user_3d_data_averaging user_actions user_advec_particles user_check_data_output user_check_data_output_pr user_data_output_2d user_data_output_3d user_data_output_dvrp user_define_netcdf_grid user_dvrp_coltab user_header user_init user_init_3d_model user_init_grid user_init_particles user_init_plant_canopy user_last_actions user_module user_parin user_particle_attributes user_read_restart_data user_spectra user_statistics
    2730
    2831Removed: user_interface
  • palm/trunk/SOURCE/Makefile

    r211 r213  
    55# -----------------
    66# former file user_interface split into one file per subroutine
    7 # +init_coupling
     7# +init_coupling, handle_palm_message
    88#
    99# Former revisions:
     
    5757        diffusion_v.f90 diffusion_w.f90 diffusivities.f90 disturb_field.f90 \
    5858        disturb_heatflux.f90 eqn_state_seawater.f90 exchange_horiz.f90 exchange_horiz_2d.f90 \
    59         fft_xy.f90 flow_statistics.f90 global_min_max.f90 header.f90 \
     59        fft_xy.f90 flow_statistics.f90 global_min_max.f90 \
     60        handle_palm_message.f90 header.f90 \
    6061        impact_of_latent_heat.f90 inflow_turbulence.f90 init_1d_model.f90 \
    6162        init_3d_model.f90 init_advec.f90 init_cloud_physics.f90 init_coupling.f90 \
     
    99100        diffusion_v.o diffusion_w.o diffusivities.o disturb_field.o \
    100101        disturb_heatflux.o eqn_state_seawater.o exchange_horiz.o exchange_horiz_2d.o fft_xy.o \
    101         flow_statistics.o global_min_max.o header.o impact_of_latent_heat.o \
     102        flow_statistics.o global_min_max.o handle_palm_message.o header.o \
     103        impact_of_latent_heat.o \
    102104        inflow_turbulence.o init_1d_model.o init_3d_model.o init_advec.o init_cloud_physics.o \
    103105        init_coupling.o init_dvrp.o init_grid.o init_ocean.o init_particles.o init_pegrid.o \
     
    202204flow_statistics.o: modules.o
    203205global_min_max.o: modules.o
     206handle_palm_message.o: modules.o
    204207header.o: modules.o
    205208impact_of_latent_heat.o: modules.o
  • palm/trunk/SOURCE/check_parameters.f90

    r206 r213  
    44! Actual revisions:
    55! -----------------
     6! Output of messages replaced by message handling routine.
    67! Implementation of an MPI-1 coupling: replaced myid with target_id,
    78! deleted __mpi2 directives
     
    109110!-- Warning, if host is not set
    110111    IF ( host(1:1) == ' ' )  THEN
    111        IF ( myid == 0 )  THEN
    112           PRINT*, '+++ WARNING: check_parameters:'
    113           PRINT*, '    "host" is not set. Please check that environment', &
    114                        ' variable "localhost"'
    115           PRINT*, '    is set before running PALM'
    116        ENDIF
     112       message_string = '"host" is not set. Please check that environment ' // &
     113                        'variable "localhost" & is set before running PALM'
     114       CALL handle_palm_message( 'check_parameters', 'PA0001', 0, 0, 0, 6, 0 )
    117115    ENDIF
    118116
     
    122120         coupling_mode /= 'atmosphere_to_ocean'  .AND.  &
    123121         coupling_mode /= 'ocean_to_atmosphere' )  THEN
    124        IF ( myid == 0 )  THEN
    125           PRINT*, '+++ check_parameters:'
    126           PRINT*, '    illegal coupling mode: ', TRIM( coupling_mode )
    127        ENDIF
    128        CALL local_stop
     122       message_string = 'illegal coupling mode: ' // TRIM( coupling_mode )
     123       CALL handle_palm_message( 'check_parameters', 'PA0002', 1, 2, 0, 6, 0 )
    129124    ENDIF
    130125
     
    132127!-- Check dt_coupling, restart_time, dt_restart, end_time, dx, dy, nx and ny
    133128    IF ( coupling_mode /= 'uncoupled' )  THEN
     129
    134130       IF ( dt_coupling == 9999999.9 )  THEN
    135           IF ( myid == 0 )  THEN
    136              PRINT*, '+++ check_parameters:'
    137              PRINT*, '    dt_coupling is not set but required for coupling ', &
    138                   'mode: ', TRIM( coupling_mode )
    139           ENDIF
    140           CALL local_stop
    141        ENDIF
     131          message_string = 'dt_coupling is not set but required for coup' // &
     132                           'ling mode "' //  TRIM( coupling_mode ) // '"'
     133          CALL handle_palm_message( 'check_parameters', 'PA0003', 1, 2, 0, 6, &
     134                                    0 )
     135       ENDIF
     136
    142137#if defined( __parallel )
    143138       CALL MPI_SEND( dt_coupling, 1, MPI_REAL, target_id, 11, comm_inter, &
     
    146141                      status, ierr )
    147142       IF ( dt_coupling /= remote )  THEN
    148           IF ( myid == 0 )  THEN
    149              PRINT*, '+++ check_parameters:'
    150              PRINT*, '    TRIM( coupling_mode ): dt_coupling = ', dt_coupling
    151              PRINT*, '    is not equal to dt_coupling_remote = ', remote
    152           ENDIF
    153           CALL local_stop
     143          WRITE( message_string, * ) 'coupling mode "', TRIM( coupling_mode ), &
     144                 '": dt_coupling = ', dt_coupling, '& is not equal to ',       &
     145                 'dt_coupling_remote = ', remote
     146          CALL handle_palm_message( 'check_parameters', 'PA0004', 1, 2, 0, 6, &
     147                                    0 )
    154148       ENDIF
    155149       IF ( dt_coupling <= 0.0 )  THEN
     
    158152                         status, ierr )
    159153          dt_coupling = MAX( dt_max, remote )
    160           IF ( myid == 0 )  THEN
    161              PRINT*, '+++ check_parameters:'
    162              PRINT*, '    TRIM( coupling_mode ): dt_coupling <= 0.0'
    163              PRINT*, '    is not allowed and is reset to MAX(dt_max(A,O)) = ', &
    164                   dt_coupling
    165           ENDIF
    166        ENDIF
     154          WRITE( message_string, * ) 'coupling mode "', TRIM( coupling_mode ), &
     155                 '": dt_coupling <= 0.0 & is not allowed and is reset to ',    &
     156                 'MAX(dt_max(A,O)) = ', dt_coupling
     157          CALL handle_palm_message( 'check_parameters', 'PA0005', 0, 1, 0, 6, &
     158                                    0 )
     159       ENDIF
     160
    167161       CALL MPI_SEND( restart_time, 1, MPI_REAL, target_id, 12, comm_inter, &
    168162                      ierr )
     
    170164                      status, ierr )
    171165       IF ( restart_time /= remote )  THEN
    172           IF ( myid == 0 )  THEN
    173              PRINT*, '+++ check_parameters:'
    174              PRINT*, '    TRIM( coupling_mode ): restart_time = ', restart_time
    175              PRINT*, '    is not equal to restart_time_remote = ', remote
    176           ENDIF
    177           CALL local_stop
    178        ENDIF
     166          WRITE( message_string, * ) 'coupling mode "', TRIM( coupling_mode ), &
     167                 '": restart_time = ', restart_time, '& is not equal to ',     &
     168                 'restart_time_remote = ', remote
     169          CALL handle_palm_message( 'check_parameters', 'PA0006', 1, 2, 0, 6, &
     170                                    0 )
     171       ENDIF
     172
    179173       CALL MPI_SEND( dt_restart, 1, MPI_REAL, target_id, 13, comm_inter, &
    180174                      ierr )
     
    182176                      status, ierr )
    183177       IF ( dt_restart /= remote )  THEN
    184           IF ( myid == 0 )  THEN
    185              PRINT*, '+++ check_parameters:'
    186              PRINT*, '    TRIM( coupling_mode ): dt_restart = ', dt_restart
    187              PRINT*, '    is not equal to dt_restart_remote = ', remote
    188           ENDIF
    189           CALL local_stop
    190        ENDIF
     178          WRITE( message_string, * ) 'coupling mode "', TRIM( coupling_mode ), &
     179                 '": dt_restart = ', dt_restart, '& is not equal to ',         &
     180                 'dt_restart_remote = ', remote
     181          CALL handle_palm_message( 'check_parameters', 'PA0007', 1, 2, 0, 6, &
     182                                    0 )
     183       ENDIF
     184
    191185       CALL MPI_SEND( end_time, 1, MPI_REAL, target_id, 14, comm_inter, ierr )
    192186       CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 14, comm_inter, &
    193187                      status, ierr )
    194188       IF ( end_time /= remote )  THEN
    195           IF ( myid == 0 )  THEN
    196              PRINT*, '+++ check_parameters:'
    197              PRINT*, '    TRIM( coupling_mode ): end_time = ', end_time
    198              PRINT*, '    is not equal to end_time_remote = ', remote
    199           ENDIF
    200           CALL local_stop
    201        ENDIF
     189          WRITE( message_string, * ) 'coupling mode "', TRIM( coupling_mode ), &
     190                 '": end_time = ', end_time, '& is not equal to ',             &
     191                 'end_time_remote = ', remote
     192          CALL handle_palm_message( 'check_parameters', 'PA0008', 1, 2, 0, 6, &
     193                                    0 )
     194       ENDIF
     195
    202196       CALL MPI_SEND( dx, 1, MPI_REAL, target_id, 15, comm_inter, ierr )
    203197       CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 15, comm_inter, &
    204198                      status, ierr )
    205199       IF ( dx /= remote )  THEN
    206           IF ( myid == 0 )  THEN
    207              PRINT*, '+++ check_parameters:'
    208              PRINT*, '    TRIM( coupling_mode ): dx = ', dx
    209              PRINT*, '    is not equal to dx_remote = ', remote
    210           ENDIF
    211           CALL local_stop
    212        ENDIF
     200          WRITE( message_string, * ) 'coupling mode "', TRIM( coupling_mode ), &
     201                 '":  dx = ', dx, '& is not equal to dx_remote = ', remote
     202          CALL handle_palm_message( 'check_parameters', 'PA0009', 1, 2, 0, 6, &
     203                                    0 )
     204       ENDIF
     205
    213206       CALL MPI_SEND( dy, 1, MPI_REAL, target_id, 16, comm_inter, ierr )
    214207       CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 16, comm_inter, &
    215208                      status, ierr )
    216209       IF ( dy /= remote )  THEN
    217           IF ( myid == 0 )  THEN
    218              PRINT*, '+++ check_parameters:'
    219              PRINT*, '    TRIM( coupling_mode ): dy = ', dy
    220              PRINT*, '    is not equal to dy_remote = ', remote
    221           ENDIF
    222           CALL local_stop
    223        ENDIF
     210          WRITE( message_string, * ) 'coupling mode "', TRIM( coupling_mode ), &
     211                 '":  dy = ', dy, '& is not equal to dy_remote = ', remote
     212          CALL handle_palm_message( 'check_parameters', 'PA0010', 1, 2, 0, 6, &
     213                                    0 )
     214       ENDIF
     215
    224216       CALL MPI_SEND( nx, 1, MPI_INTEGER, target_id, 17, comm_inter, ierr )
    225217       CALL MPI_RECV( iremote, 1, MPI_INTEGER, target_id, 17, comm_inter, &
    226218                      status, ierr )
    227219       IF ( nx /= iremote )  THEN
    228           IF ( myid == 0 )  THEN
    229              PRINT*, '+++ check_parameters:'
    230              PRINT*, '    TRIM( coupling_mode ): nx = ', nx
    231              PRINT*, '    is not equal to nx_remote = ', iremote
    232           ENDIF
    233           CALL local_stop
    234        ENDIF
     220          WRITE( message_string, * ) 'coupling mode "', TRIM( coupling_mode ), &
     221                 '": nx = ', nx, '& is not equal to nx_remote = ', iremote
     222          CALL handle_palm_message( 'check_parameters', 'PA0011', 1, 2, 0, 6, &
     223                                    0 )
     224       ENDIF
     225
    235226       CALL MPI_SEND( ny, 1, MPI_INTEGER, target_id, 18, comm_inter, ierr )
    236227       CALL MPI_RECV( iremote, 1, MPI_INTEGER, target_id, 18, comm_inter, &
    237228                      status, ierr )
    238229       IF ( ny /= iremote )  THEN
    239           IF ( myid == 0 )  THEN
    240              PRINT*, '+++ check_parameters:'
    241              PRINT*, '    TRIM( coupling_mode ): ny = ', ny
    242              PRINT*, '    is not equal to ny_remote = ', iremote
    243           ENDIF
    244           CALL local_stop
     230          WRITE( message_string, * ) 'coupling mode "', TRIM( coupling_mode ), &
     231                 '": ny = ', ny, '& is not equal to ny_remote = ', iremote
     232          CALL handle_palm_message( 'check_parameters', 'PA0012', 1, 2, 0, 6, &
     233                                    0 )
    245234       ENDIF
    246235#endif
     
    291280    IF ( loop_optimization /= 'noopt'  .AND.  loop_optimization /= 'cache' &
    292281         .AND.  loop_optimization /= 'vector' )  THEN
    293        IF ( myid == 0 )  THEN
    294           PRINT*, '+++ check_parameters:'
    295           PRINT*, '    illegal value given for loop_optimization: ', &
    296                   TRIM( loop_optimization )
    297        ENDIF
    298        CALL local_stop
     282       message_string = 'illegal value given for loop_optimization: "' // &
     283                        TRIM( loop_optimization ) // '"'
     284       CALL handle_palm_message( 'check_parameters', 'PA0013', 1, 2, 0, 6, 0 )
    299285    ENDIF
    300286
     
    334320       ENDIF
    335321       IF ( action /= ' ' )  THEN
    336           IF ( myid == 0 )  THEN
    337              PRINT*, '+++ check_parameters:'
    338              PRINT*, '    a non-flat topography does not allow ', TRIM( action )
    339           ENDIF
    340           CALL local_stop
     322          message_string = 'a non-flat topography does not allow ' // &
     323                           TRIM( action )
     324          CALL handle_palm_message( 'check_parameters', 'PA0014', 1, 2, 0, 6, &
     325                                    0 )
    341326       ENDIF
    342327    ENDIF
     
    353338       ENDIF
    354339       IF ( action /= ' ' )  THEN
    355           IF ( myid == 0 )  THEN
    356              PRINT*, '+++ check_parameters:'
    357              PRINT*, '    ocean = .T. does not allow ', TRIM( action )
    358           ENDIF
    359           CALL local_stop
     340          message_string = 'ocean = .T. does not allow ' // TRIM( action )
     341          CALL handle_palm_message( 'check_parameters', 'PA0015', 1, 2, 0, 6, &
     342                                    0 )
    360343       ENDIF
    361344    ENDIF
     
    366349    IF ( psolver /= 'poisfft'  .AND.  psolver /= 'poisfft_hybrid'  .AND. &
    367350         psolver /= 'sor'  .AND.  psolver /= 'multigrid' )  THEN
    368        IF ( myid == 0 )  THEN
    369           PRINT*, '+++ check_parameters:'
    370           PRINT*, '    unknown solver for perturbation pressure: psolver=', &
    371                   psolver
    372        ENDIF
    373        CALL local_stop
     351       message_string = 'unknown solver for perturbation pressure: psolver' // &
     352                        ' = "' // TRIM( psolver ) // '"'
     353       CALL handle_palm_message( 'check_parameters', 'PA0016', 1, 2, 0, 6, 0 )
    374354    ENDIF
    375355
    376356#if defined( __parallel )
    377357    IF ( psolver == 'poisfft_hybrid'  .AND.  pdims(2) /= 1 )  THEN
    378        IF ( myid == 0 )  THEN
    379           PRINT*, '+++ check_parameters:'
    380           PRINT*, '    psolver="', TRIM( psolver ), '" only works for a ', &
    381                        '1d domain-decomposition along x'
    382           PRINT*, '    please do not set npey/=1 in the parameter file'
    383        ENDIF
    384        CALL local_stop
     358       message_string = 'psolver = "' // TRIM( psolver ) // '" only works ' // &
     359                        'for a 1d domain-decomposition along x & please do' // &
     360                        ' not set npey/=1 in the parameter file'
     361       CALL handle_palm_message( 'check_parameters', 'PA0017', 1, 2, 0, 6, 0 )
    385362    ENDIF
    386363    IF ( psolver == 'poisfft_hybrid'  .AND.                     &
     
    388365          psolver == 'multigrid'      .AND.                     &
    389366         ( nxra > nxr  .OR.  nyna > nyn ) )  THEN
    390        IF ( myid == 0 )  THEN
    391           PRINT*, '+++ check_parameters:'
    392           PRINT*, '    psolver="', TRIM( psolver ), '" does not work for ', &
    393                        'subdomains with unequal size'
    394           PRINT*, '    please set grid_matching = ''strict'' in the parameter',&
    395                        ' file'
    396        ENDIF
    397        CALL local_stop
     367       message_string = 'psolver = "' // TRIM( psolver ) // '" does not ' // &
     368                        'work for subdomains with unequal size & please ' // &
     369                        'set grid_matching = ''strict'' in the parameter file'
     370       CALL handle_palm_message( 'check_parameters', 'PA0018', 1, 2, 0, 6, 0 )
    398371    ENDIF
    399372#else
    400373    IF ( psolver == 'poisfft_hybrid' )  THEN
    401        IF ( myid == 0 )  THEN
    402           PRINT*, '+++ check_parameters:'
    403           PRINT*, '    psolver="', TRIM( psolver ), '" only works for a ', &
    404                        'parallel environment'
    405        ENDIF
    406        CALL local_stop
     374       message_string = 'psolver = "' // TRIM( psolver ) // '" only works' // &
     375                        ' for a parallel environment'
     376       CALL handle_palm_message( 'check_parameters', 'PA0019', 1, 2, 0, 6, 0 )
    407377    ENDIF
    408378#endif
     
    414384          gamma_mg = 1
    415385       ELSE
    416           IF ( myid == 0 )  THEN
    417              PRINT*, '+++ check_parameters:'
    418              PRINT*, '    unknown multigrid cycle: cycle_mg=', cycle_mg
    419           ENDIF
    420           CALL local_stop
     386          message_string = 'unknown multigrid cycle: cycle_mg = "' // &
     387                           TRIM( cycle_mg ) // '"'
     388          CALL handle_palm_message( 'check_parameters', 'PA0020', 1, 2, 0, 6, &
     389                                    0 )
    421390       ENDIF
    422391    ENDIF
     
    425394         fft_method /= 'temperton-algorithm'  .AND.  &
    426395         fft_method /= 'system-specific' )  THEN
    427        IF ( myid == 0 )  THEN
    428           PRINT*, '+++ check_parameters:'
    429           PRINT*, '    unknown fft-algorithm: fft_method=', fft_method
    430        ENDIF
    431        CALL local_stop
     396       message_string = 'unknown fft-algorithm: fft_method = "' // &
     397                        TRIM( fft_method ) // '"'
     398       CALL handle_palm_message( 'check_parameters', 'PA0021', 1, 2, 0, 6, 0 )
    432399    ENDIF
    433400
  • palm/trunk/SOURCE/local_stop.f90

    r206 r213  
    44! Actual revisions:
    55! -----------------
    6 ! Implementation of a MPI-1 coupling: replaced myid with target_id
     6! Implementation of a MPI-1 coupling: replaced myid with target_id.
     7! The uncoupled case allows stop or mpi_abort depending on new steering
     8! parameter abort_mode, which is set in handle_palm_message.
    79!
    810! Former revisions:
     
    3638#if defined( __parallel )
    3739    IF ( coupling_mode == 'uncoupled' )  THEN
    38        CALL MPI_FINALIZE( ierr )
    39        STOP
     40       IF ( abort_mode == 1 )  THEN
     41          CALL MPI_FINALIZE( ierr )
     42          STOP
     43       ELSEIF ( abort_mode == 2 )  THEN
     44          CALL MPI_ABORT( comm2d, 9999, ierr )
     45       ENDIF
    4046    ELSE
    4147
  • palm/trunk/SOURCE/modules.f90

    r210 r213  
    66! -----------------
    77! some dvrp-variables changed to single precision, variables for dvrp-mode
    8 ! pathlines added, +target_id
     8! pathlines added, +target_id, abort_mode, message_string
    99!
    1010! Former revisions:
     
    257257
    258258
    259     CHARACTER (LEN=1)   ::  cycle_mg = 'w', timestep_reason = ' '
    260     CHARACTER (LEN=2)   ::  coupling_char = ''
    261     CHARACTER (LEN=5)   ::  write_binary = 'false'
    262     CHARACTER (LEN=6)   ::  grid_matching = 'match'
    263     CHARACTER (LEN=8)   ::  run_date, run_time
    264     CHARACTER (LEN=9)   ::  simulated_time_chr
    265     CHARACTER (LEN=12)  ::  version = ' ', revision = ' '
    266     CHARACTER (LEN=16)  ::  loop_optimization = 'default', &
    267                             momentum_advec = 'pw-scheme', &
    268                             psolver = 'poisfft', &
    269                             scalar_advec = 'pw-scheme'
    270     CHARACTER (LEN=20)  ::  bc_e_b = 'neumann', bc_lr = 'cyclic', &
    271                             bc_ns = 'cyclic', bc_p_b = 'neumann', &
    272                             bc_p_t = 'dirichlet', bc_pt_b = 'dirichlet', &
    273                             bc_pt_t = 'initial_gradient', &
    274                             bc_q_b = 'dirichlet', bc_q_t = 'neumann', &
    275                             bc_s_b = 'dirichlet', bc_s_t = 'neumann', &
    276                             bc_sa_t = 'neumann', &
    277                             bc_uv_b = 'dirichlet', bc_uv_t = 'dirichlet', &
    278                             canopy_mode = 'block', &
    279                             coupling_mode = 'uncoupled', &
    280                             coupling_mode_remote = 'uncoupled', &
    281                             dissipation_1d = 'as_in_3d_model', &
    282                             fft_method = 'system-specific', &
    283                             mixing_length_1d = 'as_in_3d_model', &
    284                             random_generator = 'numerical-recipes', &
    285                             return_addres, return_username, &
    286                             timestep_scheme = 'runge-kutta-3'
    287     CHARACTER (LEN=40)  ::  avs_data_file, topography = 'flat'
    288     CHARACTER (LEN=64)  ::  host
    289     CHARACTER (LEN=80)  ::  log_message, run_identifier
    290     CHARACTER (LEN=100) ::  initializing_actions = ' ', run_description_header
     259    CHARACTER (LEN=1)    ::  cycle_mg = 'w', timestep_reason = ' '
     260    CHARACTER (LEN=2)    ::  coupling_char = ''
     261    CHARACTER (LEN=5)    ::  write_binary = 'false'
     262    CHARACTER (LEN=6)    ::  grid_matching = 'match'
     263    CHARACTER (LEN=8)    ::  run_date, run_time
     264    CHARACTER (LEN=9)    ::  simulated_time_chr
     265    CHARACTER (LEN=12)   ::  version = ' ', revision = ' '
     266    CHARACTER (LEN=16)   ::  loop_optimization = 'default', &
     267                             momentum_advec = 'pw-scheme', &
     268                             psolver = 'poisfft', &
     269                             scalar_advec = 'pw-scheme'
     270    CHARACTER (LEN=20)   ::  bc_e_b = 'neumann', bc_lr = 'cyclic', &
     271                             bc_ns = 'cyclic', bc_p_b = 'neumann', &
     272                             bc_p_t = 'dirichlet', bc_pt_b = 'dirichlet', &
     273                             bc_pt_t = 'initial_gradient', &
     274                             bc_q_b = 'dirichlet', bc_q_t = 'neumann', &
     275                             bc_s_b = 'dirichlet', bc_s_t = 'neumann', &
     276                             bc_sa_t = 'neumann', &
     277                             bc_uv_b = 'dirichlet', bc_uv_t = 'dirichlet', &
     278                             canopy_mode = 'block', &
     279                             coupling_mode = 'uncoupled', &
     280                             coupling_mode_remote = 'uncoupled', &
     281                             dissipation_1d = 'as_in_3d_model', &
     282                             fft_method = 'system-specific', &
     283                             mixing_length_1d = 'as_in_3d_model', &
     284                             random_generator = 'numerical-recipes', &
     285                             return_addres, return_username, &
     286                             timestep_scheme = 'runge-kutta-3'
     287    CHARACTER (LEN=40)   ::  avs_data_file, topography = 'flat'
     288    CHARACTER (LEN=64)   ::  host = ' '
     289    CHARACTER (LEN=80)   ::  log_message, run_identifier
     290    CHARACTER (LEN=100)  ::  initializing_actions = ' ', run_description_header
     291    CHARACTER (LEN=1000) ::  message_string = ' '
    291292
    292293    CHARACTER (LEN=7),  DIMENSION(100) ::  do3d_comp_prec = ' '
     
    300301    CHARACTER (LEN=10), DIMENSION(0:1,100) ::  do2d = ' ', do3d = ' '
    301302
    302     INTEGER ::  average_count_pr = 0, average_count_sp = 0, &
     303    INTEGER ::  abort_mode = 0, average_count_pr = 0, average_count_sp = 0, &
    303304                average_count_3d = 0, current_timestep_number = 0, &
    304305                dist_range = 0, disturbance_level_ind_b, &
Note: See TracChangeset for help on using the changeset viewer.