Changeset 2818 for palm


Ignore:
Timestamp:
Feb 19, 2018 4:42:36 PM (6 years ago)
Author:
maronga
Message:

improvements in spinup mechanism

Location:
palm/trunk/SOURCE
Files:
3 edited

Legend:

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

    r2776 r2818  
    2525! -----------------
    2626! $Id$
     27! Added spinup_time to allow for restarts with spinup in precursor run.
     28!
     29! 2776 2018-01-31 10:44:42Z Giersch
    2730! Change skip_var_list: Skipping of module related parameter is only necessary
    2831! if restart data was outputted at the end of the precursor run
     
    294297!-- Make version number check first
    295298    READ ( 13 )  version_on_file
    296     binary_version = '4.5'
     299    binary_version = '4.6'
    297300    IF ( TRIM( version_on_file ) /= TRIM( binary_version ) )  THEN
    298301       WRITE( message_string, * ) 'version mismatch concerning control ', &
     
    693696          CASE ( 'simulated_time' )
    694697             READ ( 13 )  simulated_time
     698          CASE ( 'spinup_time' )
     699             READ ( 13 )  spinup_time
    695700          CASE ( 'surface_heatflux' )
    696701             READ ( 13 )  surface_heatflux
  • palm/trunk/SOURCE/time_integration_spinup.f90

    r2782 r2818  
    2525! -----------------
    2626! $Id$
     27! Velocity components near walls/ground are now set to the profiles stored in
     28! u_init and v_init. Activated soil moisture calculation during spinup.
     29!
     30! 2782 2018-02-02 11:51:10Z maronga
    2731! Bugfix and re-activation of homogeneous setting of velocity components
    2832! during spinup
     
    7680 
    7781    USE arrays_3d,                                                             &
    78         ONLY:  pt, pt_p, u, v
     82        ONLY:  pt, pt_p, u, u_init, v, v_init
    7983
    8084    USE control_parameters,                                                    &
     
    183187          j   = surf_lsm_h%j(m)
    184188          k   = surf_lsm_h%k(m)
    185           u(k,j,i) =  SIGN(1.0_wp,u(k,j,i)) * MAX(ug_surface,0.1_wp)
    186           v(k,j,i) =  SIGN(1.0_wp,v(k,j,i)) * MAX(vg_surface,0.1_wp)
     189          u(k,j,i) = SIGN(1.0_wp,u_init(k)) * MAX(u_init(k),0.1_wp)
     190          v(k,j,i) = SIGN(1.0_wp,v_init(k)) * MAX(v_init(k),0.1_wp)
    187191       ENDDO
    188192
     
    192196             j   = surf_lsm_v(l)%j(m)
    193197             k   = surf_lsm_v(l)%k(m)
    194              u(k,j,i) =  SIGN(1.0_wp,u(k,j,i)) * MAX(ug_surface,0.1_wp)
    195              v(k,j,i) =  SIGN(1.0_wp,v(k,j,i)) * MAX(vg_surface,0.1_wp)
     198             u(k,j,i) = SIGN(1.0_wp,u_init(k)) * MAX(u_init(k),0.1_wp)
     199             v(k,j,i) = SIGN(1.0_wp,v_init(k)) * MAX(v_init(k),0.1_wp)
    196200          ENDDO
    197201       ENDDO
     
    203207          j   = surf_usm_h%j(m)
    204208          k   = surf_usm_h%k(m)
    205           u(k,j,i) =  SIGN(1.0_wp,u(k,j,i)) * MAX(ug_surface,0.1_wp)
    206           v(k,j,i) =  SIGN(1.0_wp,v(k,j,i)) * MAX(vg_surface,0.1_wp)
     209          u(k,j,i) = SIGN(1.0_wp,u_init(k)) * MAX(u_init(k),0.1_wp)
     210          v(k,j,i) = SIGN(1.0_wp,v_init(k)) * MAX(v_init(k),0.1_wp)
    207211       ENDDO
    208212
     
    212216             j   = surf_usm_v(l)%j(m)
    213217             k   = surf_usm_v(l)%k(m)
    214              u(k,j,i) =  SIGN(1.0_wp,u(k,j,i)) * MAX(ug_surface,0.1_wp)
    215              v(k,j,i) =  SIGN(1.0_wp,v(k,j,i)) * MAX(vg_surface,0.1_wp)
     218             u(k,j,i) = SIGN(1.0_wp,u_init(k)) * MAX(u_init(k),0.1_wp)
     219             v(k,j,i) = SIGN(1.0_wp,v_init(k)) * MAX(v_init(k),0.1_wp)
    216220          ENDDO
    217221       ENDDO
    218222    ENDIF
     223
     224    CALL exchange_horiz( u,  nbgp )
     225    CALL exchange_horiz( v,  nbgp )
    219226
    220227    dt_save = dt_3d
     
    289296          ENDIF
    290297
     298          CALL exchange_horiz( pt,  nbgp )   
     299
     300
    291301!
    292302!--       Swap the time levels in preparation for the next time step.
     
    338348!--             Call for horizontal upward-facing surfaces
    339349                CALL lsm_energy_balance( .TRUE., -1 )
    340                 CALL lsm_soil_model( .TRUE., -1, .FALSE. )
     350                CALL lsm_soil_model( .TRUE., -1, .TRUE. )
    341351!
    342352!--             Call for northward-facing surfaces
    343353                CALL lsm_energy_balance( .FALSE., 0 )
    344                 CALL lsm_soil_model( .FALSE., 0, .FALSE. )
     354                CALL lsm_soil_model( .FALSE., 0, .TRUE. )
    345355!
    346356!--             Call for southward-facing surfaces
    347357                CALL lsm_energy_balance( .FALSE., 1 )
    348                 CALL lsm_soil_model( .FALSE., 1, .FALSE. )
     358                CALL lsm_soil_model( .FALSE., 1, .TRUE. )
    349359!
    350360!--             Call for eastward-facing surfaces
    351361                CALL lsm_energy_balance( .FALSE., 2 )
    352                 CALL lsm_soil_model( .FALSE., 2, .FALSE. )
     362                CALL lsm_soil_model( .FALSE., 2, .TRUE. )
    353363!
    354364!--             Call for westward-facing surfaces
    355365                CALL lsm_energy_balance( .FALSE., 3 )
    356                 CALL lsm_soil_model( .FALSE., 3, .FALSE. )
     366                CALL lsm_soil_model( .FALSE., 3, .TRUE. )
    357367
    358368                CALL cpu_log( log_point(54), 'land_surface', 'stop' )
  • palm/trunk/SOURCE/write_var_list.f90

    r2776 r2818  
    2525! -----------------
    2626! $Id$
     27! Added spinup_time to allow for restarts with spinup in precursor run.
     28!
     29! 2776 2018-01-31 10:44:42Z Giersch
    2730! Variable synthetic_turbulence_generator has been abbreviated
    2831!
     
    268271
    269272
    270     binary_version = '4.5'
     273    binary_version = '4.6'
    271274
    272275    WRITE ( 14 )  binary_version
     
    601604    WRITE ( 14 )  'simulated_time                '
    602605    WRITE ( 14 )  simulated_time
     606    WRITE ( 14 )  'spinup_time                   '
     607    WRITE ( 14 )  spinup_time
    603608    WRITE ( 14 )  'surface_heatflux              '
    604609    WRITE ( 14 )  surface_heatflux
Note: See TracChangeset for help on using the changeset viewer.