Changeset 1496


Ignore:
Timestamp:
Dec 2, 2014 5:25:50 PM (7 years ago)
Author:
maronga
Message:

added beta version of a land surface model and a simple radiation model for clear sky conditions

Location:
palm/trunk/SOURCE
Files:
3 added
13 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/Makefile

    r1485 r1496  
    2020# Current revisions:
    2121# ------------------
    22 #
     22# Added land surface model and radiation model files: land_surface_model,
     23# radiation_model, user_init_land_surface
    2324#
    2425# Former revisions:
     
    206207        init_grid.f90 init_masks.f90 init_ocean.f90 \
    207208        init_pegrid.f90 init_pt_anomaly.f90 init_rankine.f90 init_slope.f90 \
    208         interaction_droplets_ptq.f90 local_flush.f90 local_getenv.f90 \
    209         local_stop.f90 local_system.f90 local_tremain.f90 \
     209        interaction_droplets_ptq.f90 land_surface_model.f90 local_flush.f90 \
     210        local_getenv.f90 local_stop.f90 local_system.f90 local_tremain.f90 \
    210211        local_tremain_ini.f90 lpm.f90 lpm_advec.f90 lpm_boundary_conds.f90 \
    211212        lpm_calc_liquid_water_content.f90 lpm_collision_kernels.f90 \
     
    221222        package_parin.f90 palm.f90 parin.f90 plant_canopy_model.f90 poisfft.f90 \
    222223        poismg.f90 prandtl_fluxes.f90 pres.f90 print_1d.f90 production_e.f90 \
    223         prognostic_equations.f90 progress_bar.f90 random_function.f90 \
    224         random_gauss.f90 random_generator_parallel.f90 read_3d_binary.f90 \
    225         read_var_list.f90 run_control.f90 \
     224        prognostic_equations.f90 progress_bar.f90 radiation_model.f90 \
     225        random_function.f90 random_gauss.f90 random_generator_parallel.f90 \
     226        read_3d_binary.f90 read_var_list.f90 run_control.f90 \
    226227        set_slicer_attributes_dvrp.f90 singleton.f90 sor.f90 \
    227228        subsidence.f90 sum_up_3d_data.f90 \
     
    237238        user_dvrp_coltab.f90 user_header.f90 user_init.f90 \
    238239        user_init_3d_model.f90 user_init_grid.f90 \
     240        user_init_land_surface.f90 \
    239241        user_init_plant_canopy.f90 user_last_actions.f90 user_lpm_advec.f90 \
    240242        user_lpm_init.f90 user_lpm_set_attributes.f90 user_module.f90 \
     
    292294check_for_restart.o: modules.o mod_kinds.o
    293295check_open.o: modules.o mod_kinds.o mod_particle_attributes.o
    294 check_parameters.o: modules.o mod_kinds.o subsidence.o plant_canopy_model.o
     296check_parameters.o: modules.o mod_kinds.o subsidence.o land_surface_model.o\
     297        plant_canopy_model.o
    295298close_file.o: modules.o mod_kinds.o
    296299compute_vpt.o: modules.o mod_kinds.o
     
    327330init_1d_model.o: modules.o mod_kinds.o
    328331init_3d_model.o: modules.o cpulog.o mod_kinds.o random_function.o advec_ws.o \
    329         ls_forcing.o lpm_init.o plant_canopy_model.o random_generator_parallel.o
     332        land_surface_model.o ls_forcing.o lpm_init.o plant_canopy_model.o \
     333        radiation_model.o random_generator_parallel.o
    330334init_advec.o: modules.o mod_kinds.o
    331335init_cloud_physics.o: modules.o mod_kinds.o
     
    340344init_slope.o: modules.o mod_kinds.o
    341345interaction_droplets_ptq.o: modules.o mod_kinds.o
     346land_surface_model.o: modules.o mod_kinds.o radiation_model.o
    342347local_flush.o: mod_kinds.o
    343348local_getenv.o: modules.o mod_kinds.o
     
    383388netcdf.o: modules.o mod_kinds.o
    384389nudging.o: modules.o cpulog.o mod_kinds.o
    385 package_parin.o: modules.o mod_kinds.o plant_canopy_model.o
     390package_parin.o: modules.o mod_kinds.o land_surface_model.o plant_canopy_model.o \
     391                 radiation_model.o
    386392palm.o: modules.o cpulog.o ls_forcing.o mod_kinds.o nudging.o
    387393parin.o: modules.o cpulog.o mod_kinds.o progress_bar.o
     
    400406        nudging.o plant_canopy_model.o production_e.o subsidence.o user_actions.o
    401407progress_bar.o: modules.o mod_kinds.o
     408radiation_model.o : modules.o
    402409random_function.o: mod_kinds.o
    403410random_gauss.o: mod_kinds.o random_function.o random_generator_parallel.o
     
    415422temperton_fft.o: modules.o mod_kinds.o
    416423time_integration.o: modules.o advec_ws.o buoyancy.o calc_mean_profile.o \
    417         cpulog.o interaction_droplets_ptq.o ls_forcing.o mod_kinds.o \
    418         nudging.o production_e.o prognostic_equations.o progress_bar.o user_actions.o
     424        cpulog.o interaction_droplets_ptq.o land_surface_model.o \
     425        ls_forcing.o mod_kinds.o nudging.o production_e.o \
     426        prognostic_equations.o progress_bar.o radiation_model.o \
     427        user_actions.o
    419428time_to_string.o: mod_kinds.o
    420429timestep.o: modules.o cpulog.o mod_kinds.o
     
    438447user_init_3d_model.o: modules.o mod_kinds.o user_module.o
    439448user_init_grid.o: modules.o mod_kinds.o user_module.o
     449user_init_land_surface.o: modules.o mod_kinds.o user_module.o land_surface_model.o
    440450user_init_plant_canopy.o: modules.o mod_kinds.o user_module.o plant_canopy_model.o
    441451user_last_actions.o: modules.o mod_kinds.o user_module.o
  • palm/trunk/SOURCE/check_parameters.f90

    r1485 r1496  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Added checks for the land surface model
    2323!
    2424! Former revisions:
     
    251251    USE grid_variables
    252252    USE indices
     253    USE land_surface_model_mod
    253254    USE kinds
    254255    USE model_1d
     
    258259    USE plant_canopy_model_mod
    259260    USE profil_parameter
     261    USE radiation_model_mod
    260262    USE spectrum
    261263    USE statistics
     
    942944
    943945    ENDIF
     946
     947
     948    IF ( land_surface )  THEN
     949 
     950       IF ( ANY(soil_temperature == 9999999.9_wp) )  THEN
     951             message_string = '&lsm_par list requires setting'//               &
     952                              'of soil_temperature(0:3)'//                     &
     953                              '/= 9999999.9'
     954             CALL message( 'check_parameters', 'PA0398', 1, 2, 0, 6, 0 )
     955       ENDIF   
     956
     957!      Dirichlet boundary conditions are allowed at the moment for testing
     958!      purposes
     959!        IF ( bc_pt_b == 'dirichlet' .OR. bc_q_b == 'dirichlet' )  THEN
     960!           message_string = 'lsm requires setting of'//                         &
     961!                            'bc_pt_b = "neumann" and '//                        &
     962!                            'bc_q_b  = "neumann"'
     963!           CALL message( 'check_parameters', 'PA0399', 1, 2, 0, 6, 0 )
     964!        ENDIF
     965
     966       IF ( .NOT. prandtl_layer )  THEN
     967          message_string = 'lsm requires '//                                   &
     968                           'prandtl_layer = .T.'
     969          CALL message( 'check_parameters', 'PA0400', 1, 2, 0, 6, 0 )
     970       ENDIF
     971
     972       IF ( veg_type == 0 )  THEN
     973          IF ( SUM(root_fraction) /= 1.0_wp)  THEN
     974             message_string = 'veg_type = 0 (user_defined)'//                  &
     975                              'requires setting of root_fraction(0:3)'//       &
     976                              '/= 9999999.9 and SUM(root_fraction) = 1'
     977             CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     978          ENDIF
     979       ENDIF
     980
     981       IF ( .NOT. radiation )  THEN
     982          message_string = 'lsm requires '//                                   &
     983                           'radiation = .T.'
     984          CALL message( 'check_parameters', 'PA0402', 1, 2, 0, 6, 0 )
     985       ENDIF
     986
     987
     988    END IF
     989
    944990
    945991    IF ( .NOT. ( loop_optimization == 'cache'  .OR.                            &
     
    15991645    IF ( surface_heatflux == 9999999.9_wp  )  THEN
    16001646       constant_heatflux = .FALSE.
    1601        IF ( large_scale_forcing )  THEN
     1647       IF ( large_scale_forcing  .OR.  land_surface )  THEN
    16021648          IF ( ibc_pt_b == 0 )  THEN
    16031649             constant_heatflux = .FALSE.
    16041650          ELSEIF ( ibc_pt_b == 1 )  THEN
    16051651             constant_heatflux = .TRUE.
    1606              IF ( TRIM( initializing_actions ) /= 'read_restart_data' )  THEN
     1652             IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND.    &
     1653                  .NOT. land_surface )  THEN
    16071654                surface_heatflux = shf_surf(1)
     1655             ELSE
     1656                surface_heatflux = 0.0_wp
    16081657             ENDIF
    16091658          ENDIF
     
    16111660    ELSE
    16121661        constant_heatflux = .TRUE.
    1613         IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND. &
    1614                large_scale_forcing ) THEN
     1662        IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND.         &
     1663             .NOT. land_surface ) THEN
    16151664           surface_heatflux = shf_surf(1)
    16161665        ENDIF
     
    16211670    IF ( neutral )  THEN
    16221671
    1623        IF ( surface_heatflux /= 0.0_wp  .AND.  surface_heatflux /= 9999999.9_wp ) &
     1672       IF ( surface_heatflux /= 0.0_wp  .AND. surface_heatflux /= 9999999.9_wp ) &
    16241673       THEN
    16251674          message_string = 'heatflux must not be set for pure neutral flow'
  • palm/trunk/SOURCE/header.f90

    r1485 r1496  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Renamed: "radiation -> "cloud_top_radiation"
    2323!
    2424! Former revisions:
     
    16001600    ELSEIF ( humidity  .AND.  cloud_physics )  THEN
    16011601       WRITE ( io, 432 )
    1602        IF ( radiation )  WRITE ( io, 132 )
     1602       IF ( cloud_top_radiation )  WRITE ( io, 132 )
    16031603       IF ( icloud_scheme == 1 )  THEN
    16041604          IF ( precipitation )  WRITE ( io, 133 )
  • palm/trunk/SOURCE/init_3d_model.f90

    r1485 r1496  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! Added initialization of the land surface and radiation schemes
    2323!
    2424! Former revisions:
     
    210210   
    211211    USE kinds
    212    
     212
     213    USE land_surface_model_mod,                                                &
     214        ONLY:  init_lsm, land_surface
     215 
    213216    USE ls_forcing_mod
    214217   
     
    225228    USE plant_canopy_model_mod,                                                &
    226229        ONLY:  init_plant_canopy, plant_canopy
     230
     231    USE radiation_model_mod,                                                   &
     232        ONLY:  init_radiation, radiation
    227233   
    228234    USE random_function_mod
     
    15841590    IF ( particle_advection )  CALL lpm_init
    15851591
     1592
     1593!
     1594!-- If required, initialize radiation model
     1595    IF ( radiation )  THEN
     1596       CALL init_radiation
     1597    ENDIF
     1598
     1599!
     1600!-- If required, initialize quantities needed for the LSM
     1601    IF ( land_surface )  THEN
     1602       CALL init_lsm
     1603    ENDIF
     1604
    15861605!
    15871606!-- Initialize the ws-scheme.   
  • palm/trunk/SOURCE/modules.f90

    r1485 r1496  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! Renamed "radiation" -> "cloud_top_radiation"
    2323!
    2424! Former revisions:
     
    629629                call_psolver_at_all_substeps = .TRUE., &
    630630                cloud_droplets = .FALSE., cloud_physics = .FALSE., &
     631                cloud_top_radiation = .FALSE., &
    631632                conserve_volume_flow = .FALSE., constant_diffusion = .FALSE., &
    632633                constant_heatflux = .TRUE., constant_top_heatflux = .TRUE., &
     
    657658                prandtl_layer = .TRUE., &
    658659                precipitation = .FALSE., &
    659                 radiation = .FALSE., random_heatflux = .FALSE., &
     660                random_heatflux = .FALSE., &
    660661                run_control_header = .FALSE., run_coupled = .TRUE., &
    661662                scalar_rayleigh_damping = .TRUE., sloping_surface = .FALSE., &
     
    699700                 dt_do2d_xy = 9999999.9_wp, dt_do2d_xz = 9999999.9_wp, &
    700701                 dt_do2d_yz = 9999999.9_wp, dt_do3d = 9999999.9_wp, dt_dvrp = 9999999.9_wp, &
    701                  dt_max = 20.0_wp, dt_micro = -1.0_wp, dt_restart = 9999999.9_wp, &
     702                 dt_max = 20.0_wp, dt_micro = -1.0_wp, &
     703                 dt_restart = 9999999.9_wp, &
    702704                 dt_run_control = 60.0_wp, dt_3d = -1.0_wp, dz = -1.0_wp, &
    703705                 dz_max = 9999999.9_wp, dz_stretch_factor = 1.08_wp, &
  • palm/trunk/SOURCE/package_parin.f90

    r1485 r1496  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Added support for the land surface model and radiation scheme
    2323!
    2424! Former revisions:
     
    7979    USE control_parameters,                                                    &
    8080        ONLY:  averaging_interval_sp, dt_data_output, dt_dopts, dt_dosp,       &
    81                dt_dvrp, particle_maximum_age, skip_time_dosp, threshold
     81               dt_dvrp, particle_maximum_age, skip_time_dosp,                  &
     82               threshold
    8283
    8384    USE dvrp_variables,                                                        &
     
    9495               vc_alpha, vc_gradient_normals, vc_mode, vc_size_x, vc_size_y,   &
    9596               vc_size_z
     97
     98    USE land_surface_model_mod,                                                &
     99        ONLY: alpha_VanGenuchten, C_skin, canopy_resistance_coefficient,       &
     100              conserve_water_content, f_shortwave_incoming,                    &
     101              hydraulic_conductivity, lambda_skin_stable, lambda_skin_unstable,&
     102              leaf_area_index, land_surface, l_VanGenuchten,                   &
     103              min_canopy_resistance, field_capacity, residual_moisture,        &
     104              saturation_moisture, wilting_point, n_VanGenuchten,              &
     105              root_fraction, soil_level, soil_moisture, soil_temperature,      &
     106              soil_type, vegetation_coverage, veg_type
    96107
    97108    USE kinds
     
    118129               leaf_scalar_exch_coeff, leaf_surface_conc, pch_index,           &
    119130               plant_canopy
     131
     132    USE radiation_model_mod,                                                   &
     133        ONLY: albedo, day_init, dt_radiation, lambda, radiation,               &
     134              time_radiation, time_utc_init
     135               
    120136
    121137    USE spectrum,                                                              &
     
    151167                                  vc_gradient_normals, vc_mode, vc_size_x,     &
    152168                                  vc_size_y, vc_size_z
     169
     170    NAMELIST /lsm_par/            alpha_VanGenuchten, C_skin,                  &
     171                                  canopy_resistance_coefficient,               &
     172                                  conserve_water_content, f_shortwave_incoming,&
     173                                  hydraulic_conductivity, lambda_skin_stable,  &
     174                                  lambda_skin_unstable, leaf_area_index,       &
     175                                  l_VanGenuchten, min_canopy_resistance,       &
     176                                  field_capacity, residual_moisture,           &
     177                                  saturation_moisture, wilting_point,          &
     178                                  n_VanGenuchten, root_fraction, soil_level,   &
     179                                  soil_moisture, soil_temperature, soil_type,  &
     180                                  vegetation_coverage, veg_type
     181
     182
    153183
    154184    NAMELIST /particles_par/      alloc_factor, bc_par_b, bc_par_lr,           &
     
    174204                                  write_particle_statistics
    175205
     206    NAMELIST /radiation_par/      lambda, albedo, day_init, dt_radiation,      &
     207                                  time_utc_init
     208
    176209    NAMELIST /spectra_par/        averaging_interval_sp, comp_spectra_level,   &
    177210                                  data_output_sp, dt_dosp, plot_spectra_level, &
     
    265298#endif
    266299
     300!
     301!-- Try to find land surface model package
     302    REWIND ( 11 )
     303    line = ' '
     304    DO   WHILE ( INDEX( line, '&lsm_par' ) == 0 )
     305       READ ( 11, '(A)', END=50 )  line
     306    ENDDO
     307    BACKSPACE ( 11 )
     308
     309!
     310!-- Read user-defined namelist
     311    READ ( 11, lsm_par )
     312
     313!
     314!-- Set flag that indicates that the land surface model is switched on
     315    land_surface = .TRUE.
     316
     317 50 CONTINUE
     318
     319!
     320!-- Try to find radiation package
     321    REWIND ( 11 )
     322    line = ' '
     323    DO   WHILE ( INDEX( line, '&radiation_par' ) == 0 )
     324       READ ( 11, '(A)', END=51 )  line
     325    ENDDO
     326    BACKSPACE ( 11 )
     327
     328!
     329!-- Read user-defined namelist
     330    READ ( 11, radiation_par )
     331
     332!
     333!-- Set flag that indicates that the radiation scheme is switched on
     334    radiation = .TRUE.
     335
     336 51 CONTINUE
     337
     338
    267339 END SUBROUTINE package_parin
  • palm/trunk/SOURCE/parin.f90

    r1485 r1496  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Renamed: "radiation -> "cloud_top_radiation"
    2323!
    2424! Former revisions:
     
    174174               canyon_wall_south, cfl_factor,                                  &
    175175               cloud_droplets, cloud_physics, cloud_scheme,                    &
    176                conserve_volume_flow, conserve_volume_flow_mode,                &
    177                coupling_start_time, create_disturbances, cycle_mg,             &
    178                data_output, data_output_masks,                                 &
     176               cloud_top_radiation, conserve_volume_flow,                      &
     177               conserve_volume_flow_mode, coupling_start_time,                 &
     178               create_disturbances, cycle_mg, data_output, data_output_masks,  &
    179179               data_output_pr, data_output_2d_on_each_pe,                      &
    180180               disturbance_amplitude, disturbance_energy_limit,                &
     
    209209               pt_vertical_gradient_level, q_surface,                          &
    210210               q_surface_initial_change, q_vertical_gradient,                  &
    211                q_vertical_gradient_level, radiation, random_generator,         &
     211               q_vertical_gradient_level, random_generator,                    &
    212212               random_heatflux, rayleigh_damping_factor,                       &
    213213               rayleigh_damping_height, recycling_width, reference_state,      &
     
    278278             canyon_width_x, canyon_width_y, canyon_wall_left,                 &
    279279             canyon_wall_south, c_sedimentation, cfl_factor, cloud_droplets,   &
    280              cloud_physics, cloud_scheme, collective_wait,                     &
    281              conserve_volume_flow,                                             &
     280             cloud_physics, cloud_scheme, cloud_top_radiation,                 &
     281             collective_wait, conserve_volume_flow,                            &
    282282             conserve_volume_flow_mode, coupling_start_time,                   &
    283283             curvature_solution_effects, cycle_mg, damp_level_1d,              &
     
    292292             initializing_actions, km_constant,                                &
    293293             large_scale_forcing, large_scale_subsidence,                      &
    294              limiter_sedimentation, &
     294             limiter_sedimentation,                                            &
    295295             loop_optimization, masking_method, mg_cycles,                     &
    296296             mg_switch_to_pe0_level, mixing_length_1d, momentum_advec,         &
    297297             nc_const, netcdf_precision, neutral, ngsrb,                       &
    298298             nsor, nsor_ini, nudging, nx, ny, nz, ocean, omega, omega_sor,     &
    299              passive_scalar, phi, prandtl_layer, &
     299             passive_scalar, phi, prandtl_layer,                               &
    300300             prandtl_number, precipitation, psolver, pt_damping_factor,        &
    301301             pt_damping_width, pt_reference, pt_surface,                       &
     
    303303             pt_vertical_gradient_level, q_surface, q_surface_initial_change,  &
    304304             q_vertical_gradient, q_vertical_gradient_level,                   &
    305              radiation, random_generator, random_heatflux,                     &
     305             random_generator, random_heatflux,                                &
    306306             rayleigh_damping_factor, rayleigh_damping_height, recycling_width,&
    307307             reference_state, residual_limit,                                  &
  • palm/trunk/SOURCE/prandtl_fluxes.f90

    r1495 r1496  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Adapted for land surface model
    2323!
    2424! Former revisions:
     
    8989    USE kinds
    9090
     91    USE land_surface_model_mod,                                                &
     92        ONLY: land_surface
     93
    9194    IMPLICIT NONE
    9295
     
    112115!-- Compute theta*
    113116    IF ( constant_heatflux )  THEN
     117
    114118!
    115119!--    For a given heat flux in the Prandtl layer:
     
    131135!
    132136!--    For a given surface temperature:
    133 !--    (the Richardson number is still the one from the previous time step)
    134    
     137!--    (the Richardson number is still the one from the previous time step)
    135138       IF ( large_scale_forcing .AND. lsf_surf )  THEN
    136           pt(nzb_s_inner(j,i),:,:) = pt_surface
     139          !$OMP PARALLEL DO
     140          !$acc kernels loop
     141          DO  i = nxlg, nxrg
     142             DO  j = nysg, nyng
     143                k = nzb_s_inner(j,i)
     144                pt(k,j,i) = pt_surface
     145             ENDDO
     146          ENDDO
    137147       ENDIF
    138148
     
    185195
    186196           IF ( large_scale_forcing .AND. lsf_surf )  THEN
    187               q(nzb_s_inner(j,i),:,:) = q_surface
     197                !$OMP PARALLEL DO
     198                !$acc kernels loop
     199                 DO  i = nxlg, nxrg
     200                    DO  j = nysg, nyng
     201                       k = nzb_s_inner(j,i)
     202                       q(k,j,i) = q_surface
     203                    ENDDO
     204                 ENDDO
    188205           ENDIF
    189206
     
    462479!
    463480!-- Compute the vertical kinematic heat flux
    464     IF ( .NOT. constant_heatflux )  THEN
     481    IF ( .NOT. constant_heatflux .AND. .NOT. land_surface )  THEN
    465482       !$OMP PARALLEL DO
    466483       !$acc kernels loop independent
     
    475492!
    476493!-- Compute the vertical water/scalar flux
    477     IF ( .NOT. constant_waterflux .AND. ( humidity .OR. passive_scalar ) ) THEN
     494    IF ( .NOT. constant_waterflux .AND. ( humidity .OR. passive_scalar )       &
     495         .AND. .NOT. land_surface )  THEN
    478496       !$OMP PARALLEL DO
    479497       !$acc kernels loop independent
  • palm/trunk/SOURCE/prognostic_equations.f90

    r1485 r1496  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! Renamed "radiation" -> "cloud_top_radiation"
    2323!
    2424! Former revisions:
     
    169169    USE control_parameters,                                                    &
    170170        ONLY:  call_microphysics_at_all_substeps, cloud_physics,               &
    171                constant_diffusion, dp_external,                                &
     171               cloud_top_radiation, constant_diffusion, dp_external,       &
    172172               dp_level_ind_b, dp_smooth_factor, dpdxy, dt_3d, humidity,       &
    173173               icloud_scheme, inflow_l, intermediate_timestep_count,           &
     
    176176               outflow_s, passive_scalar, precipitation,                       &
    177177               prho_reference, prho_reference, prho_reference, pt_reference,   &
    178                pt_reference, pt_reference, radiation, scalar_advec,            &
    179                scalar_advec, simulated_time, sloping_surface, timestep_scheme, &
    180                tsc, use_subsidence_tendencies, use_upstream_for_tke,           &
    181                wall_heatflux,                                                  &
     178               pt_reference, pt_reference, scalar_advec, scalar_advec,         &
     179               simulated_time, sloping_surface,                                &
     180               timestep_scheme, tsc, use_subsidence_tendencies,                &
     181               use_upstream_for_tke, wall_heatflux,                            &
    182182               wall_nrflux, wall_qflux, wall_qflux, wall_qflux, wall_qrflux,   &
    183183               wall_salinityflux, ws_scheme_mom, ws_scheme_sca
     
    551551!--          If required compute heating/cooling due to long wave radiation
    552552!--          processes
    553              IF ( radiation )  THEN
     553             IF ( cloud_top_radiation )  THEN
    554554                CALL calc_radiation( i, j )
    555555             ENDIF
     
    12061206!
    12071207!--    If required compute heating/cooling due to long wave radiation processes
    1208        IF ( radiation )  THEN
     1208       IF ( cloud_top_radiation )  THEN
    12091209          CALL calc_radiation
    12101210       ENDIF
     
    20212021!
    20222022!--    If required compute heating/cooling due to long wave radiation processes
    2023        IF ( radiation )  THEN
     2023       IF ( cloud_top_radiation )  THEN
    20242024          CALL calc_radiation
    20252025       ENDIF
  • palm/trunk/SOURCE/read_var_list.f90

    r1485 r1496  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! Renamed "radiation" -> "cloud_top_radiation"
    2323!
    2424! Former revisions:
     
    542542          CASE ( 'q_vertical_gradient_level_ind' )
    543543             READ ( 13 )  q_vertical_gradient_level_ind
    544           CASE ( 'radiation' )
    545              READ ( 13 )  radiation
     544          CASE ( 'cloud_top_radiation' )
     545             READ ( 13 )  cloud_top_radiation
    546546          CASE ( 'random_generator' )
    547547             READ ( 13 )  random_generator
  • palm/trunk/SOURCE/swap_timelevel.f90

    r1375 r1496  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Added swapping of land surface model quantities
    2323!
    2424! Former revisions:
     
    6969        ONLY:  e, e_p, nr, nr_p, pt, pt_p, q, q_p, qr, qr_p, sa, sa_p, u, u_p, &
    7070               v, v_p, w, w_p
     71
     72    USE land_surface_model_mod,                                                &
     73        ONLY: land_surface, m_liq, m_liq_p, m_soil, m_soil_p, T_0, T_0_p,      &
     74              T_soil, T_soil_p
    7175#else
    7276    USE arrays_3d,                                                             &
     
    7478               q_1, q_2, q_p, qr, qr_1, qr_2, qr_p, sa, sa_1, sa_2, sa_p, u,   &
    7579               u_1, u_2, u_p, v, v_1, v_2, v_p, w, w_1, w_2, w_p
     80
     81    USE land_surface_model_mod,                                                &
     82        ONLY: land_surface, m_liq, m_liq_1, m_liq_2, m_liq_p, m_soil,          &
     83              m_soil_1, m_soil_2, m_soil_p, T_0, T_0_1, T_0_2, T_0_p, T_soil,  &
     84              T_soil_1, T_soil_2, T_soil_p
    7685#endif
    7786
     
    116125    ENDIF
    117126
     127    IF ( land_surface )  THEN
     128       T_0    = T_0_p
     129       T_soil = T_soil_p
     130       IF ( humidity )  THEN
     131          m_soil = m_soil_p
     132          m_liq  = m_liq_p
     133       ENDIF
     134    ENDIF
     135
     136
    118137    CALL cpu_log( log_point(28), 'swap_timelevel (nop)', 'stop' )
    119138#else
     
    145164          ENDIF
    146165
     166          IF ( land_surface )  THEN
     167             T_0    => T_0_1;    T_0_p    => T_0_2
     168             T_soil => T_soil_1; T_soil_p => T_soil_2
     169             IF ( humidity )  THEN
     170                m_soil => m_soil_1; m_soil_p  => m_soil_2
     171                m_liq  => m_liq_1;  m_liq_p   => m_liq_2
     172             ENDIF
     173          ENDIF
     174
    147175
    148176       CASE ( 1 )
     
    169197          ENDIF
    170198
     199          IF ( land_surface )  THEN
     200             T_0    => T_0_2;    T_0_p    => T_0_1
     201             T_soil => T_soil_2; T_soil_p => T_soil_1
     202             IF ( humidity )  THEN
     203                m_soil => m_soil_2; m_soil_p  => m_soil_1
     204                m_liq  => m_liq_2;  m_liq_p   => m_liq_1
     205             ENDIF
     206          ENDIF
     207
    171208
    172209    END SELECT
  • palm/trunk/SOURCE/time_integration.f90

    r1403 r1496  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! Added calls for the land surface model and radiation scheme
    2323!
    2424! Former revisions:
     
    177177               time_dopr_listing, time_dopts, time_dosp, time_dosp_av,         &
    178178               time_dots, time_do_av, time_do_sla, time_disturb, time_dvrp,    &
    179                time_run_control, time_since_reference_point, turbulence,       &
     179               time_run_control, time_since_reference_point,                   &
     180               turbulence,                                                     &
    180181               turbulent_inflow, use_initial_profile_as_reference,             &
    181182               use_single_reference_value, u_gtrans, v_gtrans, ws_scheme_mom,  &
     
    194195    USE kinds
    195196
     197    USE land_surface_model_mod,                                                &
     198        ONLY:  land_surface, lsm_energy_balance, lsm_soil_model
     199
    196200    USE ls_forcing_mod,                                                        &
    197201        ONLY:  ls_forcing_surf, ls_forcing_vert
     
    214218        ONLY:  prognostic_equations_acc, prognostic_equations_cache,           &
    215219               prognostic_equations_vector
     220
     221    USE radiation_model_mod,                                                   &
     222        ONLY: dt_radiation, lsm_radiation, radiation, time_radiation
    216223
    217224    USE statistics,                                                            &
     
    577584!--       velocities at the outflow in case of a non-cyclic lateral wall)
    578585          CALL boundary_conds
     586
     587!
     588!--       When using the land surface model:
     589!--       1) solve energy balance equation to calculate new skin temperature
     590!--       2) run soil model
     591          IF ( land_surface )  THEN
     592
     593             time_radiation = time_radiation + dt_3d
     594
     595             IF ( time_radiation >= dt_radiation )  THEN
     596
     597                CALL cpu_log( log_point(50), 'radiation', 'start' )
     598
     599                time_radiation = time_radiation - dt_radiation
     600                CALL lsm_radiation
     601
     602                CALL cpu_log( log_point(50), 'radiation', 'stop' )
     603             ENDIF
     604
     605             CALL cpu_log( log_point(54), 'land_surface', 'start' )
     606
     607             CALL lsm_energy_balance
     608             CALL lsm_soil_model
     609
     610             CALL cpu_log( log_point(54), 'land_surface', 'stop' )
     611
     612          ENDIF
    579613
    580614!
  • palm/trunk/SOURCE/write_var_list.f90

    r1485 r1496  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Renamed "radiation" -> "cloud_top_radiation"
    2323!
    2424! Former revisions:
     
    459459    WRITE ( 14 )  'q_vertical_gradient_level_ind '
    460460    WRITE ( 14 )  q_vertical_gradient_level_ind
    461     WRITE ( 14 )  'radiation                     '
    462     WRITE ( 14 )  radiation
     461    WRITE ( 14 )  'cloud_top_radiation       '
     462    WRITE ( 14 )  cloud_top_radiation
    463463    WRITE ( 14 )  'random_generator              '
    464464    WRITE ( 14 )  random_generator
Note: See TracChangeset for help on using the changeset viewer.