Changeset 3404 for palm/trunk


Ignore:
Timestamp:
Oct 23, 2018 1:29:11 PM (6 years ago)
Author:
suehring
Message:

Consider time-dependent geostrophic wind components in offline nesting

Location:
palm/trunk/SOURCE
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/init_3d_model.f90

    r3347 r3404  
    2525! -----------------
    2626! $Id$
     27! Set bottom boundary condition for geostrophic wind components in inifor
     28! initialization
     29!
     30! 3347 2018-10-15 14:21:08Z suehring
    2731! - Separate offline nesting from large_scale_nudging_mod
    2832! - Improve the synthetic turbulence generator
     
    12141218             vg(:) = init_3d%vg_init(:)
    12151219          ENDIF
    1216          
     1220!
     1221!--       Set bottom and top boundary condition for geostrophic wind
    12171222          ug(nzt+1) = ug(nzt)
    12181223          vg(nzt+1) = vg(nzt)
     1224          ug(nzb)   = ug(nzb+1)
     1225          vg(nzb)   = vg(nzb+1)
    12191226!
    12201227!--       Set inital w to 0
  • palm/trunk/SOURCE/nesting_offl_mod.f90

    r3364 r3404  
    2525! -----------------
    2626!
     27! Consider time-dependent geostrophic wind components in offline nesting
     28!
     29!
    2730! Initial Revision:
    2831! - separate offline nesting from large_scale_nudging_mod
     
    656659!
    657660!-- Update geostrophic wind components from dynamic input file.
    658 !-- Note, at the moment this is not available. As a workaround, use reference
    659 !-- profiles derived from the boundary values.
    660 !-- This will be revised as soon as geostrophic wind components are provided by
    661 !-- dynamic input file.
    662     ug = u_init
    663     vg = v_init
     661    DO  k = nzb+1, nzt
     662       ug(k) = interpolate_in_time( nest_offl%ug(0,k), nest_offl%ug(1,k),      &
     663                                    fac_dt )
     664       vg(k) = interpolate_in_time( nest_offl%vg(0,k), nest_offl%vg(1,k),      &
     665                                    fac_dt )
     666    ENDDO
     667    ug(nzt+1) = ug(nzt)
     668    vg(nzt+1) = vg(nzt)
    664669   
    665670    CALL  cpu_log( log_point(58), 'offline nesting', 'stop' )
     
    959964
    960965!--    Allocate arrays for geostrophic wind components. Arrays will
    961 !--    incorporate 2 time levels in order to interpolate in between. Please
    962 !--    note, forcing using geostrophic wind components is only required in
    963 !--    case of cyclic boundary conditions.
    964 !        IF ( bc_lr_cyc  .AND.  bc_ns_cyc )  THEN
    965 !           ALLOCATE( nest_offl%ug(0:1,nzb:nzt+1) )
    966 !           ALLOCATE( nest_offl%vg(0:1,nzb:nzt+1) )
    967 !        ENDIF
     966!--    incorporate 2 time levels in order to interpolate in between.
     967       ALLOCATE( nest_offl%ug(0:1,1:nzt) )
     968       ALLOCATE( nest_offl%vg(0:1,1:nzt) )
    968969!
    969970!--    Allocate arrays for reading boundary values. Arrays will incorporate 2
     
    10081009       CALL netcdf_data_input_offline_nesting
    10091010!
    1010 !--    Initialize boundary data 
     1011!--    Initialize boundary data.
    10111012       IF ( bc_dirichlet_l )  THEN
    10121013          u(nzb+1:nzt,nys:nyn,0)    = nest_offl%u_left(0,nzb+1:nzt,nys:nyn)
     
    10461047       ENDIF
    10471048!
     1049!--    Initialize geostrophic wind components. Actually this is already done in
     1050!--    init_3d_model when initializing_action = 'inifor', however, in speical
     1051!--    case of user-defined initialization this will be done here again, in
     1052!--    order to have a consistent initialization.
     1053       ug(nzb+1:nzt) = nest_offl%ug(0,nzb+1:nzt)
     1054       vg(nzb+1:nzt) = nest_offl%vg(0,nzb+1:nzt)
     1055!
     1056!--    Set bottom and top boundary condition for geostrophic wind components
     1057       ug(nzt+1) = ug(nzt)
     1058       vg(nzt+1) = vg(nzt)
     1059       ug(nzb)   = ug(nzb+1)
     1060       vg(nzb)   = vg(nzb+1)
     1061!
    10481062!--    Initial calculation of the boundary layer depth from the prescribed
    10491063!--    boundary data. This is requiered for initialize the synthetic turbulence
  • palm/trunk/SOURCE/netcdf_data_input_mod.f90

    r3376 r3404  
    2525! -----------------
    2626! $Id$
     27! Consider time-dependent geostrophic wind components in offline nesting
     28!
     29! 3376 2018-10-19 10:15:32Z suehring
    2730! Additional check for consistent building initialization implemented
    2831!
     
    30883091       USE control_parameters,                                                 &
    30893092           ONLY:  bc_dirichlet_l, bc_dirichlet_n, bc_dirichlet_r,              &
    3090                   bc_dirichlet_s, bc_lr_cyc, bc_ns_cyc, humidity,              &
    3091                   neutral, nesting_offline, time_since_reference_point
     3093                  bc_dirichlet_s, humidity, neutral, nesting_offline,          &
     3094                  time_since_reference_point
    30923095
    30933096       USE indices,                                                            &
     
    31703173       nest_offl%tind_p = nest_offl%tind + 1       
    31713174!
    3172 !--    Read geostrophic wind components. In case of forcing, this is only
    3173 !--    required if cyclic boundary conditions are applied.
    3174        IF ( bc_lr_cyc  .AND.  bc_ns_cyc )  THEN
    3175           DO  t = nest_offl%tind, nest_offl%tind_p
    3176 !              CALL get_variable_pr( id_dynamic, 'tend_ug', t+1,           &
    3177 !                                    nest_offl%ug(t-nest_offl%tind,:) )
    3178 !              CALL get_variable_pr( id_dynamic, 'tend_vg', t+1,           &
    3179 !                                    nest_offl%ug(t-nest_offl%tind,:) )
    3180              CALL get_variable_pr( id_dynamic, 'ls_forcing_ug', t+1,           &
    3181                                    nest_offl%ug(t-nest_offl%tind,:) )
    3182              CALL get_variable_pr( id_dynamic, 'ls_forcing_vg', t+1,           &
    3183                                    nest_offl%ug(t-nest_offl%tind,:) )
    3184           ENDDO
    3185        ENDIF
     3175!--    Read geostrophic wind components
     3176       DO  t = nest_offl%tind, nest_offl%tind_p
     3177          CALL get_variable_pr( id_dynamic, 'ls_forcing_ug', t+1,              &
     3178                                nest_offl%ug(t-nest_offl%tind,nzb+1:nzt) )
     3179          CALL get_variable_pr( id_dynamic, 'ls_forcing_vg', t+1,              &
     3180                                nest_offl%vg(t-nest_offl%tind,nzb+1:nzt) )
     3181       ENDDO
    31863182!
    31873183!--    Read data at lateral and top boundaries. Please note, at left and
Note: See TracChangeset for help on using the changeset viewer.