Ignore:
Timestamp:
Mar 15, 2018 9:17:58 AM (6 years ago)
Author:
Giersch
Message:

Reading/Writing? data in case of restart runs revised

File:
1 edited

Legend:

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

    r2809 r2894  
    2525! -----------------
    2626! $Id$
     27! Calculations of the index range of the subdomain on file which overlaps with
     28! the current subdomain are already done in read_restart_data_mod
     29! radiation_read_restart_data was renamed to radiation_rrd_local and
     30! radiation_last_actions was renamed to radiation_wrd_local, variable named
     31! found has been introduced for checking if restart data was found, reading
     32! of restart strings has been moved completely to read_restart_data_mod,
     33! radiation_rrd_local is already inside the overlap loop programmed in
     34! read_restart_data_mod, the marker *** end rad *** is not necessary anymore,
     35! strings and their respective lengths are written out and read now in case of
     36! restart runs to get rid of prescribed character lengths (Giersch)
     37!
     38! 2809 2018-02-15 09:55:58Z suehring
    2739! Bugfix for gfortran: Replace the function C_SIZEOF with STORAGE_SIZE
    2840!
     
    809821    END INTERFACE radiation_tendency
    810822
    811     INTERFACE radiation_read_restart_data
    812        MODULE PROCEDURE radiation_read_restart_data
    813     END INTERFACE radiation_read_restart_data
    814 
    815     INTERFACE radiation_last_actions
    816        MODULE PROCEDURE radiation_last_actions
    817     END INTERFACE radiation_last_actions
     823    INTERFACE radiation_rrd_local
     824       MODULE PROCEDURE radiation_rrd_local
     825    END INTERFACE radiation_rrd_local
     826
     827    INTERFACE radiation_wrd_local
     828       MODULE PROCEDURE radiation_wrd_local
     829    END INTERFACE radiation_wrd_local
    818830
    819831    INTERFACE radiation_interaction
     
    853865           radiation_3d_data_averaging, radiation_tendency,                    &
    854866           radiation_data_output_2d, radiation_data_output_3d,                 &
    855            radiation_define_netcdf_grid, radiation_last_actions,               &
    856            radiation_read_restart_data, radiation_data_output_mask,            &
     867           radiation_define_netcdf_grid, radiation_wrd_local,                  &
     868           radiation_rrd_local, radiation_data_output_mask,                    &
    857869           radiation_radflux_gridbox, radiation_calc_svf, radiation_write_svf, &
    858870           radiation_interaction, radiation_interaction_init,                  &
     
    80308042! Description:
    80318043! ------------
    8032 !> Subroutine defines masked output variables
     8044!> Subroutine writes the respective restart data
    80338045!------------------------------------------------------------------------------!
    8034  SUBROUTINE radiation_last_actions
    8035  
    8036 
    8037     USE control_parameters
    8038        
    8039     USE kinds
     8046 SUBROUTINE radiation_wrd_local
     8047
    80408048
    80418049    IMPLICIT NONE
    80428050
    8043     IF ( write_binary )  THEN
    8044        IF ( ALLOCATED( rad_net_av ) )  THEN
    8045           WRITE ( 14 )  'rad_net_av          ';  WRITE ( 14 )  rad_net_av 
    8046        ENDIF 
    8047        IF ( ALLOCATED( rad_lw_in ) )  THEN
    8048           WRITE ( 14 )  'rad_lw_in           ';  WRITE ( 14 )  rad_lw_in 
    8049        ENDIF
    8050        IF ( ALLOCATED( rad_lw_in_av ) )  THEN
    8051           WRITE ( 14 )  'rad_lw_in_av        ';  WRITE ( 14 )  rad_lw_in_av 
    8052        ENDIF
    8053        IF ( ALLOCATED( rad_lw_out ) )  THEN
    8054           WRITE ( 14 )  'rad_lw_out          ';  WRITE ( 14 )  rad_lw_out
    8055        ENDIF
    8056        IF ( ALLOCATED( rad_lw_out_av ) )  THEN
    8057           WRITE ( 14 )  'rad_lw_out_av       ';  WRITE ( 14 )  rad_lw_out_av 
    8058        ENDIF
    8059        IF ( ALLOCATED( rad_lw_cs_hr ) )  THEN
    8060           WRITE ( 14 )  'rad_lw_cs_hr        ';  WRITE ( 14 )  rad_lw_cs_hr
    8061        ENDIF
    8062        IF ( ALLOCATED( rad_lw_cs_hr_av ) )  THEN
    8063           WRITE ( 14 )  'rad_lw_cs_hr_av     ';  WRITE ( 14 )  rad_lw_cs_hr_av
    8064        ENDIF
    8065        IF ( ALLOCATED( rad_lw_hr ) )  THEN
    8066           WRITE ( 14 )  'rad_lw_hr           ';  WRITE ( 14 )  rad_lw_hr
    8067        ENDIF
    8068        IF ( ALLOCATED( rad_lw_hr_av ) )  THEN
    8069           WRITE ( 14 )  'rad_lw_hr_av        ';  WRITE ( 14 )  rad_lw_hr_av
    8070        ENDIF
    8071        IF ( ALLOCATED( rad_sw_in ) )  THEN
    8072           WRITE ( 14 )  'rad_sw_in           ';  WRITE ( 14 )  rad_sw_in 
    8073        ENDIF
    8074        IF ( ALLOCATED( rad_sw_in_av ) )  THEN
    8075           WRITE ( 14 )  'rad_sw_in_av        ';  WRITE ( 14 )  rad_sw_in_av 
    8076        ENDIF
    8077        IF ( ALLOCATED( rad_sw_out ) )  THEN
    8078           WRITE ( 14 )  'rad_sw_out          ';  WRITE ( 14 )  rad_sw_out 
    8079        ENDIF
    8080        IF ( ALLOCATED( rad_sw_out_av ) )  THEN
    8081           WRITE ( 14 )  'rad_sw_out_av       ';  WRITE ( 14 )  rad_sw_out_av 
    8082        ENDIF
    8083        IF ( ALLOCATED( rad_sw_cs_hr ) )  THEN
    8084           WRITE ( 14 )  'rad_sw_cs_hr        ';  WRITE ( 14 )  rad_sw_cs_hr
    8085        ENDIF
    8086        IF ( ALLOCATED( rad_sw_cs_hr_av ) )  THEN
    8087           WRITE ( 14 )  'rad_sw_cs_hr_av     ';  WRITE ( 14 )  rad_sw_cs_hr_av
    8088        ENDIF
    8089        IF ( ALLOCATED( rad_sw_hr ) )  THEN
    8090           WRITE ( 14 )  'rad_sw_hr           ';  WRITE ( 14 )  rad_sw_hr
    8091        ENDIF
    8092        IF ( ALLOCATED( rad_sw_hr_av ) )  THEN
    8093           WRITE ( 14 )  'rad_sw_hr_av        ';  WRITE ( 14 )  rad_sw_hr_av
    8094        ENDIF
    8095 
    8096        WRITE ( 14 )  '*** end rad ***     '
    8097 
     8051
     8052    IF ( ALLOCATED( rad_net_av ) )  THEN
     8053       CALL wrd_write_string( 'rad_net_av' )
     8054       WRITE ( 14 )  rad_net_av
    80988055    ENDIF
    80998056
    8100  END SUBROUTINE radiation_last_actions
    8101 
    8102 
    8103 SUBROUTINE radiation_read_restart_data( i, nxlfa, nxl_on_file, nxrfa,          &
    8104                                         nxr_on_file, nynfa, nyn_on_file, nysfa,&
    8105                                         nys_on_file, offset_xa, offset_ya,     &
    8106                                         overlap_count, tmp_2d, tmp_3d )
     8057    IF ( ALLOCATED( rad_lw_in ) )  THEN
     8058       CALL wrd_write_string( 'rad_lw_in' )
     8059       WRITE ( 14 )  rad_lw_in
     8060    ENDIF
     8061
     8062    IF ( ALLOCATED( rad_lw_in_av ) )  THEN
     8063       CALL wrd_write_string( 'rad_lw_in_av' )
     8064       WRITE ( 14 )  rad_lw_in_av
     8065    ENDIF
     8066
     8067    IF ( ALLOCATED( rad_lw_out ) )  THEN
     8068       CALL wrd_write_string( 'rad_lw_out' )
     8069       WRITE ( 14 )  rad_lw_out
     8070    ENDIF
     8071
     8072    IF ( ALLOCATED( rad_lw_out_av) )  THEN
     8073       CALL wrd_write_string( 'rad_lw_out_av' )
     8074       WRITE ( 14 )  rad_lw_out_av
     8075    ENDIF
     8076
     8077    IF ( ALLOCATED( rad_lw_cs_hr) )  THEN
     8078       CALL wrd_write_string( 'rad_lw_cs_hr' )
     8079       WRITE ( 14 )  rad_lw_cs_hr
     8080    ENDIF
     8081
     8082    IF ( ALLOCATED( rad_lw_cs_hr_av) )  THEN
     8083       CALL wrd_write_string( 'rad_lw_cs_hr_av' )
     8084       WRITE ( 14 )  rad_lw_cs_hr_av
     8085    ENDIF
     8086
     8087    IF ( ALLOCATED( rad_lw_hr) )  THEN
     8088       CALL wrd_write_string( 'rad_lw_hr' )
     8089       WRITE ( 14 )  rad_lw_hr
     8090    ENDIF
     8091
     8092    IF ( ALLOCATED( rad_lw_hr_av) )  THEN
     8093       CALL wrd_write_string( 'rad_lw_hr_av' )
     8094       WRITE ( 14 )  rad_lw_hr_av
     8095    ENDIF
     8096
     8097    IF ( ALLOCATED( rad_sw_in) )  THEN
     8098       CALL wrd_write_string( 'rad_sw_in' )
     8099       WRITE ( 14 )  rad_sw_in
     8100    ENDIF
     8101
     8102    IF ( ALLOCATED( rad_sw_in_av) )  THEN
     8103       CALL wrd_write_string( 'rad_sw_in_av' )
     8104       WRITE ( 14 )  rad_sw_in_av
     8105    ENDIF
     8106
     8107    IF ( ALLOCATED( rad_sw_out) )  THEN
     8108       CALL wrd_write_string( 'rad_sw_out' )
     8109       WRITE ( 14 )  rad_sw_out
     8110    ENDIF
     8111
     8112    IF ( ALLOCATED( rad_sw_out_av) )  THEN
     8113       CALL wrd_write_string( 'rad_sw_out_av' )
     8114       WRITE ( 14 )  rad_sw_out_av
     8115    ENDIF
     8116
     8117    IF ( ALLOCATED( rad_sw_cs_hr) )  THEN
     8118       CALL wrd_write_string( 'rad_sw_cs_hr' )
     8119       WRITE ( 14 )  rad_sw_cs_hr
     8120    ENDIF
     8121
     8122    IF ( ALLOCATED( rad_sw_cs_hr_av) )  THEN
     8123       CALL wrd_write_string( 'rad_sw_cs_hr_av' )
     8124       WRITE ( 14 )  rad_sw_cs_hr_av
     8125    ENDIF
     8126
     8127    IF ( ALLOCATED( rad_sw_hr) )  THEN
     8128       CALL wrd_write_string( 'rad_sw_hr' )
     8129       WRITE ( 14 )  rad_sw_hr
     8130    ENDIF
     8131
     8132    IF ( ALLOCATED( rad_sw_hr_av) )  THEN
     8133       CALL wrd_write_string( 'rad_sw_hr_av' )
     8134       WRITE ( 14 )  rad_sw_hr_av
     8135    ENDIF
     8136
     8137
     8138 END SUBROUTINE radiation_wrd_local
     8139
     8140
     8141SUBROUTINE radiation_rrd_local( i, k, nxlf, nxlc, nxl_on_file, nxrf, nxrc,     &
     8142                                nxr_on_file, nynf, nync, nyn_on_file, nysf,    &
     8143                                nysc, nys_on_file, tmp_2d, tmp_3d, found )
    81078144 
    81088145
     
    81158152    USE pegrid
    81168153
     8154
    81178155    IMPLICIT NONE
    8118 
    8119     CHARACTER (LEN=20) :: field_char   !<
    81208156
    81218157    INTEGER(iwp) ::  i               !<
     
    81338169    INTEGER(iwp) ::  nysf            !<
    81348170    INTEGER(iwp) ::  nys_on_file     !<
    8135     INTEGER(iwp) ::  overlap_count   !<
    8136 
    8137     INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  nxlfa       !<
    8138     INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  nxrfa       !<
    8139     INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  nynfa       !<
    8140     INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  nysfa       !<
    8141     INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  offset_xa   !<
    8142     INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  offset_ya   !<
    8143 
    8144     REAL(wp),                                                                  &
    8145        DIMENSION(nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) ::&
    8146           tmp_2d   !<
    8147 
    8148     REAL(wp),                                                                  &
    8149        DIMENSION(nzb:nzt+1,nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) ::&
    8150           tmp_3d   !<
    8151 
    8152     REAL(wp),                                                                  &
    8153        DIMENSION(0:0,nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) ::&
    8154           tmp_3d2   !<
    8155 
    8156 
    8157 
    8158    IF ( initializing_actions == 'read_restart_data' )  THEN
    8159       READ ( 13 )  field_char
    8160 
    8161       DO  WHILE ( TRIM( field_char ) /= '*** end rad ***' )
    8162 
    8163          DO  k = 1, overlap_count
    8164 
    8165             nxlf = nxlfa(i,k)
    8166             nxlc = nxlfa(i,k) + offset_xa(i,k)
    8167             nxrf = nxrfa(i,k)
    8168             nxrc = nxrfa(i,k) + offset_xa(i,k)
    8169             nysf = nysfa(i,k)
    8170             nysc = nysfa(i,k) + offset_ya(i,k)
    8171             nynf = nynfa(i,k)
    8172             nync = nynfa(i,k) + offset_ya(i,k)
    8173 
    8174 
    8175             SELECT CASE ( TRIM( field_char ) )
    8176 
    8177                 CASE ( 'rad_net_av' )
    8178                    IF ( .NOT. ALLOCATED( rad_net_av ) )  THEN
    8179                       ALLOCATE( rad_net_av(nysg:nyng,nxlg:nxrg) )
    8180                    ENDIF 
    8181                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    8182                    rad_net_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  =      &
    8183                                  tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8184                 CASE ( 'rad_lw_in' )
    8185                    IF ( .NOT. ALLOCATED( rad_lw_in ) )  THEN
    8186                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8187                            radiation_scheme == 'constant')  THEN
    8188                          ALLOCATE( rad_lw_in(0:0,nysg:nyng,nxlg:nxrg) )
    8189                       ELSE
    8190                          ALLOCATE( rad_lw_in(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8191                       ENDIF
    8192                    ENDIF 
    8193                    IF ( k == 1 )  THEN
    8194                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8195                            radiation_scheme == 'constant')  THEN
    8196                          READ ( 13 )  tmp_3d2
    8197                          rad_lw_in(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8198                             tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8199                       ELSE
    8200                          READ ( 13 )  tmp_3d
    8201                          rad_lw_in(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8202                              tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8203                       ENDIF
    8204                    ENDIF
    8205 
    8206                 CASE ( 'rad_lw_in_av' )
    8207                    IF ( .NOT. ALLOCATED( rad_lw_in_av ) )  THEN
    8208                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8209                            radiation_scheme == 'constant')  THEN
    8210                          ALLOCATE( rad_lw_in_av(0:0,nysg:nyng,nxlg:nxrg) )
    8211                       ELSE
    8212                          ALLOCATE( rad_lw_in_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8213                       ENDIF
    8214                    ENDIF 
    8215                    IF ( k == 1 )  THEN
    8216                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8217                            radiation_scheme == 'constant')  THEN
    8218                          READ ( 13 )  tmp_3d2
    8219                          rad_lw_in_av(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8220                              tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8221                       ELSE
    8222                          READ ( 13 )  tmp_3d
    8223                          rad_lw_in_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8224                              tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8225                       ENDIF
    8226                    ENDIF
    8227 
    8228                 CASE ( 'rad_lw_out' )
    8229                    IF ( .NOT. ALLOCATED( rad_lw_out ) )  THEN
    8230                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8231                            radiation_scheme == 'constant')  THEN
    8232                          ALLOCATE( rad_lw_out(0:0,nysg:nyng,nxlg:nxrg) )
    8233                       ELSE
    8234                          ALLOCATE( rad_lw_out(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8235                       ENDIF
    8236                    ENDIF 
    8237                    IF ( k == 1 )  THEN
    8238                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8239                            radiation_scheme == 'constant')  THEN
    8240                          READ ( 13 )  tmp_3d2
    8241                          rad_lw_out(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8242                              tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8243                       ELSE
    8244                          READ ( 13 )  tmp_3d
    8245                          rad_lw_out(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8246                              tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8247                       ENDIF
    8248                    ENDIF
    8249 
    8250                 CASE ( 'rad_lw_out_av' )
    8251                    IF ( .NOT. ALLOCATED( rad_lw_out_av ) )  THEN
    8252                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8253                            radiation_scheme == 'constant')  THEN
    8254                          ALLOCATE( rad_lw_out_av(0:0,nysg:nyng,nxlg:nxrg) )
    8255                       ELSE
    8256                          ALLOCATE( rad_lw_out_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8257                       ENDIF
    8258                    ENDIF 
    8259                    IF ( k == 1 )  THEN
    8260                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8261                            radiation_scheme == 'constant')  THEN
    8262                          READ ( 13 )  tmp_3d2
    8263                          rad_lw_out_av(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8264                              tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8265                       ELSE
    8266                          READ ( 13 )  tmp_3d
    8267                          rad_lw_out_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8268                              tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8269                       ENDIF
    8270                    ENDIF
    8271 
    8272                 CASE ( 'rad_lw_cs_hr' )
    8273                    IF ( .NOT. ALLOCATED( rad_lw_cs_hr ) )  THEN
    8274                       ALLOCATE( rad_lw_cs_hr(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8275                    ENDIF
    8276                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    8277                    rad_lw_cs_hr(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =   &
    8278                            tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8279 
    8280                 CASE ( 'rad_lw_cs_hr_av' )
    8281                    IF ( .NOT. ALLOCATED( rad_lw_cs_hr_av ) )  THEN
    8282                       ALLOCATE( rad_lw_cs_hr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8283                    ENDIF
    8284                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    8285                    rad_lw_cs_hr_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
    8286                            tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8287 
    8288                 CASE ( 'rad_lw_hr' )
    8289                    IF ( .NOT. ALLOCATED( rad_lw_hr ) )  THEN
    8290                       ALLOCATE( rad_lw_hr(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8291                    ENDIF
    8292                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    8293                    rad_lw_hr(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =      &
    8294                            tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8295 
    8296                 CASE ( 'rad_lw_hr_av' )
    8297                    IF ( .NOT. ALLOCATED( rad_lw_hr_av ) )  THEN
    8298                       ALLOCATE( rad_lw_hr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8299                    ENDIF
    8300                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    8301                    rad_lw_hr_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =   &
    8302                            tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8303 
    8304                 CASE ( 'rad_sw_in' )
    8305                    IF ( .NOT. ALLOCATED( rad_sw_in ) )  THEN
    8306                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8307                            radiation_scheme == 'constant')  THEN
    8308                          ALLOCATE( rad_sw_in(0:0,nysg:nyng,nxlg:nxrg) )
    8309                       ELSE
    8310                          ALLOCATE( rad_sw_in(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8311                       ENDIF
    8312                    ENDIF 
    8313                    IF ( k == 1 )  THEN
    8314                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8315                            radiation_scheme == 'constant')  THEN
    8316                          READ ( 13 )  tmp_3d2
    8317                          rad_sw_in(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8318                              tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8319                       ELSE
    8320                          READ ( 13 )  tmp_3d
    8321                          rad_sw_in(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8322                              tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8323                       ENDIF
    8324                    ENDIF
    8325 
    8326                 CASE ( 'rad_sw_in_av' )
    8327                    IF ( .NOT. ALLOCATED( rad_sw_in_av ) )  THEN
    8328                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8329                            radiation_scheme == 'constant')  THEN
    8330                          ALLOCATE( rad_sw_in_av(0:0,nysg:nyng,nxlg:nxrg) )
    8331                       ELSE
    8332                          ALLOCATE( rad_sw_in_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8333                       ENDIF
    8334                    ENDIF 
    8335                    IF ( k == 1 )  THEN
    8336                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8337                            radiation_scheme == 'constant')  THEN
    8338                          READ ( 13 )  tmp_3d2
    8339                          rad_sw_in_av(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8340                              tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8341                       ELSE
    8342                          READ ( 13 )  tmp_3d
    8343                          rad_sw_in_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8344                              tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8345                       ENDIF
    8346                    ENDIF
    8347 
    8348                 CASE ( 'rad_sw_out' )
    8349                    IF ( .NOT. ALLOCATED( rad_sw_out ) )  THEN
    8350                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8351                            radiation_scheme == 'constant')  THEN
    8352                          ALLOCATE( rad_sw_out(0:0,nysg:nyng,nxlg:nxrg) )
    8353                       ELSE
    8354                          ALLOCATE( rad_sw_out(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8355                       ENDIF
    8356                    ENDIF 
    8357                    IF ( k == 1 )  THEN
    8358                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8359                            radiation_scheme == 'constant')  THEN
    8360                          READ ( 13 )  tmp_3d2
    8361                          rad_sw_out(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8362                              tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8363                       ELSE
    8364                          READ ( 13 )  tmp_3d
    8365                          rad_sw_out(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8366                              tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8367                       ENDIF
    8368                    ENDIF
    8369 
    8370                 CASE ( 'rad_sw_out_av' )
    8371                    IF ( .NOT. ALLOCATED( rad_sw_out_av ) )  THEN
    8372                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8373                            radiation_scheme == 'constant')  THEN
    8374                          ALLOCATE( rad_sw_out_av(0:0,nysg:nyng,nxlg:nxrg) )
    8375                       ELSE
    8376                          ALLOCATE( rad_sw_out_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8377                       ENDIF
    8378                    ENDIF 
    8379                    IF ( k == 1 )  THEN
    8380                       IF ( radiation_scheme == 'clear-sky'  .OR.               &
    8381                            radiation_scheme == 'constant')  THEN
    8382                          READ ( 13 )  tmp_3d2
    8383                          rad_sw_out_av(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8384                              tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8385                       ELSE
    8386                          READ ( 13 )  tmp_3d
    8387                          rad_sw_out_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
    8388                              tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8389                       ENDIF
    8390                    ENDIF
    8391 
    8392                 CASE ( 'rad_sw_cs_hr' )
    8393                    IF ( .NOT. ALLOCATED( rad_sw_cs_hr ) )  THEN
    8394                       ALLOCATE( rad_sw_cs_hr(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8395                    ENDIF
    8396                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    8397                    rad_sw_cs_hr(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =   &
    8398                            tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8399 
    8400                 CASE ( 'rad_sw_cs_hr_av' )
    8401                    IF ( .NOT. ALLOCATED( rad_sw_cs_hr_av ) )  THEN
    8402                       ALLOCATE( rad_sw_cs_hr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8403                    ENDIF
    8404                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    8405                    rad_sw_cs_hr_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
    8406                            tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8407 
    8408                 CASE ( 'rad_sw_hr' )
    8409                    IF ( .NOT. ALLOCATED( rad_sw_hr ) )  THEN
    8410                       ALLOCATE( rad_sw_hr(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8411                    ENDIF
    8412                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    8413                    rad_sw_hr(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =      &
    8414                            tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8415 
    8416                 CASE ( 'rad_sw_hr_av' )
    8417                    IF ( .NOT. ALLOCATED( rad_sw_hr_av ) )  THEN
    8418                       ALLOCATE( rad_sw_hr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    8419                    ENDIF
    8420                    IF ( k == 1 )  READ ( 13 )  tmp_3d
    8421                    rad_lw_hr_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =   &
    8422                            tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    8423 
    8424                CASE DEFAULT
    8425                   WRITE( message_string, * ) 'unknown variable named "',       &
    8426                                         TRIM( field_char ), '" found in',      &
    8427                                         '&data from prior run on PE ', myid
    8428                   CALL message( 'radiation_read_restart_data', 'PA0302', 1, 2, &
    8429                                 0, 6, 0 )
    8430 
    8431             END SELECT
    8432 
    8433          ENDDO
    8434 
    8435          READ ( 13 )  field_char
    8436 
    8437       ENDDO
    8438    ENDIF
    8439 
    8440  END SUBROUTINE radiation_read_restart_data
     8171
     8172    LOGICAL, INTENT(OUT)  :: found
     8173
     8174    REAL(wp), DIMENSION(nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) :: tmp_2d   !<
     8175
     8176    REAL(wp), DIMENSION(nzb:nzt+1,nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) :: tmp_3d   !<
     8177
     8178    REAL(wp), DIMENSION(0:0,nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) :: tmp_3d2   !<
     8179
     8180
     8181    found = .TRUE.
     8182
     8183
     8184       SELECT CASE ( restart_string(1:length) )
     8185
     8186           CASE ( 'rad_net_av' )
     8187              IF ( .NOT. ALLOCATED( rad_net_av ) )  THEN
     8188                 ALLOCATE( rad_net_av(nysg:nyng,nxlg:nxrg) )
     8189              ENDIF 
     8190              IF ( k == 1 )  READ ( 13 )  tmp_2d
     8191              rad_net_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  =           &
     8192                            tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8193           CASE ( 'rad_lw_in' )
     8194              IF ( .NOT. ALLOCATED( rad_lw_in ) )  THEN
     8195                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8196                      radiation_scheme == 'constant')  THEN
     8197                    ALLOCATE( rad_lw_in(0:0,nysg:nyng,nxlg:nxrg) )
     8198                 ELSE
     8199                    ALLOCATE( rad_lw_in(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8200                 ENDIF
     8201              ENDIF 
     8202              IF ( k == 1 )  THEN
     8203                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8204                      radiation_scheme == 'constant')  THEN
     8205                    READ ( 13 )  tmp_3d2
     8206                    rad_lw_in(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =   &
     8207                       tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8208                 ELSE
     8209                    READ ( 13 )  tmp_3d
     8210                    rad_lw_in(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =     &
     8211                        tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8212                 ENDIF
     8213              ENDIF
     8214
     8215           CASE ( 'rad_lw_in_av' )
     8216              IF ( .NOT. ALLOCATED( rad_lw_in_av ) )  THEN
     8217                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8218                      radiation_scheme == 'constant')  THEN
     8219                    ALLOCATE( rad_lw_in_av(0:0,nysg:nyng,nxlg:nxrg) )
     8220                 ELSE
     8221                    ALLOCATE( rad_lw_in_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8222                 ENDIF
     8223              ENDIF 
     8224              IF ( k == 1 )  THEN
     8225                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8226                      radiation_scheme == 'constant')  THEN
     8227                    READ ( 13 )  tmp_3d2
     8228                    rad_lw_in_av(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
     8229                        tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8230                 ELSE
     8231                    READ ( 13 )  tmp_3d
     8232                    rad_lw_in_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =  &
     8233                        tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8234                 ENDIF
     8235              ENDIF
     8236
     8237           CASE ( 'rad_lw_out' )
     8238              IF ( .NOT. ALLOCATED( rad_lw_out ) )  THEN
     8239                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8240                      radiation_scheme == 'constant')  THEN
     8241                    ALLOCATE( rad_lw_out(0:0,nysg:nyng,nxlg:nxrg) )
     8242                 ELSE
     8243                    ALLOCATE( rad_lw_out(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8244                 ENDIF
     8245              ENDIF 
     8246              IF ( k == 1 )  THEN
     8247                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8248                      radiation_scheme == 'constant')  THEN
     8249                    READ ( 13 )  tmp_3d2
     8250                    rad_lw_out(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =  &
     8251                        tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8252                 ELSE
     8253                    READ ( 13 )  tmp_3d
     8254                    rad_lw_out(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =    &
     8255                        tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8256                 ENDIF
     8257              ENDIF
     8258
     8259           CASE ( 'rad_lw_out_av' )
     8260              IF ( .NOT. ALLOCATED( rad_lw_out_av ) )  THEN
     8261                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8262                      radiation_scheme == 'constant')  THEN
     8263                    ALLOCATE( rad_lw_out_av(0:0,nysg:nyng,nxlg:nxrg) )
     8264                 ELSE
     8265                    ALLOCATE( rad_lw_out_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8266                 ENDIF
     8267              ENDIF 
     8268              IF ( k == 1 )  THEN
     8269                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8270                      radiation_scheme == 'constant')  THEN
     8271                    READ ( 13 )  tmp_3d2
     8272                    rad_lw_out_av(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) &
     8273                       = tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8274                 ELSE
     8275                    READ ( 13 )  tmp_3d
     8276                    rad_lw_out_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
     8277                        tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8278                 ENDIF
     8279              ENDIF
     8280
     8281           CASE ( 'rad_lw_cs_hr' )
     8282              IF ( .NOT. ALLOCATED( rad_lw_cs_hr ) )  THEN
     8283                 ALLOCATE( rad_lw_cs_hr(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8284              ENDIF
     8285              IF ( k == 1 )  READ ( 13 )  tmp_3d
     8286              rad_lw_cs_hr(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =        &
     8287                      tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8288
     8289           CASE ( 'rad_lw_cs_hr_av' )
     8290              IF ( .NOT. ALLOCATED( rad_lw_cs_hr_av ) )  THEN
     8291                 ALLOCATE( rad_lw_cs_hr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8292              ENDIF
     8293              IF ( k == 1 )  READ ( 13 )  tmp_3d
     8294              rad_lw_cs_hr_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =     &
     8295                      tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8296
     8297           CASE ( 'rad_lw_hr' )
     8298              IF ( .NOT. ALLOCATED( rad_lw_hr ) )  THEN
     8299                 ALLOCATE( rad_lw_hr(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8300              ENDIF
     8301              IF ( k == 1 )  READ ( 13 )  tmp_3d
     8302              rad_lw_hr(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =           &
     8303                      tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8304
     8305           CASE ( 'rad_lw_hr_av' )
     8306              IF ( .NOT. ALLOCATED( rad_lw_hr_av ) )  THEN
     8307                 ALLOCATE( rad_lw_hr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8308              ENDIF
     8309              IF ( k == 1 )  READ ( 13 )  tmp_3d
     8310              rad_lw_hr_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =        &
     8311                      tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8312
     8313           CASE ( 'rad_sw_in' )
     8314              IF ( .NOT. ALLOCATED( rad_sw_in ) )  THEN
     8315                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8316                      radiation_scheme == 'constant')  THEN
     8317                    ALLOCATE( rad_sw_in(0:0,nysg:nyng,nxlg:nxrg) )
     8318                 ELSE
     8319                    ALLOCATE( rad_sw_in(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8320                 ENDIF
     8321              ENDIF 
     8322              IF ( k == 1 )  THEN
     8323                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8324                      radiation_scheme == 'constant')  THEN
     8325                    READ ( 13 )  tmp_3d2
     8326                    rad_sw_in(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =   &
     8327                        tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8328                 ELSE
     8329                    READ ( 13 )  tmp_3d
     8330                    rad_sw_in(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =     &
     8331                        tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8332                 ENDIF
     8333              ENDIF
     8334
     8335           CASE ( 'rad_sw_in_av' )
     8336              IF ( .NOT. ALLOCATED( rad_sw_in_av ) )  THEN
     8337                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8338                      radiation_scheme == 'constant')  THEN
     8339                    ALLOCATE( rad_sw_in_av(0:0,nysg:nyng,nxlg:nxrg) )
     8340                 ELSE
     8341                    ALLOCATE( rad_sw_in_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8342                 ENDIF
     8343              ENDIF 
     8344              IF ( k == 1 )  THEN
     8345                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8346                      radiation_scheme == 'constant')  THEN
     8347                    READ ( 13 )  tmp_3d2
     8348                    rad_sw_in_av(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =&
     8349                        tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8350                 ELSE
     8351                    READ ( 13 )  tmp_3d
     8352                    rad_sw_in_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =  &
     8353                        tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8354                 ENDIF
     8355              ENDIF
     8356
     8357           CASE ( 'rad_sw_out' )
     8358              IF ( .NOT. ALLOCATED( rad_sw_out ) )  THEN
     8359                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8360                      radiation_scheme == 'constant')  THEN
     8361                    ALLOCATE( rad_sw_out(0:0,nysg:nyng,nxlg:nxrg) )
     8362                 ELSE
     8363                    ALLOCATE( rad_sw_out(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8364                 ENDIF
     8365              ENDIF 
     8366              IF ( k == 1 )  THEN
     8367                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8368                      radiation_scheme == 'constant')  THEN
     8369                    READ ( 13 )  tmp_3d2
     8370                    rad_sw_out(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =  &
     8371                        tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8372                 ELSE
     8373                    READ ( 13 )  tmp_3d
     8374                    rad_sw_out(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =    &
     8375                        tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8376                 ENDIF
     8377              ENDIF
     8378
     8379           CASE ( 'rad_sw_out_av' )
     8380              IF ( .NOT. ALLOCATED( rad_sw_out_av ) )  THEN
     8381                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8382                      radiation_scheme == 'constant')  THEN
     8383                    ALLOCATE( rad_sw_out_av(0:0,nysg:nyng,nxlg:nxrg) )
     8384                 ELSE
     8385                    ALLOCATE( rad_sw_out_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8386                 ENDIF
     8387              ENDIF 
     8388              IF ( k == 1 )  THEN
     8389                 IF ( radiation_scheme == 'clear-sky'  .OR.                    &
     8390                      radiation_scheme == 'constant')  THEN
     8391                    READ ( 13 )  tmp_3d2
     8392                    rad_sw_out_av(0:0,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) &
     8393                       = tmp_3d2(0:0,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8394                 ELSE
     8395                    READ ( 13 )  tmp_3d
     8396                    rad_sw_out_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
     8397                        tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8398                 ENDIF
     8399              ENDIF
     8400
     8401           CASE ( 'rad_sw_cs_hr' )
     8402              IF ( .NOT. ALLOCATED( rad_sw_cs_hr ) )  THEN
     8403                 ALLOCATE( rad_sw_cs_hr(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8404              ENDIF
     8405              IF ( k == 1 )  READ ( 13 )  tmp_3d
     8406              rad_sw_cs_hr(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =        &
     8407                      tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8408
     8409           CASE ( 'rad_sw_cs_hr_av' )
     8410              IF ( .NOT. ALLOCATED( rad_sw_cs_hr_av ) )  THEN
     8411                 ALLOCATE( rad_sw_cs_hr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8412              ENDIF
     8413              IF ( k == 1 )  READ ( 13 )  tmp_3d
     8414              rad_sw_cs_hr_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =     &
     8415                      tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8416
     8417           CASE ( 'rad_sw_hr' )
     8418              IF ( .NOT. ALLOCATED( rad_sw_hr ) )  THEN
     8419                 ALLOCATE( rad_sw_hr(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8420              ENDIF
     8421              IF ( k == 1 )  READ ( 13 )  tmp_3d
     8422              rad_sw_hr(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =           &
     8423                      tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8424
     8425           CASE ( 'rad_sw_hr_av' )
     8426              IF ( .NOT. ALLOCATED( rad_sw_hr_av ) )  THEN
     8427                 ALLOCATE( rad_sw_hr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     8428              ENDIF
     8429              IF ( k == 1 )  READ ( 13 )  tmp_3d
     8430              rad_lw_hr_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =        &
     8431                      tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     8432
     8433           CASE DEFAULT
     8434
     8435              found = .FALSE.
     8436
     8437       END SELECT
     8438
     8439
     8440 END SUBROUTINE radiation_rrd_local
    84418441
    84428442
Note: See TracChangeset for help on using the changeset viewer.