Ignore:
Timestamp:
May 30, 2018 5:43:55 PM (6 years ago)
Author:
suehring
Message:

Speed-up NetCDF input; Revise NetCDF-input routines and remove input via io-blocks; Temporarily revoke renaming of input variables in dynamic driver; More detailed error messages created; Bugfix in mapping 3D buildings; Bugfix in land-surface model at pavement surfaces; Bugfix in initialization with inifor

File:
1 edited

Legend:

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

    r3049 r3051  
    2525! -----------------
    2626! $Id$
     27! Move initialization call for nudging and 1D/3D offline nesting.
     28! Revise initialization with inifor data.
     29!
     30! 3045 2018-05-28 07:55:41Z Giersch
    2731! Error messages revised
    2832!
     
    11161120
    11171121!
    1118 !-- Initialize nudging if required
    1119     IF ( nudging )  THEN
    1120        CALL nudge_init
    1121     ENDIF
    1122 
    1123 !
    1124 !-- Initialize reading of large scale forcing from external file - if required
    1125     IF ( large_scale_forcing  .OR.  forcing )  THEN
    1126        CALL lsf_init
    1127     ENDIF
    1128 
    1129 !
    11301122!-- Allocate arrays containing the RK coefficient for calculation of
    11311123!-- perturbation pressure and turbulent fluxes. At this point values are
     
    11661158          CALL location_message( 'initializing with INIFOR', .FALSE. )
    11671159!
    1168 !--       Read initial 1D profiles from NetCDF file if available.
     1160!--       Read initial 1D profiles or 3D data from NetCDF file, depending
     1161!--       on the provided level-of-detail.
    11691162!--       At the moment, only u, v, w, pt and q are provided.
    11701163          CALL netcdf_data_input_init_3d
     
    11771170          IF ( ANY( zu(1:nzt+1) /= init_3d%zu_atmos(1:init_3d%nzu) ) )  THEN
    11781171
    1179              CALL netcdf_data_input_interpolate( init_3d%u_init(nzb+1:nzt+1),  &
     1172             IF( init_3d%lod_u == 1 )                                          &
     1173                CALL netcdf_data_input_interpolate(                            &
     1174                                                 init_3d%u_init(nzb+1:nzt+1),  &
    11801175                                                 zu(nzb+1:nzt+1),              &
    11811176                                                 init_3d%zu_atmos )
    1182              CALL netcdf_data_input_interpolate( init_3d%v_init(nzb+1:nzt+1),  &
     1177                                                 
     1178             IF( init_3d%lod_v == 1 )                                          &
     1179                CALL netcdf_data_input_interpolate(                            &
     1180                                                 init_3d%v_init(nzb+1:nzt+1),  &
    11831181                                                 zu(nzb+1:nzt+1),              &
    11841182                                                 init_3d%zu_atmos )
     1183                                                 
    11851184!              CALL netcdf_data_input_interpolate( init_3d%w_init(nzb+1:nzt),    &
    11861185!                                                  zw(nzb+1:nzt),                &
    11871186!                                                  init_3d%zw_atmos )
    1188              IF ( .NOT. neutral )                                              &
     1187
     1188             IF ( .NOT. neutral  .AND.  init_3d%lod_pt == 1 )                  &
    11891189                CALL netcdf_data_input_interpolate(                            &
    11901190                                             init_3d%pt_init(nzb+1:nzt+1),     &
    11911191                                             zu(nzb+1:nzt+1),                  &
    11921192                                             init_3d%zu_atmos )
    1193              IF ( humidity )                                                   &
     1193                                             
     1194             IF ( humidity  .AND.  init_3d%lod_q == 1 )                        &
    11941195                CALL netcdf_data_input_interpolate(                            &
    11951196                                             init_3d%q_init(nzb+1:nzt+1),      &
     
    11971198                                             init_3d%zu_atmos )
    11981199          ENDIF
    1199 
    1200           u_init = init_3d%u_init
    1201           v_init = init_3d%v_init   
    1202           IF( .NOT. neutral )  pt_init = init_3d%pt_init
    1203           IF( humidity      )  q_init  = init_3d%q_init
     1200!
     1201!--       In case of LOD=1, initialize 1D profiles and 3D data. 
     1202          IF( init_3d%lod_u == 1 )  u_init = init_3d%u_init
     1203          IF( init_3d%lod_v == 1 )  v_init = init_3d%v_init   
     1204          IF( .NOT. neutral  .AND.  init_3d%lod_pt == 1 )                      &
     1205             pt_init = init_3d%pt_init
     1206          IF( humidity  .AND.  init_3d%lod_q == 1 )                            &
     1207             q_init  = init_3d%q_init
    12041208
    12051209!
     
    12101214          DO  i = nxlg, nxrg
    12111215             DO  j = nysg, nyng
    1212                 u(:,j,i) = u_init(:)
    1213                 v(:,j,i) = v_init(:)
    1214                 IF( .NOT. neutral )  pt(:,j,i) = pt_init(:)
    1215                 IF( humidity      )  q(:,j,i)  = q_init(:)
     1216                IF( init_3d%lod_u == 1 )  u(:,j,i) = u_init(:)
     1217                IF( init_3d%lod_v == 1 )  v(:,j,i) = v_init(:)
     1218                IF( .NOT. neutral  .AND.  init_3d%lod_pt == 1 )                &
     1219                   pt(:,j,i) = pt_init(:)
     1220                IF( humidity  .AND.  init_3d%lod_q == 1 )                      &
     1221                   q(:,j,i)  = q_init(:)
    12161222             ENDDO
    12171223          ENDDO
     
    22872293
    22882294!
     2295!-- Initialize nudging if required
     2296    IF ( nudging )  CALL nudge_init
     2297
     2298!
     2299!-- Initialize 1D/3D offline-nesting with COSMO model and read data from
     2300!-- external file.
     2301    IF ( large_scale_forcing  .OR.  forcing )  CALL lsf_init
     2302   
     2303!
    22892304!-- Initialize surface forcing corresponding to large-scale forcing. Therein,
    22902305!-- initialize heat-fluxes, etc. via datatype. Revise it later!
Note: See TracChangeset for help on using the changeset viewer.