Changeset 1957 for palm/trunk


Ignore:
Timestamp:
Jul 7, 2016 10:43:48 AM (5 years ago)
Author:
suehring
Message:

flight module added

Location:
palm/trunk/SOURCE
Files:
4 added
10 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/Makefile

    r1947 r1957  
    2020# Current revisions:
    2121# ------------------
    22 #
     22# flight module added
    2323#
    2424# Former revisions:
     
    294294        cuda_fft_interfaces_mod.f90 data_log.f90 data_output_dvrp.f90 \
    295295        data_output_mask.f90 data_output_profiles.f90 \
    296         data_output_ptseries.f90 data_output_spectra.f90 \
     296        data_output_ptseries.f90 data_output_spectra.f90 data_output_flight.f90\
    297297        data_output_tseries.f90 data_output_2d.f90 data_output_3d.f90 \
    298298        diffusion_e.f90 diffusion_s.f90 diffusion_u.f90 diffusion_v.f90 \
     
    336336        user_data_output_mask.f90 user_define_netcdf_grid.f90 \
    337337        user_dvrp_coltab.f90 user_header.f90 user_init.f90 \
    338         user_init_3d_model.f90 user_init_grid.f90 user_init_land_surface.f90 \
    339         user_init_plant_canopy.f90 user_init_radiation.f90 \
     338        user_init_3d_model.f90 user_init_flight.f90 user_init_grid.f90 user_init_land_surface.f90 \
     339        user_init_plant_canopy.f90 user_init_radiation.f90 user_flight.f90\
    340340        user_last_actions.f90 user_lpm_advec.f90 \
    341341        user_lpm_init.f90 user_lpm_set_attributes.f90 user_module.f90 \
    342342        user_parin.f90 user_read_restart_data.f90 \
    343         user_spectra.f90 user_statistics.f90 wall_fluxes.f90 \
     343        user_spectra.f90 user_statistics.f90 virtual_flight_mod.f90 wall_fluxes.f90 \
    344344        wind_turbine_model_mod.f90 write_3d_binary.f90 write_var_list.f90
    345345
     
    422422   spectra_mod.o
    423423data_output_tseries.o: modules.o cpulog_mod.o mod_kinds.o netcdf_interface_mod.o
     424data_output_flight.o: modules.o cpulog_mod.o mod_kinds.o netcdf_interface_mod.o virtual_flight_mod.o
    424425data_output_2d.o: modules.o cpulog_mod.o mod_kinds.o mod_particle_attributes.o \
    425426   netcdf_interface_mod.o land_surface_model_mod.o radiation_model_mod.o
     
    445446header.o: modules.o cpulog_mod.o mod_kinds.o netcdf_interface_mod.o land_surface_model_mod.o\
    446447   microphysics_mod.o plant_canopy_model_mod.o pmc_handle_communicator_mod.o pmc_interface_mod.o \
    447    radiation_model_mod.o spectra_mod.o subsidence_mod.o
     448   radiation_model_mod.o spectra_mod.o subsidence_mod.o virtual_flight_mod.o
    448449inflow_turbulence.o: modules.o cpulog_mod.o mod_kinds.o
    449450init_1d_model.o: modules.o mod_kinds.o
     
    452453   radiation_model_mod.o random_function_mod.o random_generator_parallel_mod.o \
    453454   surface_layer_fluxes_mod.o microphysics_mod.o mod_particle_attributes.o \
    454    wind_turbine_model_mod.o
     455   virtual_flight_mod.o wind_turbine_model_mod.o
    455456init_advec.o: modules.o mod_kinds.o
    456457init_cloud_physics.o: modules.o mod_kinds.o
     
    509510parin.o: modules.o cpulog_mod.o land_surface_model_mod.o mod_kinds.o netcdf_interface_mod.o \
    510511   plant_canopy_model_mod.o pmc_interface_mod.o progress_bar_mod.o spectra_mod.o \
    511    radiation_model_mod.o microphysics_mod.o wind_turbine_model_mod.o
     512   radiation_model_mod.o microphysics_mod.o virtual_flight_mod.o wind_turbine_model_mod.o
    512513plant_canopy_model_mod.o: modules.o mod_kinds.o
    513514pmc_interface_mod.o: modules.o mod_kinds.o pmc_child_mod.o pmc_general_mod.o \
     
    541542   spectra_mod.o
    542543read_var_list.o: modules.o mod_kinds.o netcdf_interface_mod.o plant_canopy_model_mod.o \
    543    spectra_mod.o microphysics_mod.o
     544   spectra_mod.o microphysics_mod.o virtual_flight_mod.o
    544545run_control.o: modules.o cpulog_mod.o mod_kinds.o
    545546set_slicer_attributes_dvrp.o: modules.o mod_kinds.o
     
    556557temperton_fft_mod.o: modules.o mod_kinds.o
    557558time_integration.o: modules.o advec_ws.o buoyancy.o calc_mean_profile.o \
    558         cpulog_mod.o interaction_droplets_ptq.o land_surface_model_mod.o \
     559        cpulog_mod.o data_output_flight.o interaction_droplets_ptq.o land_surface_model_mod.o \
    559560        ls_forcing_mod.o mod_kinds.o nudging_mod.o pmc_interface_mod.o production_e.o \
    560561        prognostic_equations.o progress_bar_mod.o radiation_model_mod.o \
    561562        spectra_mod.o user_actions.o surface_layer_fluxes_mod.o microphysics_mod.o \
    562         wind_turbine_model_mod.o
     563         virtual_flight_mod.o wind_turbine_model_mod.o
    563564time_to_string.o: mod_kinds.o
    564565timestep.o: modules.o cpulog_mod.o mod_kinds.o microphysics_mod.o
     
    579580user_define_netcdf_grid.o: modules.o mod_kinds.o user_module.o
    580581user_dvrp_coltab.o: modules.o mod_kinds.o user_module.o
     582user_flight.o: modules.o mod_kinds.o user_module.o
    581583user_header.o: modules.o mod_kinds.o user_module.o
    582584user_init.o: modules.o mod_kinds.o netcdf_interface_mod.o user_module.o
    583585user_init_3d_model.o: modules.o mod_kinds.o user_module.o
     586user_init_flight.o: modules.o mod_kinds.o netcdf_interface_mod.o user_module.o
    584587user_init_grid.o: modules.o mod_kinds.o user_module.o
    585588user_init_land_surface.o: modules.o mod_kinds.o user_module.o land_surface_model_mod.o
     
    595598user_spectra.o: modules.o mod_kinds.o spectra_mod.o user_module.o
    596599user_statistics.o: modules.o mod_kinds.o netcdf_interface_mod.o user_module.o
     600virtual_flight_mod.o: modules.o cpulog_mod.o mod_kinds.o netcdf_interface_mod.o user_init_flight.o user_flight.o
    597601wall_fluxes.o: modules.o mod_kinds.o
    598602wind_turbine_model_mod.o: modules.o cpulog_mod.o mod_kinds.o
     
    601605        spectra_mod.o
    602606write_var_list.o: modules.o mod_kinds.o netcdf_interface_mod.o plant_canopy_model_mod.o\
    603    spectra_mod.o microphysics_mod.o
     607   spectra_mod.o microphysics_mod.o virtual_flight_mod.o
  • palm/trunk/SOURCE/check_open.f90

    r1818 r1957  
    1919! Current revisions:
    2020! -----------------
    21 !
     21! flight module added
    2222!
    2323! Former revisions:
     
    128128
    129129    USE netcdf_interface,                                                      &
    130         ONLY:  id_set_mask, id_set_pr, id_set_prt, id_set_pts, id_set_sp,      &
    131                id_set_ts, id_set_xy, id_set_xz, id_set_yz, id_set_3d, nc_stat, &
    132                netcdf_create_file, netcdf_data_format, netcdf_define_header,   &
    133                netcdf_handle_error, netcdf_open_write_file
     130        ONLY:  id_set_fl, id_set_mask, id_set_pr, id_set_prt, id_set_pts,      &
     131               id_set_sp, id_set_ts, id_set_xy, id_set_xz, id_set_yz,          &
     132               id_set_3d, nc_stat, netcdf_create_file, netcdf_data_format,     &
     133               netcdf_define_header, netcdf_handle_error, netcdf_open_write_file
    134134
    135135    USE particle_attributes,                                                   &
     
    11081108          OPEN ( 117, FILE='PROGRESS'//TRIM( coupling_char ),                  &
    11091109                      STATUS='REPLACE', FORM='FORMATTED' )
     1110!
     1111!--    nc-file for virtual flight measurements
     1112       CASE ( 199 )
     1113!
     1114!--       Set filename
     1115          filename = 'DATA_1D_FL_NETCDF' // TRIM( coupling_char )
     1116
     1117!
     1118!--       Inquire, if there is a netCDF file from a previuos run. This should
     1119!--       be opened for extension, if its variables match the actual run.
     1120          INQUIRE( FILE=filename, EXIST=netcdf_extend )
     1121
     1122          IF ( netcdf_extend )  THEN
     1123!
     1124!--          Open an existing netCDF file for output
     1125             CALL netcdf_open_write_file( filename, id_set_fl, .FALSE., 532 )
     1126!
     1127!--          Read header information and set all ids. If there is a mismatch
     1128!--          between the previuos and the actual run, netcdf_extend is returned
     1129!--          as .FALSE.
     1130             CALL netcdf_define_header( 'fl', netcdf_extend, 0 )
     1131
     1132!
     1133!--          Remove the local file, if it can not be extended
     1134             IF ( .NOT. netcdf_extend )  THEN
     1135                nc_stat = NF90_CLOSE( id_set_fl )
     1136                CALL netcdf_handle_error( 'check_open', 533 )
     1137                CALL local_system( 'rm ' // TRIM( filename ) )
     1138             ENDIF
     1139
     1140          ENDIF         
     1141
     1142          IF ( .NOT. netcdf_extend )  THEN
     1143!
     1144!--          Create a new netCDF output file with requested netCDF format
     1145             CALL netcdf_create_file( filename, id_set_fl, .FALSE., 534 )
     1146!
     1147!--          Define the header
     1148             CALL netcdf_define_header( 'fl', netcdf_extend, 0 )
     1149
     1150          ENDIF
    11101151
    11111152
  • palm/trunk/SOURCE/header.f90

    r1932 r1957  
    1919! Current revisions:
    2020! -----------------
    21 !
     21! flight module added
    2222!
    2323! Former revisions:
     
    275275    USE dvrp_variables,                                                        &
    276276        ONLY:  use_seperate_pe_for_dvrp_output
     277       
     278    USE flight_mod,                                                            &
     279        ONLY:  flight_header
    277280       
    278281    USE grid_variables,                                                        &
     
    16441647    ENDIF
    16451648#endif
     1649!
     1650!-- Output of virtual flight information
     1651    IF ( virtual_flight )  CALL flight_header( io )
    16461652
    16471653!
  • palm/trunk/SOURCE/init_3d_model.f90

    r1921 r1957  
    1919! Current revisions:
    2020! ------------------
    21 !
     21! flight module added
    2222!
    2323! Former revisions:
     
    292292    USE control_parameters
    293293   
     294    USE flight_mod,                                                            &
     295        ONLY:  flight_init
     296   
    294297    USE grid_variables,                                                        &
    295298        ONLY:  dx, dy
     
    707710       CALL wtm_init_arrays
    708711    ENDIF
     712   
     713!
     714!-- Initialize virtual flight measurements
     715    IF ( virtual_flight )  THEN
     716       CALL flight_init
     717    ENDIF
    709718
    710719!
     
    13111320#endif
    13121321       ENDDO
     1322       write(9,*) "EOF read binary"
     1323       flush(9)
    13131324
    13141325!
  • palm/trunk/SOURCE/modules.f90

    r1919 r1957  
    1919! Current revisions:
    2020! ------------------
    21 !
     21! +fl_max, num_leg, num_var_fl, num_var_fl_user, var_fl_max, virtual_flight
    2222!
    2323! Former revisions:
     
    615615    CHARACTER (LEN=20), DIMENSION(0:1,100) ::  do2d = ' ', do3d = ' '
    616616
     617    INTEGER(iwp), PARAMETER :: fl_max = 100, var_fl_max = 20
     618   
    617619    INTEGER(iwp) ::  abort_mode = 1, average_count_pr = 0, &
    618620                     average_count_3d = 0, current_timestep_number = 0, &
     
    637639                     nr_timesteps_this_run = 0, &
    638640                     nsor = 20, nsor_ini = 100, n_sor, normalizing_region = 0, &
     641                     num_leg=0, num_var_fl, num_var_fl_user=0, &
    639642                     nz_do3d = -9999, prt_time_count = 0, &
    640643                     recycling_plane, runnr = 0, &
     
    701704                microphysics_seifert = .FALSE., &
    702705                mg_switch_to_pe0 = .FALSE., &
    703                 monotonic_adjustment = .FALSE.
     706                monotonic_adjustment = .FALSE., virtual_flight = .FALSE.
    704707    LOGICAL ::  nest_bound_l = .FALSE. !< nested boundary on left side
    705708    LOGICAL ::  nest_bound_n = .FALSE. !< nested boundary on north side
  • palm/trunk/SOURCE/netcdf_interface_mod.f90

    r1851 r1957  
    1919! Current revisions:
    2020! ------------------
    21 !
     21! flight module added
    2222!
    2323! Former revisions:
     
    139139 MODULE netcdf_interface
    140140
    141     USE control_parameters, ONLY: max_masks
     141    USE control_parameters, ONLY: max_masks, fl_max, var_fl_max
    142142    USE kinds
    143143#if defined( __netcdf )
     
    238238    CHARACTER(LEN=40) ::  netcdf_data_format_string
    239239
    240     INTEGER(iwp) ::  id_dim_prtnum, id_dim_time_pr, id_dim_time_prt, &
     240    INTEGER(iwp) ::  id_dim_prtnum, id_dim_time_fl, id_dim_time_pr, id_dim_time_prt, &
    241241                     id_dim_time_pts, id_dim_time_sp, id_dim_time_ts, id_dim_x_sp, &
    242                      id_dim_y_sp, id_dim_zu_sp, id_dim_zw_sp, id_set_pr, &
    243                      id_set_prt, id_set_pts, id_set_sp, id_set_ts, id_var_prtnum, &
    244                      id_var_rnop_prt, id_var_time_pr, id_var_time_prt, &
     242                     id_dim_y_sp, id_dim_zu_sp, id_dim_zw_sp, id_set_fl, id_set_pr, &
     243                     id_set_prt, id_set_pts, id_set_sp, id_set_ts, id_var_time_fl, &
     244                     id_var_prtnum, id_var_rnop_prt, id_var_time_pr, id_var_time_prt, &
    245245                     id_var_time_pts, id_var_time_sp, id_var_time_ts, id_var_x_sp, &
    246246                     id_var_y_sp, id_var_zu_sp, id_var_zw_sp, nc_stat
     247
    247248
    248249    INTEGER(iwp), DIMENSION(0:1) ::  id_dim_time_xy, id_dim_time_xz, &
     
    271272                                        !< compression
    272273
     274    INTEGER(iwp)                 ::  dofl_time_count
    273275    INTEGER(iwp), DIMENSION(10)  ::  id_var_dospx, id_var_dospy
    274276    INTEGER(iwp), DIMENSION(20)  ::  id_var_prt
    275277    INTEGER(iwp), DIMENSION(11)  ::  nc_precision
    276278    INTEGER(iwp), DIMENSION(dopr_norm_num) ::  id_var_norm_dopr
     279   
     280    INTEGER(iwp), DIMENSION(fl_max) ::  id_dim_x_fl, id_dim_y_fl, id_dim_z_fl
     281    INTEGER(iwp), DIMENSION(fl_max) ::  id_var_x_fl, id_var_y_fl, id_var_z_fl
     282   
     283    CHARACTER (LEN=20), DIMENSION(fl_max*var_fl_max) :: dofl_label
     284    CHARACTER (LEN=20), DIMENSION(fl_max*var_fl_max) :: dofl_unit
     285    CHARACTER (LEN=20), DIMENSION(fl_max) :: dofl_dim_label_x
     286    CHARACTER (LEN=20), DIMENSION(fl_max) :: dofl_dim_label_y
     287    CHARACTER (LEN=20), DIMENSION(fl_max) :: dofl_dim_label_z
     288
     289    INTEGER(iwp), DIMENSION(fl_max*var_fl_max) :: id_var_dofl   
    277290
    278291    INTEGER(iwp), DIMENSION(dopts_num,0:10) ::  id_var_dopts
     
    300313
    301314
    302     PUBLIC  domask_unit, dopr_unit, dopts_num, dots_label, dots_max, dots_num, &
    303             dots_rad, dots_soil, dots_unit, do2d_unit, do3d_unit, id_set_mask, &
    304             id_set_pr, id_set_prt, id_set_pts, id_set_sp, id_set_ts,           &
    305             id_set_xy, id_set_xz, id_set_yz, id_set_3d, id_var_domask,         &
    306             id_var_dopr, id_var_dopts, id_var_dospx, id_var_dospy,             &
    307             id_var_dots, id_var_do2d, id_var_do3d, id_var_norm_dopr,           &
    308             id_var_time_mask, id_var_time_pr, id_var_time_pts, id_var_time_sp, &
    309             id_var_time_ts, id_var_time_xy, id_var_time_xz, id_var_time_yz,    &
    310             id_var_time_3d, nc_stat, netcdf_data_format,                       &
    311             netcdf_data_format_string, netcdf_deflate, netcdf_precision,       &
    312             output_for_t0
    313 
     315    PUBLIC  dofl_dim_label_x, dofl_dim_label_y, dofl_dim_label_z, dofl_label,  &
     316            dofl_time_count, dofl_unit, domask_unit, dopr_unit, dopts_num,     &
     317            dots_label, dots_max, dots_num, dots_rad, dots_soil, dots_unit,    &
     318            do2d_unit, do3d_unit, id_set_fl, id_set_mask, id_set_pr,           &
     319            id_set_prt, id_set_pts, id_set_sp, id_set_ts, id_set_xy, id_set_xz,&
     320            id_set_yz, id_set_3d, id_var_domask, id_var_dofl, id_var_dopr,     &
     321            id_var_dopts, id_var_dospx, id_var_dospy, id_var_dots, id_var_do2d,&
     322            id_var_do3d, id_var_norm_dopr, id_var_time_fl, id_var_time_mask,   &
     323            id_var_time_pr, id_var_time_pts, id_var_time_sp, id_var_time_ts,   &
     324            id_var_time_xy, id_var_time_xz, id_var_time_yz, id_var_time_3d,    &
     325            id_var_x_fl, id_var_y_fl, id_var_z_fl,  nc_stat,                   &
     326            netcdf_data_format, netcdf_data_format_string, netcdf_deflate,     &
     327            netcdf_precision, output_for_t0
     328           
     329           
    314330    SAVE
    315331
     
    366382               simulated_time_at_begin, skip_time_data_output_av,              &
    367383               skip_time_do2d_xy, skip_time_do2d_xz, skip_time_do2d_yz,        &
    368                skip_time_do3d, topography
     384               skip_time_do3d, topography, num_leg, num_var_fl
    369385
    370386    USE grid_variables,                                                        &
     
    433449    INTEGER(iwp) ::  ntime_count                             !< number of time levels found in file
    434450    INTEGER(iwp) ::  nz_old                                  !<
     451    INTEGER(iwp) ::  l                                       !<
    435452
    436453    INTEGER(iwp), SAVE ::  oldmode                           !<
     
    510527             CASE ( 'masks' )
    511528                nc_precision(11) = j
     529             CASE ( 'fl' )
     530                nc_precision(9) = j
    512531             CASE ( 'all' )
    513532                nc_precision    = j
     
    48874906          CALL message( 'netcdf_define_header', 'PA0269', 0, 0, 0, 6, 0 )
    48884907
    4889 
     4908!
     4909!--    Flight data
     4910       CASE ( 'fl_new' )
     4911!
     4912!--       Define some global attributes of the dataset
     4913          nc_stat = NF90_PUT_ATT( id_set_fl, NF90_GLOBAL, 'title',             &
     4914                                  TRIM( run_description_header ) )
     4915          CALL netcdf_handle_error( 'netcdf_define_header', 249 )
     4916
     4917!
     4918!--       Define time and location coordinates for flight space-time series
     4919!--       (unlimited dimension)
     4920!--       Error number must still be set appropriately.
     4921          CALL netcdf_create_dim( id_set_fl, 'time', NF90_UNLIMITED,           &
     4922                                  id_dim_time_fl, 250 )
     4923          CALL netcdf_create_var( id_set_fl, (/ id_dim_time_fl /), 'time',     &
     4924                                  NF90_DOUBLE, id_var_time_fl, 'seconds', '',  &
     4925                                  251, 252, 000 )
     4926
     4927          DO l = 1, num_leg
     4928             CALL netcdf_create_dim( id_set_fl, dofl_dim_label_x(l),           &
     4929                                     NF90_UNLIMITED, id_dim_x_fl(l), 250 )
     4930             CALL netcdf_create_dim( id_set_fl, dofl_dim_label_y(l),           &
     4931                                     NF90_UNLIMITED, id_dim_y_fl(l), 250 )
     4932             CALL netcdf_create_dim( id_set_fl, dofl_dim_label_z(l),           &
     4933                                     NF90_UNLIMITED, id_dim_z_fl(l), 250 )
     4934
     4935             CALL netcdf_create_var( id_set_fl, (/ id_dim_x_fl(l) /),          &
     4936                                     dofl_dim_label_x(l), NF90_DOUBLE,         &
     4937                                     id_var_x_fl(l), 'm', '', 251, 252, 000 )
     4938             CALL netcdf_create_var( id_set_fl, (/ id_dim_y_fl(l) /),          &
     4939                                     dofl_dim_label_y(l), NF90_DOUBLE,         &
     4940                                     id_var_y_fl(l), 'm', '', 251, 252, 000 )
     4941             CALL netcdf_create_var( id_set_fl, (/ id_dim_z_fl(l) /),          &
     4942                                     dofl_dim_label_z(l), NF90_DOUBLE,         &
     4943                                     id_var_z_fl(l), 'm', '', 251, 252, 000 )
     4944          ENDDO
     4945!
     4946!--       Define the variables
     4947          var_list = ';'
     4948          k = 1
     4949          DO  l = 1, num_leg
     4950             DO i = 1, num_var_fl
     4951
     4952                CALL netcdf_create_var( id_set_fl, (/ id_dim_time_fl /),       &
     4953                                        dofl_label(k), nc_precision(9),        &
     4954                                        id_var_dofl(k),                        &
     4955                                        TRIM( dofl_unit(k) ),                  &
     4956                                        TRIM( dofl_label(k) ), 253, 254, 255 )
     4957
     4958                k = k + 1
     4959               
     4960             ENDDO
     4961
     4962          ENDDO
     4963
     4964!
     4965!--       Write the list of variables as global attribute (this is used by
     4966!--       restart runs)
     4967          nc_stat = NF90_PUT_ATT( id_set_fl, NF90_GLOBAL, 'VAR_LIST', var_list )
     4968          CALL netcdf_handle_error( 'netcdf_define_header', 258 )
     4969
     4970!
     4971!--       Leave netCDF define mode
     4972          nc_stat = NF90_ENDDEF( id_set_fl )
     4973          CALL netcdf_handle_error( 'netcdf_define_header', 259 )
     4974
     4975
     4976       CASE ( 'fl_ext' )
     4977
     4978!
     4979!--       Get the list of variables and compare with the actual run.
     4980!--       First var_list_old has to be reset, since GET_ATT does not assign
     4981!--       trailing blanks.
     4982          var_list_old = ' '
     4983          nc_stat = NF90_GET_ATT( id_set_fl, NF90_GLOBAL, 'VAR_LIST',          &
     4984                                  var_list_old )
     4985          CALL netcdf_handle_error( 'netcdf_define_header', 260 )
     4986
     4987          var_list = ';'
     4988          i = 1
     4989          DO  i = 1, num_leg * num_var_fl
     4990
     4991             var_list = TRIM( var_list ) // TRIM( dofl_label(i) ) // ';'
     4992
     4993          ENDDO
     4994
     4995          IF ( TRIM( var_list ) /= TRIM( var_list_old ) )  THEN
     4996             message_string = 'netCDF file for flight time series ' //         &
     4997                              'from previous run found,' //                    &
     4998                              '& but this file cannot be extended due to' //   &
     4999                              ' variable mismatch.' //                         &
     5000                              '&New file is created instead.'
     5001             CALL message( 'define_netcdf_header', 'PA0257', 0, 1, 0, 6, 0 )
     5002             extend = .FALSE.
     5003             RETURN
     5004          ENDIF
     5005
     5006!
     5007!--       Get the id of the time coordinate (unlimited coordinate) and its
     5008!--       last index on the file. The next time level is dofl_time_count+1.
     5009!--       The current time must be larger than the last output time
     5010!--       on the file.
     5011          nc_stat = NF90_INQ_VARID( id_set_fl, 'time', id_var_time_fl )
     5012          CALL netcdf_handle_error( 'netcdf_define_header', 261 )
     5013
     5014          nc_stat = NF90_INQUIRE_VARIABLE( id_set_fl, id_var_time_fl, &
     5015                                           dimids = id_dim_time_old )
     5016          CALL netcdf_handle_error( 'netcdf_define_header', 262 )
     5017          id_dim_time_fl = id_dim_time_old(1)
     5018
     5019          nc_stat = NF90_INQUIRE_DIMENSION( id_set_fl, id_dim_time_fl, &
     5020                                            len = dofl_time_count )
     5021          CALL netcdf_handle_error( 'netcdf_define_header', 263 )
     5022
     5023          nc_stat = NF90_GET_VAR( id_set_fl, id_var_time_fl,        &
     5024                                  last_time_coordinate,             &
     5025                                  start = (/ dofl_time_count /), &
     5026                                  count = (/ 1 /) )
     5027          CALL netcdf_handle_error( 'netcdf_define_header', 264 )
     5028
     5029          IF ( last_time_coordinate(1) >= simulated_time )  THEN
     5030             message_string = 'netCDF file for flight-time series ' //      &
     5031                              'from previous run found,' //                 &
     5032                              '&but this file cannot be extended becaus' // &
     5033                              'e the current output time' //                &
     5034                              '&is less or equal than the last output t' // &
     5035                              'ime on this file.' //                        &
     5036                              '&New file is created instead.'
     5037             CALL message( 'define_netcdf_header', 'PA0258', 0, 1, 0, 6, 0 )
     5038             dofl_time_count = 0
     5039             extend = .FALSE.
     5040             RETURN
     5041          ENDIF
     5042
     5043!
     5044!--       Dataset seems to be extendable.
     5045!--       Now get the remaining dimension and variable ids
     5046          DO l = 1, num_leg
     5047             nc_stat = NF90_INQ_VARID( id_set_fl, dofl_dim_label_x(l),         &
     5048                                       id_var_x_fl(l) )
     5049             CALL netcdf_handle_error( 'netcdf_define_header', 265 )
     5050             nc_stat = NF90_INQ_VARID( id_set_fl, dofl_dim_label_y(l),         &
     5051                                       id_var_y_fl(l) )
     5052             CALL netcdf_handle_error( 'netcdf_define_header', 265 )
     5053             nc_stat = NF90_INQ_VARID( id_set_fl, dofl_dim_label_z(l),         &
     5054                                       id_var_z_fl(l) )
     5055             CALL netcdf_handle_error( 'netcdf_define_header', 265 )
     5056
     5057          ENDDO
     5058
     5059
     5060          DO  i = 1, num_leg * num_var_fl
     5061 
     5062            nc_stat = NF90_INQ_VARID( id_set_fl, dofl_label(i), &
     5063                                       id_var_dofl(i) )
     5064            CALL netcdf_handle_error( 'netcdf_define_header', 265 )
     5065
     5066          ENDDO
     5067
     5068!
     5069!--       Update the title attribute on file
     5070!--       In order to avoid 'data mode' errors if updated attributes are larger
     5071!--       than their original size, NF90_PUT_ATT is called in 'define mode'
     5072!--       enclosed by NF90_REDEF and NF90_ENDDEF calls. This implies a possible
     5073!--       performance loss due to data copying; an alternative strategy would be
     5074!--       to ensure equal attribute size in a job chain. Maybe revise later.
     5075          nc_stat = NF90_REDEF( id_set_fl )
     5076          CALL netcdf_handle_error( 'netcdf_define_header', 439 )
     5077          nc_stat = NF90_PUT_ATT( id_set_fl, NF90_GLOBAL, 'title',             &
     5078                                  TRIM( run_description_header ) )
     5079          CALL netcdf_handle_error( 'netcdf_define_header', 267 )
     5080          nc_stat = NF90_ENDDEF( id_set_fl )
     5081          CALL netcdf_handle_error( 'netcdf_define_header', 440 )
     5082          message_string = 'netCDF file for flight-time series ' //            &
     5083                           'from previous run found.' //                       &
     5084                           '&This file will be extended.'
     5085          CALL message( 'define_netcdf_header', 'PA0259', 0, 0, 0, 6, 0 )
     5086
     5087         
    48905088       CASE DEFAULT
    48915089
  • palm/trunk/SOURCE/parin.f90

    r1956 r1957  
    1919! Current revisions:
    2020! -----------------
    21 !
     21! flight module added
    2222!
    2323! Former revisions:
     
    3030! initialized for nest domains. Prognostic variables are later initialized by
    3131! interpolation from the parent domain.
    32 ! 
     32!
    3333! 1917 2016-05-27 14:28:12Z witha
    3434! Initial version of purely vertical nesting introduced.
     
    228228    USE dvrp_variables,                                                        &
    229229        ONLY:  local_dvrserver_running
     230
     231    USE flight_mod,                                                            &
     232        ONLY:  flight_parin
    230233
    231234    USE grid_variables,                                                        &
     
    481484          ENDIF
    482485
     486           
    483487!
    484488!--       Check validity of lateral boundary conditions. This has to be done
     
    555559!--       required
    556560          CALL wtm_parin
     561!
     562!--       Check if virtual flights should be carried out and read &flight_part
     563!--       if required
     564          CALL flight_parin
    557565
    558566!
  • palm/trunk/SOURCE/read_var_list.f90

    r1852 r1957  
    1919! Current revisions:
    2020! ------------------
    21 !
     21! flight module added
    2222!
    2323! Former revisions:
     
    176176    USE control_parameters
    177177
     178    USE flight_mod,                                                            &
     179        ONLY:  flight_read_restart_data
     180   
    178181    USE grid_variables,                                                        &
    179182        ONLY:  dx, dy
     
    507510          CASE ( 'nudging' )
    508511             READ ( 13 )  nudging
     512          CASE ( 'num_leg' )
     513             READ ( 13 )  num_leg
    509514          CASE ( 'nx' )
    510515             READ ( 13 )  nx
     
    725730          CASE ( 'vg_vertical_gradient_level_ind' )
    726731             READ ( 13 )  vg_vertical_gradient_level_ind
     732          CASE ( 'virtual_flight' )
     733             READ ( 13 ) virtual_flight 
    727734          CASE ( 'volume_flow_area' )
    728735             READ ( 13 )  volume_flow_area
     
    759766
    760767    ENDDO
     768   
     769    IF ( virtual_flight )  CALL flight_read_restart_data
    761770
    762771
     
    988997 SUBROUTINE skip_var_list
    989998
    990 
     999    USE control_parameters,                                                    &
     1000        ONLY:  virtual_flight
     1001 
     1002    USE flight_mod,                                                            &
     1003        ONLY:  flight_skip_var_list
     1004 
    9911005    IMPLICIT NONE
    9921006
     
    10071021
    10081022    ENDDO
    1009 
     1023!
     1024!-- In case of virtual flights, skip also variables related to
     1025!-- this module.
     1026    IF ( virtual_flight )  CALL flight_skip_var_list
     1027   
    10101028
    10111029 END SUBROUTINE skip_var_list
  • palm/trunk/SOURCE/time_integration.f90

    r1933 r1957  
    1919! Current revisions:
    2020! ------------------
    21 !
     21! flight module added
    2222!
    2323! Former revisions:
     
    260260               time_run_control, time_since_reference_point,                   &
    261261               turbulent_inflow, use_initial_profile_as_reference,             &
    262                use_single_reference_value, u_gtrans, v_gtrans, ws_scheme_mom, &
    263                ws_scheme_sca
     262               use_single_reference_value, u_gtrans, v_gtrans, virtual_flight, &
     263               ws_scheme_mom, ws_scheme_sca
    264264
    265265    USE cpulog,                                                                &
    266266        ONLY:  cpu_log, log_point, log_point_s
     267
     268    USE flight_mod,                                                            &
     269        ONLY:  flight_measurement
     270
    267271
    268272    USE indices,                                                               &
     
    912916       time_since_reference_point = simulated_time - coupling_start_time
    913917
     918
     919
    914920       IF ( simulated_time >= skip_time_data_output_av )  THEN
    915921          time_do_av         = time_do_av       + dt_3d
     
    10311037                                 MAX( dt_averaging_input_pr, dt_3d ) )
    10321038          ENDIF
     1039       ENDIF
     1040
     1041!
     1042!--    Call flight module and output data
     1043       IF ( virtual_flight )  THEN
     1044          CALL flight_measurement
     1045          CALL data_output_flight
    10331046       ENDIF
    10341047
  • palm/trunk/SOURCE/write_var_list.f90

    r1852 r1957  
    1919! Current revisions:
    2020! -----------------
    21 !
     21! flight module added
    2222!
    2323! Former revisions:
     
    154154
    155155    USE control_parameters
     156   
     157    USE flight_mod,                                                            &
     158        ONLY:  flight_write_restart_data
    156159   
    157160    USE grid_variables,                                                        &
     
    418421    WRITE ( 14 )  'nudging                       '
    419422    WRITE ( 14 )  nudging
     423    WRITE ( 14 )  'num_leg                       '
     424    WRITE ( 14 )  num_leg
    420425    WRITE ( 14 )  'nx                            '
    421426    WRITE ( 14 )  nx
     
    632637    WRITE ( 14 )  'vg_vertical_gradient_level_ind'
    633638    WRITE ( 14 )  vg_vertical_gradient_level_ind
     639    WRITE ( 14 )  'virtual_flight                '
     640    WRITE ( 14 )  virtual_flight
    634641    WRITE ( 14 )  'volume_flow_area              '
    635642    WRITE ( 14 )  volume_flow_area
     
    653660    WRITE ( 14 )  zeta_min
    654661    WRITE ( 14 )  'z0h_factor                    '
    655     WRITE ( 14 )  z0h_factor
    656 
     662    WRITE ( 14 )  z0h_factor 
    657663!
    658664!-- Set the end-of-file mark
    659665    WRITE ( 14 )  '*** end ***                   '
    660 
    661 
     666!
     667!-- If required, write restart data for virtual measurements.
     668    IF ( virtual_flight )  CALL flight_write_restart_data 
     669   
     670   
    662671 END SUBROUTINE write_var_list
Note: See TracChangeset for help on using the changeset viewer.