Changeset 2894 for palm/trunk/SOURCE/urban_surface_mod.f90
- Timestamp:
- Mar 15, 2018 9:17:58 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/urban_surface_mod.f90
r2805 r2894 26 26 ! ----------------- 27 27 ! $Id$ 28 ! Calculations of the index range of the subdomain on file which overlaps with 29 ! the current subdomain are already done in read_restart_data_mod, 30 ! usm_read/write_restart_data have been renamed to usm_r/wrd_local, variable 31 ! named found has been introduced for checking if restart data was found, 32 ! reading of restart strings has been moved completely to 33 ! read_restart_data_mod, usm_rrd_local is already inside the overlap loop 34 ! programmed in read_restart_data_mod, SAVE attribute added where necessary, 35 ! deallocation and allocation of some arrays have been changed to take care of 36 ! different restart files that can be opened (index i), the marker *** end usm 37 ! *** is not necessary anymore, strings and their respective lengths are 38 ! written out and read now in case of restart runs to get rid of prescribed 39 ! character lengths 40 ! 41 ! 2805 2018-02-14 17:00:09Z suehring 28 42 ! Initialization of resistances. 29 43 ! … … 711 725 END INTERFACE usm_temperature_near_surface 712 726 713 INTERFACE usm_r ead_restart_data714 MODULE PROCEDURE usm_r ead_restart_data715 END INTERFACE usm_r ead_restart_data727 INTERFACE usm_rrd_local 728 MODULE PROCEDURE usm_rrd_local 729 END INTERFACE usm_rrd_local 716 730 717 731 INTERFACE usm_surface_energy_balance … … 723 737 END INTERFACE usm_swap_timelevel 724 738 725 INTERFACE usm_wr ite_restart_data726 MODULE PROCEDURE usm_wr ite_restart_data727 END INTERFACE usm_wr ite_restart_data739 INTERFACE usm_wrd_local 740 MODULE PROCEDURE usm_wrd_local 741 END INTERFACE usm_wrd_local 728 742 729 743 INTERFACE usm_allocate_surface … … 742 756 !-- Public functions 743 757 PUBLIC usm_boundary_condition, usm_check_parameters, usm_init_urban_surface,& 744 usm_r ead_restart_data,&758 usm_rrd_local, & 745 759 usm_surface_energy_balance, usm_material_heat_model, & 746 760 usm_swap_timelevel, usm_check_data_output, usm_average_3d_data, & 747 761 usm_data_output_3d, usm_define_netcdf_grid, usm_parin, & 748 usm_wr ite_restart_data, usm_allocate_surface762 usm_wrd_local, usm_allocate_surface 749 763 750 764 !-- Public parameters, constants and initial values … … 5196 5210 ! Description: 5197 5211 ! ------------ 5198 !> Soubroutine reads t_surf and t_wall data from restart file s5212 !> Soubroutine reads t_surf and t_wall data from restart file(s) 5199 5213 !kanani: Renamed this routine according to corresponging routines in PALM 5200 !kanani: Modified the routine to match r ead_var_list, from where usm_read_restart_data5214 !kanani: Modified the routine to match rrd_global, from where usm_rrd_local 5201 5215 ! shall be called in the future. This part has not been tested yet. (see virtual_flight_mod) 5202 5216 ! Also, I had some trouble with the allocation of t_surf, since this is a pointer. 5203 5217 ! So, I added some directives here. 5204 5218 !------------------------------------------------------------------------------! 5205 SUBROUTINE usm_read_restart_data( ii, & 5206 nxlfa, nxl_on_file, nxrfa, nxr_on_file, & 5207 nynfa, nyn_on_file, nysfa, nys_on_file, & 5208 offset_xa, offset_ya, overlap_count ) 5209 5210 5211 USE pegrid, & 5212 ONLY: numprocs_previous_run 5219 SUBROUTINE usm_rrd_local( i, k, nxlf, nxlc, nxl_on_file, nxrf, nxrc, & 5220 nxr_on_file, nynf, nync, nyn_on_file, nysf, nysc,& 5221 nys_on_file, found ) 5222 5223 5224 USE control_parameters, & 5225 ONLY: length, restart_string 5213 5226 5214 5227 IMPLICIT NONE 5215 5228 5216 5229 CHARACTER (LEN=1) :: dum !< dummy to create correct string for reading input variable 5217 CHARACTER (LEN=30) :: field_chr !< input variable5218 5230 5219 5231 INTEGER(iwp) :: l !< index variable for surface type 5220 INTEGER(iwp) :: i i!< running index over input files5221 INTEGER(iwp) :: k k!< running index over previous input files covering current local domain5232 INTEGER(iwp) :: i !< running index over input files 5233 INTEGER(iwp) :: k !< running index over previous input files covering current local domain 5222 5234 INTEGER(iwp) :: ns_h_on_file_usm !< number of horizontal surface elements (urban type) on file 5223 5235 INTEGER(iwp) :: nxlc !< index of left boundary on current subdomain … … 5226 5238 INTEGER(iwp) :: nxrc !< index of right boundary on current subdomain 5227 5239 INTEGER(iwp) :: nxrf !< index of right boundary on former subdomain 5228 INTEGER(iwp) :: nxr_on_file !< index of right boundary on former local domain 5240 INTEGER(iwp) :: nxr_on_file !< index of right boundary on former local domain 5229 5241 INTEGER(iwp) :: nync !< index of north boundary on current subdomain 5230 5242 INTEGER(iwp) :: nynf !< index of north boundary on former subdomain 5231 INTEGER(iwp) :: nyn_on_file !< index of nor ht boundary on former local domain5243 INTEGER(iwp) :: nyn_on_file !< index of north boundary on former local domain 5232 5244 INTEGER(iwp) :: nysc !< index of south boundary on current subdomain 5233 5245 INTEGER(iwp) :: nysf !< index of south boundary on former subdomain 5234 INTEGER(iwp) :: nys_on_file !< index of south boundary on former local domain 5235 INTEGER(iwp) :: overlap_count !< number of overlaps 5246 INTEGER(iwp) :: nys_on_file !< index of south boundary on former local domain 5236 5247 5237 5248 INTEGER(iwp) :: ns_v_on_file_usm(0:3) !< number of vertical surface elements (urban type) on file 5249 5250 INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE, SAVE :: start_index_on_file 5251 INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE, SAVE :: end_index_on_file 5252 5253 LOGICAL, INTENT(OUT) :: found 5254 5255 REAL(wp), DIMENSION(:), ALLOCATABLE, SAVE :: tmp_surf_h, tmp_surf_window_h, tmp_surf_green_h 5256 REAL(wp), DIMENSION(:,:), ALLOCATABLE, SAVE :: tmp_wall_h, tmp_window_h, tmp_green_h 5257 5258 TYPE( t_surf_vertical ), DIMENSION(0:3), SAVE :: tmp_surf_v, tmp_surf_window_v, tmp_surf_green_v 5259 TYPE( t_wall_vertical ), DIMENSION(0:3), SAVE :: tmp_wall_v, tmp_window_v, tmp_green_v 5260 5261 5262 found = .TRUE. 5263 5264 5265 SELECT CASE ( restart_string(1:length) ) 5266 5267 CASE ( 'ns_h_on_file_usm') 5268 IF ( k == 1 ) THEN 5269 READ ( 13 ) ns_h_on_file_usm 5270 5271 IF ( ALLOCATED( tmp_surf_h ) ) DEALLOCATE( tmp_surf_h ) 5272 IF ( ALLOCATED( tmp_wall_h ) ) DEALLOCATE( tmp_wall_h ) 5273 IF ( ALLOCATED( tmp_surf_window_h ) ) & 5274 DEALLOCATE( tmp_surf_window_h ) 5275 IF ( ALLOCATED( tmp_window_h) ) DEALLOCATE( tmp_window_h ) 5276 IF ( ALLOCATED( tmp_surf_green_h) ) & 5277 DEALLOCATE( tmp_surf_green_h ) 5278 IF ( ALLOCATED( tmp_green_h) ) DEALLOCATE( tmp_green_h ) 5238 5279 5239 INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) :: nxlfa !< 5240 INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) :: nxrfa !< 5241 INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) :: nynfa !< 5242 INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) :: nysfa !< 5243 INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) :: offset_xa !< 5244 INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) :: offset_ya !< 5280 ! 5281 !-- Allocate temporary arrays for reading data on file. Note, 5282 !-- the size of allocated surface elements do not necessarily 5283 !-- need to match the size of present surface elements on 5284 !-- current processor, as the number of processors between 5285 !-- restarts can change. 5286 ALLOCATE( tmp_surf_h(1:ns_h_on_file_usm) ) 5287 ALLOCATE( tmp_wall_h(nzb_wall:nzt_wall+1, & 5288 1:ns_h_on_file_usm) ) 5289 ALLOCATE( tmp_surf_window_h(1:ns_h_on_file_usm) ) 5290 ALLOCATE( tmp_window_h(nzb_wall:nzt_wall+1, & 5291 1:ns_h_on_file_usm) ) 5292 ALLOCATE( tmp_surf_green_h(1:ns_h_on_file_usm) ) 5293 ALLOCATE( tmp_green_h(nzb_wall:nzt_wall+1, & 5294 1:ns_h_on_file_usm) ) 5295 5296 ENDIF 5297 5298 CASE ( 'ns_v_on_file_usm') 5299 IF ( k == 1 ) THEN 5300 READ ( 13 ) ns_v_on_file_usm 5301 5302 DO l = 0, 3 5303 IF ( ALLOCATED( tmp_surf_v(l)%t ) ) & 5304 DEALLOCATE( tmp_surf_v(l)%t ) 5305 IF ( ALLOCATED( tmp_wall_v(l)%t ) ) & 5306 DEALLOCATE( tmp_wall_v(l)%t ) 5307 IF ( ALLOCATED( tmp_surf_window_v(l)%t ) ) & 5308 DEALLOCATE( tmp_surf_window_v(l)%t ) 5309 IF ( ALLOCATED( tmp_window_v(l)%t ) ) & 5310 DEALLOCATE( tmp_window_v(l)%t ) 5311 IF ( ALLOCATED( tmp_surf_green_v(l)%t ) ) & 5312 DEALLOCATE( tmp_surf_green_v(l)%t ) 5313 IF ( ALLOCATED( tmp_green_v(l)%t ) ) & 5314 DEALLOCATE( tmp_green_v(l)%t ) 5315 ENDDO 5316 5317 ! 5318 !-- Allocate temporary arrays for reading data on file. Note, 5319 !-- the size of allocated surface elements do not necessarily 5320 !-- need to match the size of present surface elements on 5321 !-- current processor, as the number of processors between 5322 !-- restarts can change. 5323 DO l = 0, 3 5324 ALLOCATE( tmp_surf_v(l)%t(1:ns_v_on_file_usm(l)) ) 5325 ALLOCATE( tmp_wall_v(l)%t(nzb_wall:nzt_wall+1, & 5326 1:ns_v_on_file_usm(l) ) ) 5327 ALLOCATE( tmp_surf_window_v(l)%t(1:ns_v_on_file_usm(l)) ) 5328 ALLOCATE( tmp_window_v(l)%t(nzb_wall:nzt_wall+1, & 5329 1:ns_v_on_file_usm(l) ) ) 5330 ALLOCATE( tmp_surf_green_v(l)%t(1:ns_v_on_file_usm(l)) ) 5331 ALLOCATE( tmp_green_v(l)%t(nzb_wall:nzt_wall+1, & 5332 1:ns_v_on_file_usm(l) ) ) 5333 ENDDO 5334 5335 ENDIF 5336 5337 CASE ( 'usm_start_index_h', 'usm_start_index_v' ) 5338 IF ( k == 1 ) THEN 5339 5340 IF ( ALLOCATED( start_index_on_file ) ) & 5341 DEALLOCATE( start_index_on_file ) 5342 5343 ALLOCATE ( start_index_on_file(nys_on_file:nyn_on_file, & 5344 nxl_on_file:nxr_on_file) ) 5345 5346 READ ( 13 ) start_index_on_file 5347 5348 ENDIF 5349 5350 CASE ( 'usm_end_index_h', 'usm_end_index_v' ) 5351 IF ( k == 1 ) THEN 5352 5353 IF ( ALLOCATED( end_index_on_file ) ) & 5354 DEALLOCATE( end_index_on_file ) 5355 5356 ALLOCATE ( end_index_on_file(nys_on_file:nyn_on_file, & 5357 nxl_on_file:nxr_on_file) ) 5358 5359 READ ( 13 ) end_index_on_file 5360 5361 ENDIF 5362 5363 CASE ( 't_surf_h' ) 5364 #if defined( __nopointer ) 5365 IF ( k == 1 ) THEN 5366 IF ( .NOT. ALLOCATED( t_surf_h ) ) & 5367 ALLOCATE( t_surf_h(1:surf_usm_h%ns) ) 5368 READ ( 13 ) tmp_surf_h 5369 ENDIF 5370 CALL surface_restore_elements( & 5371 t_surf_h, tmp_surf_h, & 5372 surf_usm_h%start_index, & 5373 start_index_on_file, & 5374 end_index_on_file, & 5375 nxlc, nysc, & 5376 nxlf, nxrf, nysf, nynf, & 5377 nys_on_file, nyn_on_file, & 5378 nxl_on_file,nxr_on_file ) 5379 #else 5380 IF ( k == 1 ) THEN 5381 IF ( .NOT. ALLOCATED( t_surf_h_1 ) ) & 5382 ALLOCATE( t_surf_h_1(1:surf_usm_h%ns) ) 5383 READ ( 13 ) tmp_surf_h 5384 ENDIF 5385 CALL surface_restore_elements( & 5386 t_surf_h_1, tmp_surf_h, & 5387 surf_usm_h%start_index, & 5388 start_index_on_file, & 5389 end_index_on_file, & 5390 nxlc, nysc, & 5391 nxlf, nxrf, nysf, nynf, & 5392 nys_on_file, nyn_on_file, & 5393 nxl_on_file,nxr_on_file ) 5394 #endif 5395 5396 CASE ( 't_surf_v(0)' ) 5397 #if defined( __nopointer ) 5398 IF ( k == 1 ) THEN 5399 IF ( .NOT. ALLOCATED( t_surf_v(0)%t ) ) & 5400 ALLOCATE( t_surf_v(0)%t(1:surf_usm_v(0)%ns) ) 5401 READ ( 13 ) tmp_surf_v(0)%t 5402 ENDIF 5403 CALL surface_restore_elements( & 5404 t_surf_v(0)%t, tmp_surf_v(0)%t, & 5405 surf_usm_v(0)%start_index, & 5406 start_index_on_file, & 5407 end_index_on_file, & 5408 nxlc, nysc, & 5409 nxlf, nxrf, nysf, nynf, & 5410 nys_on_file, nyn_on_file, & 5411 nxl_on_file,nxr_on_file ) 5412 #else 5413 IF ( k == 1 ) THEN 5414 IF ( .NOT. ALLOCATED( t_surf_v_1(0)%t ) ) & 5415 ALLOCATE( t_surf_v_1(0)%t(1:surf_usm_v(0)%ns) ) 5416 READ ( 13 ) tmp_surf_v(0)%t 5417 ENDIF 5418 CALL surface_restore_elements( & 5419 t_surf_v_1(0)%t, tmp_surf_v(0)%t, & 5420 surf_usm_v(0)%start_index, & 5421 start_index_on_file, & 5422 end_index_on_file, & 5423 nxlc, nysc, & 5424 nxlf, nxrf, nysf, nynf, & 5425 nys_on_file, nyn_on_file, & 5426 nxl_on_file,nxr_on_file ) 5427 #endif 5428 5429 CASE ( 't_surf_v(1)' ) 5430 #if defined( __nopointer ) 5431 IF ( k == 1 ) THEN 5432 IF ( .NOT. ALLOCATED( t_surf_v(1)%t ) ) & 5433 ALLOCATE( t_surf_v(1)%t(1:surf_usm_v(1)%ns) ) 5434 READ ( 13 ) tmp_surf_v(1)%t 5435 ENDIF 5436 CALL surface_restore_elements( & 5437 t_surf_v(1)%t, tmp_surf_v(1)%t, & 5438 surf_usm_v(1)%start_index, & 5439 start_index_on_file, & 5440 end_index_on_file, & 5441 nxlc, nysc, & 5442 nxlf, nxrf, nysf, nynf, & 5443 nys_on_file, nyn_on_file, & 5444 nxl_on_file,nxr_on_file ) 5445 #else 5446 IF ( k == 1 ) THEN 5447 IF ( .NOT. ALLOCATED( t_surf_v_1(1)%t ) ) & 5448 ALLOCATE( t_surf_v_1(1)%t(1:surf_usm_v(1)%ns) ) 5449 READ ( 13 ) tmp_surf_v(1)%t 5450 ENDIF 5451 CALL surface_restore_elements( & 5452 t_surf_v_1(1)%t, tmp_surf_v(1)%t, & 5453 surf_usm_v(1)%start_index, & 5454 start_index_on_file, & 5455 end_index_on_file, & 5456 nxlc, nysc, & 5457 nxlf, nxrf, nysf, nynf, & 5458 nys_on_file, nyn_on_file, & 5459 nxl_on_file,nxr_on_file ) 5460 #endif 5461 5462 CASE ( 't_surf_v(2)' ) 5463 #if defined( __nopointer ) 5464 IF ( k == 1 ) THEN 5465 IF ( .NOT. ALLOCATED( t_surf_v(2)%t ) ) & 5466 ALLOCATE( t_surf_v(2)%t(1:surf_usm_v(2)%ns) ) 5467 READ ( 13 ) tmp_surf_v(2)%t 5468 ENDIF 5469 CALL surface_restore_elements( & 5470 t_surf_v(2)%t, tmp_surf_v(2)%t, & 5471 surf_usm_v(2)%start_index, & 5472 start_index_on_file, & 5473 end_index_on_file, & 5474 nxlc, nysc, & 5475 nxlf, nxrf, nysf, nynf, & 5476 nys_on_file, nyn_on_file, & 5477 nxl_on_file,nxr_on_file ) 5478 #else 5479 IF ( k == 1 ) THEN 5480 IF ( .NOT. ALLOCATED( t_surf_v_1(2)%t ) ) & 5481 ALLOCATE( t_surf_v_1(2)%t(1:surf_usm_v(2)%ns) ) 5482 READ ( 13 ) tmp_surf_v(2)%t 5483 ENDIF 5484 CALL surface_restore_elements( & 5485 t_surf_v_1(2)%t, tmp_surf_v(2)%t, & 5486 surf_usm_v(2)%start_index, & 5487 start_index_on_file, & 5488 end_index_on_file, & 5489 nxlc, nysc, & 5490 nxlf, nxrf, nysf, nynf, & 5491 nys_on_file, nyn_on_file, & 5492 nxl_on_file,nxr_on_file ) 5493 #endif 5494 5495 CASE ( 't_surf_v(3)' ) 5496 #if defined( __nopointer ) 5497 IF ( k == 1 ) THEN 5498 IF ( .NOT. ALLOCATED( t_surf_v(3)%t ) ) & 5499 ALLOCATE( t_surf_v(3)%t(1:surf_usm_v(3)%ns) ) 5500 READ ( 13 ) tmp_surf_v(3)%t 5501 ENDIF 5502 CALL surface_restore_elements( & 5503 t_surf_v(3)%t, tmp_surf_v(3)%t, & 5504 surf_usm_v(3)%start_index, & 5505 start_index_on_file, & 5506 end_index_on_file, & 5507 nxlc, nysc, & 5508 nxlf, nxrf, nysf, nynf, & 5509 nys_on_file, nyn_on_file, & 5510 nxl_on_file,nxr_on_file ) 5511 #else 5512 IF ( k == 1 ) THEN 5513 IF ( .NOT. ALLOCATED( t_surf_v_1(3)%t ) ) & 5514 ALLOCATE( t_surf_v_1(3)%t(1:surf_usm_v(3)%ns) ) 5515 READ ( 13 ) tmp_surf_v(3)%t 5516 ENDIF 5517 CALL surface_restore_elements( & 5518 t_surf_v_1(3)%t, tmp_surf_v(3)%t, & 5519 surf_usm_v(3)%start_index, & 5520 start_index_on_file, & 5521 end_index_on_file, & 5522 nxlc, nysc, & 5523 nxlf, nxrf, nysf, nynf, & 5524 nys_on_file, nyn_on_file, & 5525 nxl_on_file,nxr_on_file ) 5526 #endif 5527 CASE ( 't_surf_green_h' ) 5528 #if defined( __nopointer ) 5529 IF ( k == 1 ) THEN 5530 IF ( .NOT. ALLOCATED( t_surf_green_h ) ) & 5531 ALLOCATE( t_surf_green_h(1:surf_usm_h%ns) ) 5532 READ ( 13 ) tmp_surf_green_h 5533 ENDIF 5534 CALL surface_restore_elements( & 5535 t_surf_green_h, tmp_surf_green_h, & 5536 surf_usm_h%start_index, & 5537 start_index_on_file, & 5538 end_index_on_file, & 5539 nxlc, nysc, & 5540 nxlf, nxrf, nysf, nynf, & 5541 nys_on_file, nyn_on_file, & 5542 nxl_on_file,nxr_on_file ) 5543 #else 5544 IF ( k == 1 ) THEN 5545 IF ( .NOT. ALLOCATED( t_surf_green_h_1 ) ) & 5546 ALLOCATE( t_surf_green_h_1(1:surf_usm_h%ns) ) 5547 READ ( 13 ) tmp_surf_green_h 5548 ENDIF 5549 CALL surface_restore_elements( & 5550 t_surf_green_h_1, tmp_surf_green_h, & 5551 surf_usm_h%start_index, & 5552 start_index_on_file, & 5553 end_index_on_file, & 5554 nxlc, nysc, & 5555 nxlf, nxrf, nysf, nynf, & 5556 nys_on_file, nyn_on_file, & 5557 nxl_on_file,nxr_on_file ) 5558 #endif 5559 5560 CASE ( 't_surf_green_v(0)' ) 5561 #if defined( __nopointer ) 5562 IF ( k == 1 ) THEN 5563 IF ( .NOT. ALLOCATED( t_surf_green_v(0)%t ) ) & 5564 ALLOCATE( t_surf_green_v(0)%t(1:surf_usm_v(0)%ns) ) 5565 READ ( 13 ) tmp_surf_green_v(0)%t 5566 ENDIF 5567 CALL surface_restore_elements( & 5568 t_surf_green_v(0)%t, & 5569 tmp_surf_green_v(0)%t, & 5570 surf_usm_v(0)%start_index, & 5571 start_index_on_file, & 5572 end_index_on_file, & 5573 nxlc, nysc, & 5574 nxlf, nxrf, nysf, nynf, & 5575 nys_on_file, nyn_on_file, & 5576 nxl_on_file,nxr_on_file ) 5577 #else 5578 IF ( k == 1 ) THEN 5579 IF ( .NOT. ALLOCATED( t_surf_green_v_1(0)%t ) ) & 5580 ALLOCATE( t_surf_green_v_1(0)%t(1:surf_usm_v(0)%ns) ) 5581 READ ( 13 ) tmp_surf_green_v(0)%t 5582 ENDIF 5583 CALL surface_restore_elements( & 5584 t_surf_green_v_1(0)%t, & 5585 tmp_surf_green_v(0)%t, & 5586 surf_usm_v(0)%start_index, & 5587 start_index_on_file, & 5588 end_index_on_file, & 5589 nxlc, nysc, & 5590 nxlf, nxrf, nysf, nynf, & 5591 nys_on_file, nyn_on_file, & 5592 nxl_on_file,nxr_on_file ) 5593 #endif 5594 5595 CASE ( 't_surf_green_v(1)' ) 5596 #if defined( __nopointer ) 5597 IF ( k == 1 ) THEN 5598 IF ( .NOT. ALLOCATED( t_surf_green_v(1)%t ) ) & 5599 ALLOCATE( t_surf_green_v(1)%t(1:surf_usm_v(1)%ns) ) 5600 READ ( 13 ) tmp_surf_green_v(1)%t 5601 ENDIF 5602 CALL surface_restore_elements( & 5603 t_surf_green_v(1)%t, & 5604 tmp_surf_green_v(1)%t, & 5605 surf_usm_v(1)%start_index, & 5606 start_index_on_file, & 5607 end_index_on_file, & 5608 nxlc, nysc, & 5609 nxlf, nxrf, nysf, nynf, & 5610 nys_on_file, nyn_on_file, & 5611 nxl_on_file,nxr_on_file ) 5612 #else 5613 IF ( k == 1 ) THEN 5614 IF ( .NOT. ALLOCATED( t_surf_green_v_1(1)%t ) ) & 5615 ALLOCATE( t_surf_green_v_1(1)%t(1:surf_usm_v(1)%ns) ) 5616 READ ( 13 ) tmp_surf_green_v(1)%t 5617 ENDIF 5618 CALL surface_restore_elements( & 5619 t_surf_green_v_1(1)%t, & 5620 tmp_surf_green_v(1)%t, & 5621 surf_usm_v(1)%start_index, & 5622 start_index_on_file, & 5623 end_index_on_file, & 5624 nxlc, nysc, & 5625 nxlf, nxrf, nysf, nynf, & 5626 nys_on_file, nyn_on_file, & 5627 nxl_on_file,nxr_on_file ) 5628 #endif 5629 5630 CASE ( 't_surf_green_v(2)' ) 5631 #if defined( __nopointer ) 5632 IF ( k == 1 ) THEN 5633 IF ( .NOT. ALLOCATED( t_surf_green_v(2)%t ) ) & 5634 ALLOCATE( t_surf_green_v(2)%t(1:surf_usm_v(2)%ns) ) 5635 READ ( 13 ) tmp_surf_green_v(2)%t 5636 ENDIF 5637 CALL surface_restore_elements( & 5638 t_surf_green_v(2)%t, & 5639 tmp_surf_green_v(2)%t, & 5640 surf_usm_v(2)%start_index, & 5641 start_index_on_file, & 5642 end_index_on_file, & 5643 nxlc, nysc, & 5644 nxlf, nxrf, nysf, nynf, & 5645 nys_on_file, nyn_on_file, & 5646 nxl_on_file,nxr_on_file ) 5647 #else 5648 IF ( k == 1 ) THEN 5649 IF ( .NOT. ALLOCATED( t_surf_green_v_1(2)%t ) ) & 5650 ALLOCATE( t_surf_green_v_1(2)%t(1:surf_usm_v(2)%ns) ) 5651 READ ( 13 ) tmp_surf_green_v(2)%t 5652 ENDIF 5653 CALL surface_restore_elements( & 5654 t_surf_green_v_1(2)%t, & 5655 tmp_surf_green_v(2)%t, & 5656 surf_usm_v(2)%start_index, & 5657 start_index_on_file, & 5658 end_index_on_file, & 5659 nxlc, nysc, & 5660 nxlf, nxrf, nysf, nynf, & 5661 nys_on_file, nyn_on_file, & 5662 nxl_on_file,nxr_on_file ) 5663 #endif 5664 5665 CASE ( 't_surf_green_v(3)' ) 5666 #if defined( __nopointer ) 5667 IF ( k == 1 ) THEN 5668 IF ( .NOT. ALLOCATED( t_surf_green_v(3)%t ) ) & 5669 ALLOCATE( t_surf_green_v(3)%t(1:surf_usm_v(3)%ns) ) 5670 READ ( 13 ) tmp_surf_green_v(3)%t 5671 ENDIF 5672 CALL surface_restore_elements( & 5673 t_surf_green_v(3)%t, & 5674 tmp_surf_green_v(3)%t, & 5675 surf_usm_v(3)%start_index, & 5676 start_index_on_file, & 5677 end_index_on_file, & 5678 nxlc, nysc, & 5679 nxlf, nxrf, nysf, nynf, & 5680 nys_on_file, nyn_on_file, & 5681 nxl_on_file,nxr_on_file ) 5682 #else 5683 IF ( k == 1 ) THEN 5684 IF ( .NOT. ALLOCATED( t_surf_green_v_1(3)%t ) ) & 5685 ALLOCATE( t_surf_green_v_1(3)%t(1:surf_usm_v(3)%ns) ) 5686 READ ( 13 ) tmp_surf_green_v(3)%t 5687 ENDIF 5688 CALL surface_restore_elements( & 5689 t_surf_green_v_1(3)%t, & 5690 tmp_surf_green_v(3)%t, & 5691 surf_usm_v(3)%start_index, & 5692 start_index_on_file, & 5693 end_index_on_file, & 5694 nxlc, nysc, & 5695 nxlf, nxrf, nysf, nynf, & 5696 nys_on_file, nyn_on_file, & 5697 nxl_on_file,nxr_on_file ) 5698 #endif 5699 CASE ( 't_surf_window_h' ) 5700 #if defined( __nopointer ) 5701 IF ( k == 1 ) THEN 5702 IF ( .NOT. ALLOCATED( t_surf_window_h ) ) & 5703 ALLOCATE( t_surf_window_h(1:surf_usm_h%ns) ) 5704 READ ( 13 ) tmp_surf_window_h 5705 ENDIF 5706 CALL surface_restore_elements( & 5707 t_surf_window_h, tmp_surf_window_h, & 5708 surf_usm_h%start_index, & 5709 start_index_on_file, & 5710 end_index_on_file, & 5711 nxlc, nysc, & 5712 nxlf, nxrf, nysf, nynf, & 5713 nys_on_file, nyn_on_file, & 5714 nxl_on_file,nxr_on_file ) 5715 #else 5716 IF ( k == 1 ) THEN 5717 IF ( .NOT. ALLOCATED( t_surf_window_h_1 ) ) & 5718 ALLOCATE( t_surf_window_h_1(1:surf_usm_h%ns) ) 5719 READ ( 13 ) tmp_surf_window_h 5720 ENDIF 5721 CALL surface_restore_elements( & 5722 t_surf_window_h_1, & 5723 tmp_surf_window_h, & 5724 surf_usm_h%start_index, & 5725 start_index_on_file, & 5726 end_index_on_file, & 5727 nxlc, nysc, & 5728 nxlf, nxrf, nysf, nynf, & 5729 nys_on_file, nyn_on_file, & 5730 nxl_on_file,nxr_on_file ) 5731 #endif 5732 5733 CASE ( 't_surf_window_v(0)' ) 5734 #if defined( __nopointer ) 5735 IF ( k == 1 ) THEN 5736 IF ( .NOT. ALLOCATED( t_surf_window_v(0)%t ) ) & 5737 ALLOCATE( t_surf_window_v(0)%t(1:surf_usm_v(0)%ns) ) 5738 READ ( 13 ) tmp_surf_window_v(0)%t 5739 ENDIF 5740 CALL surface_restore_elements( & 5741 t_surf_window_v(0)%t, & 5742 tmp_surf_window_v(0)%t, & 5743 surf_usm_v(0)%start_index, & 5744 start_index_on_file, & 5745 end_index_on_file, & 5746 nxlc, nysc, & 5747 nxlf, nxrf, nysf, nynf, & 5748 nys_on_file, nyn_on_file, & 5749 nxl_on_file,nxr_on_file ) 5750 #else 5751 IF ( k == 1 ) THEN 5752 IF ( .NOT. ALLOCATED( t_surf_window_v_1(0)%t ) ) & 5753 ALLOCATE( t_surf_window_v_1(0)%t(1:surf_usm_v(0)%ns) ) 5754 READ ( 13 ) tmp_surf_window_v(0)%t 5755 ENDIF 5756 CALL surface_restore_elements( & 5757 t_surf_window_v_1(0)%t, & 5758 tmp_surf_window_v(0)%t, & 5759 surf_usm_v(0)%start_index, & 5760 start_index_on_file, & 5761 end_index_on_file, & 5762 nxlc, nysc, & 5763 nxlf, nxrf, nysf, nynf, & 5764 nys_on_file, nyn_on_file, & 5765 nxl_on_file,nxr_on_file ) 5766 #endif 5767 5768 CASE ( 't_surf_window_v(1)' ) 5769 #if defined( __nopointer ) 5770 IF ( k == 1 ) THEN 5771 IF ( .NOT. ALLOCATED( t_surf_window_v(1)%t ) ) & 5772 ALLOCATE( t_surf_window_v(1)%t(1:surf_usm_v(1)%ns) ) 5773 READ ( 13 ) tmp_surf_window_v(1)%t 5774 ENDIF 5775 CALL surface_restore_elements( & 5776 t_surf_window_v(1)%t, & 5777 tmp_surf_window_v(1)%t, & 5778 surf_usm_v(1)%start_index, & 5779 start_index_on_file, & 5780 end_index_on_file, & 5781 nxlc, nysc, & 5782 nxlf, nxrf, nysf, nynf, & 5783 nys_on_file, nyn_on_file, & 5784 nxl_on_file,nxr_on_file ) 5785 #else 5786 IF ( k == 1 ) THEN 5787 IF ( .NOT. ALLOCATED( t_surf_window_v_1(1)%t ) ) & 5788 ALLOCATE( t_surf_window_v_1(1)%t(1:surf_usm_v(1)%ns) ) 5789 READ ( 13 ) tmp_surf_window_v(1)%t 5790 ENDIF 5791 CALL surface_restore_elements( & 5792 t_surf_window_v_1(1)%t, & 5793 tmp_surf_window_v(1)%t, & 5794 surf_usm_v(1)%start_index, & 5795 start_index_on_file, & 5796 end_index_on_file, & 5797 nxlc, nysc, & 5798 nxlf, nxrf, nysf, nynf, & 5799 nys_on_file, nyn_on_file, & 5800 nxl_on_file,nxr_on_file ) 5801 #endif 5802 5803 CASE ( 't_surf_window_v(2)' ) 5804 #if defined( __nopointer ) 5805 IF ( k == 1 ) THEN 5806 IF ( .NOT. ALLOCATED( t_surf_window_v(2)%t ) ) & 5807 ALLOCATE( t_surf_window_v(2)%t(1:surf_usm_v(2)%ns) ) 5808 READ ( 13 ) tmp_surf_window_v(2)%t 5809 ENDIF 5810 CALL surface_restore_elements( & 5811 t_surf_window_v(2)%t, & 5812 tmp_surf_window_v(2)%t, & 5813 surf_usm_v(2)%start_index, & 5814 start_index_on_file, & 5815 end_index_on_file, & 5816 nxlc, nysc, & 5817 nxlf, nxrf, nysf, nynf, & 5818 nys_on_file, nyn_on_file, & 5819 nxl_on_file,nxr_on_file ) 5820 #else 5821 IF ( k == 1 ) THEN 5822 IF ( .NOT. ALLOCATED( t_surf_window_v_1(2)%t ) ) & 5823 ALLOCATE( t_surf_window_v_1(2)%t(1:surf_usm_v(2)%ns) ) 5824 READ ( 13 ) tmp_surf_window_v(2)%t 5825 ENDIF 5826 CALL surface_restore_elements( & 5827 t_surf_window_v_1(2)%t, & 5828 tmp_surf_window_v(2)%t, & 5829 surf_usm_v(2)%start_index, & 5830 start_index_on_file, & 5831 end_index_on_file, & 5832 nxlc, nysc, & 5833 nxlf, nxrf, nysf, nynf, & 5834 nys_on_file, nyn_on_file, & 5835 nxl_on_file,nxr_on_file ) 5836 #endif 5837 5838 CASE ( 't_surf_window_v(3)' ) 5839 #if defined( __nopointer ) 5840 IF ( k == 1 ) THEN 5841 IF ( .NOT. ALLOCATED( t_surf_window_v(3)%t ) ) & 5842 ALLOCATE( t_surf_window_v(3)%t(1:surf_usm_v(3)%ns) ) 5843 READ ( 13 ) tmp_surf_window_v(3)%t 5844 ENDIF 5845 CALL surface_restore_elements( & 5846 t_surf_window_v(3)%t, & 5847 tmp_surf_window_v(3)%t, & 5848 surf_usm_v(3)%start_index, & 5849 start_index_on_file, & 5850 end_index_on_file, & 5851 nxlc, nysc, & 5852 nxlf, nxrf, nysf, nynf, & 5853 nys_on_file, nyn_on_file, & 5854 nxl_on_file,nxr_on_file ) 5855 #else 5856 IF ( k == 1 ) THEN 5857 IF ( .NOT. ALLOCATED( t_surf_window_v_1(3)%t ) ) & 5858 ALLOCATE( t_surf_window_v_1(3)%t(1:surf_usm_v(3)%ns) ) 5859 READ ( 13 ) tmp_surf_window_v(3)%t 5860 ENDIF 5861 CALL surface_restore_elements( & 5862 t_surf_window_v_1(3)%t, & 5863 tmp_surf_window_v(3)%t, & 5864 surf_usm_v(3)%start_index, & 5865 start_index_on_file, & 5866 end_index_on_file, & 5867 nxlc, nysc, & 5868 nxlf, nxrf, nysf, nynf, & 5869 nys_on_file, nyn_on_file, & 5870 nxl_on_file,nxr_on_file ) 5871 #endif 5872 CASE ( 't_wall_h' ) 5873 #if defined( __nopointer ) 5874 IF ( k == 1 ) THEN 5875 IF ( .NOT. ALLOCATED( t_wall_h ) ) & 5876 ALLOCATE( t_wall_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 5877 READ ( 13 ) tmp_wall_h 5878 ENDIF 5879 CALL surface_restore_elements( & 5880 t_wall_h, tmp_wall_h, & 5881 surf_usm_h%start_index, & 5882 start_index_on_file, & 5883 end_index_on_file, & 5884 nxlc, nysc, & 5885 nxlf, nxrf, nysf, nynf, & 5886 nys_on_file, nyn_on_file, & 5887 nxl_on_file,nxr_on_file ) 5888 #else 5889 IF ( k == 1 ) THEN 5890 IF ( .NOT. ALLOCATED( t_wall_h_1 ) ) & 5891 ALLOCATE( t_wall_h_1(nzb_wall:nzt_wall+1, & 5892 1:surf_usm_h%ns) ) 5893 READ ( 13 ) tmp_wall_h 5894 ENDIF 5895 CALL surface_restore_elements( & 5896 t_wall_h_1, tmp_wall_h, & 5897 surf_usm_h%start_index, & 5898 start_index_on_file, & 5899 end_index_on_file, & 5900 nxlc, nysc, & 5901 nxlf, nxrf, nysf, nynf, & 5902 nys_on_file, nyn_on_file, & 5903 nxl_on_file,nxr_on_file ) 5904 #endif 5905 CASE ( 't_wall_v(0)' ) 5906 #if defined( __nopointer ) 5907 IF ( k == 1 ) THEN 5908 IF ( .NOT. ALLOCATED( t_wall_v(0)%t ) ) & 5909 ALLOCATE( t_wall_v(0)%t(nzb_wall:nzt_wall+1, & 5910 1:surf_usm_v(0)%ns) ) 5911 READ ( 13 ) tmp_wall_v(0)%t 5912 ENDIF 5913 CALL surface_restore_elements( & 5914 t_wall_v(0)%t, tmp_wall_v(0)%t, & 5915 surf_usm_v(0)%start_index, & 5916 start_index_on_file, & 5917 end_index_on_file, & 5918 nxlc, nysc, & 5919 nxlf, nxrf, nysf, nynf, & 5920 nys_on_file, nyn_on_file, & 5921 nxl_on_file,nxr_on_file ) 5922 #else 5923 IF ( k == 1 ) THEN 5924 IF ( .NOT. ALLOCATED( t_wall_v_1(0)%t ) ) & 5925 ALLOCATE( t_wall_v_1(0)%t(nzb_wall:nzt_wall+1, & 5926 1:surf_usm_v(0)%ns) ) 5927 READ ( 13 ) tmp_wall_v(0)%t 5928 ENDIF 5929 CALL surface_restore_elements( & 5930 t_wall_v_1(0)%t, tmp_wall_v(0)%t, & 5931 surf_usm_v(0)%start_index, & 5932 start_index_on_file, & 5933 end_index_on_file, & 5934 nxlc, nysc, & 5935 nxlf, nxrf, nysf, nynf, & 5936 nys_on_file, nyn_on_file, & 5937 nxl_on_file,nxr_on_file ) 5938 #endif 5939 CASE ( 't_wall_v(1)' ) 5940 #if defined( __nopointer ) 5941 IF ( k == 1 ) THEN 5942 IF ( .NOT. ALLOCATED( t_wall_v(1)%t ) ) & 5943 ALLOCATE( t_wall_v(1)%t(nzb_wall:nzt_wall+1, & 5944 1:surf_usm_v(1)%ns) ) 5945 READ ( 13 ) tmp_wall_v(1)%t 5946 ENDIF 5947 CALL surface_restore_elements( & 5948 t_wall_v(1)%t, tmp_wall_v(1)%t, & 5949 surf_usm_v(1)%start_index, & 5950 start_index_on_file, & 5951 end_index_on_file , & 5952 nxlc, nysc, & 5953 nys_on_file, nyn_on_file, & 5954 nxl_on_file, nxr_on_file ) 5955 #else 5956 IF ( k == 1 ) THEN 5957 IF ( .NOT. ALLOCATED( t_wall_v_1(1)%t ) ) & 5958 ALLOCATE( t_wall_v_1(1)%t(nzb_wall:nzt_wall+1, & 5959 1:surf_usm_v(1)%ns) ) 5960 READ ( 13 ) tmp_wall_v(1)%t 5961 ENDIF 5962 CALL surface_restore_elements( & 5963 t_wall_v_1(1)%t, tmp_wall_v(1)%t, & 5964 surf_usm_v(1)%start_index, & 5965 start_index_on_file, & 5966 end_index_on_file, & 5967 nxlc, nysc, & 5968 nxlf, nxrf, nysf, nynf, & 5969 nys_on_file, nyn_on_file, & 5970 nxl_on_file,nxr_on_file ) 5971 #endif 5972 CASE ( 't_wall_v(2)' ) 5973 #if defined( __nopointer ) 5974 IF ( k == 1 ) THEN 5975 IF ( .NOT. ALLOCATED( t_wall_v(2)%t ) ) & 5976 ALLOCATE( t_wall_v(2)%t(nzb_wall:nzt_wall+1, & 5977 1:surf_usm_v(2)%ns) ) 5978 READ ( 13 ) tmp_wall_v(2)%t 5979 ENDIF 5980 CALL surface_restore_elements( & 5981 t_wall_v(2)%t, tmp_wall_v(2)%t, & 5982 surf_usm_v(2)%start_index, & 5983 start_index_on_file, & 5984 end_index_on_file, & 5985 nxlc, nysc, & 5986 nxlf, nxrf, nysf, nynf, & 5987 nys_on_file, nyn_on_file, & 5988 nxl_on_file,nxr_on_file ) 5989 #else 5990 IF ( k == 1 ) THEN 5991 IF ( .NOT. ALLOCATED( t_wall_v_1(2)%t ) ) & 5992 ALLOCATE( t_wall_v_1(2)%t(nzb_wall:nzt_wall+1, & 5993 1:surf_usm_v(2)%ns) ) 5994 READ ( 13 ) tmp_wall_v(2)%t 5995 ENDIF 5996 CALL surface_restore_elements( & 5997 t_wall_v_1(2)%t, tmp_wall_v(2)%t, & 5998 surf_usm_v(2)%start_index, & 5999 start_index_on_file, & 6000 end_index_on_file , & 6001 nxlc, nysc, & 6002 nxlf, nxrf, nysf, nynf, & 6003 nys_on_file, nyn_on_file, & 6004 nxl_on_file,nxr_on_file ) 6005 #endif 6006 CASE ( 't_wall_v(3)' ) 6007 #if defined( __nopointer ) 6008 IF ( k == 1 ) THEN 6009 IF ( .NOT. ALLOCATED( t_wall_v(3)%t ) ) & 6010 ALLOCATE( t_wall_v(3)%t(nzb_wall:nzt_wall+1, & 6011 1:surf_usm_v(3)%ns) ) 6012 READ ( 13 ) tmp_wall_v(3)%t 6013 ENDIF 6014 CALL surface_restore_elements( & 6015 t_wall_v(3)%t, tmp_wall_v(3)%t, & 6016 surf_usm_v(3)%start_index, & 6017 start_index_on_file, & 6018 end_index_on_file, & 6019 nxlc, nysc, & 6020 nxlf, nxrf, nysf, nynf, & 6021 nys_on_file, nyn_on_file, & 6022 nxl_on_file,nxr_on_file ) 6023 #else 6024 IF ( k == 1 ) THEN 6025 IF ( .NOT. ALLOCATED( t_wall_v_1(3)%t ) ) & 6026 ALLOCATE( t_wall_v_1(3)%t(nzb_wall:nzt_wall+1, & 6027 1:surf_usm_v(3)%ns) ) 6028 READ ( 13 ) tmp_wall_v(3)%t 6029 ENDIF 6030 CALL surface_restore_elements( & 6031 t_wall_v_1(3)%t, tmp_wall_v(3)%t, & 6032 surf_usm_v(3)%start_index, & 6033 start_index_on_file, & 6034 end_index_on_file, & 6035 nxlc, nysc, & 6036 nxlf, nxrf, nysf, nynf, & 6037 nys_on_file, nyn_on_file, & 6038 nxl_on_file,nxr_on_file ) 6039 #endif 6040 CASE ( 't_green_h' ) 6041 #if defined( __nopointer ) 6042 IF ( k == 1 ) THEN 6043 IF ( .NOT. ALLOCATED( t_green_h ) ) & 6044 ALLOCATE( t_green_h(nzb_wall:nzt_wall+1, & 6045 1:surf_usm_h%ns) ) 6046 READ ( 13 ) tmp_green_h 6047 ENDIF 6048 CALL surface_restore_elements( & 6049 t_green_h, tmp_green_h, & 6050 surf_usm_h%start_index, & 6051 start_index_on_file, & 6052 end_index_on_file, & 6053 nxlc, nysc, & 6054 nxlf, nxrf, nysf, nynf, & 6055 nys_on_file, nyn_on_file, & 6056 nxl_on_file,nxr_on_file ) 6057 #else 6058 IF ( k == 1 ) THEN 6059 IF ( .NOT. ALLOCATED( t_green_h_1 ) ) & 6060 ALLOCATE( t_green_h_1(nzb_wall:nzt_wall+1, & 6061 1:surf_usm_h%ns) ) 6062 READ ( 13 ) tmp_green_h 6063 ENDIF 6064 CALL surface_restore_elements( & 6065 t_green_h_1, tmp_green_h, & 6066 surf_usm_h%start_index, & 6067 start_index_on_file, & 6068 end_index_on_file, & 6069 nxlc, nysc, & 6070 nxlf, nxrf, nysf, nynf, & 6071 nys_on_file, nyn_on_file, & 6072 nxl_on_file,nxr_on_file ) 6073 #endif 6074 CASE ( 't_green_v(0)' ) 6075 #if defined( __nopointer ) 6076 IF ( k == 1 ) THEN 6077 IF ( .NOT. ALLOCATED( t_green_v(0)%t ) ) & 6078 ALLOCATE( t_green_v(0)%t(nzb_wall:nzt_wall+1, & 6079 1:surf_usm_v(0)%ns) ) 6080 READ ( 13 ) tmp_green_v(0)%t 6081 ENDIF 6082 CALL surface_restore_elements( & 6083 t_green_v(0)%t, tmp_green_v(0)%t, & 6084 surf_usm_v(0)%start_index, & 6085 start_index_on_file, & 6086 end_index_on_file, & 6087 nxlc, nysc, & 6088 nxlf, nxrf, nysf, nynf, & 6089 nys_on_file, nyn_on_file, & 6090 nxl_on_file,nxr_on_file ) 6091 #else 6092 IF ( k == 1 ) THEN 6093 IF ( .NOT. ALLOCATED( t_green_v_1(0)%t ) ) & 6094 ALLOCATE( t_green_v_1(0)%t(nzb_wall:nzt_wall+1, & 6095 1:surf_usm_v(0)%ns) ) 6096 READ ( 13 ) tmp_green_v(0)%t 6097 ENDIF 6098 CALL surface_restore_elements( & 6099 t_green_v_1(0)%t, tmp_green_v(0)%t, & 6100 surf_usm_v(0)%start_index, & 6101 start_index_on_file, & 6102 end_index_on_file, & 6103 nxlc, nysc, & 6104 nxlf, nxrf, nysf, nynf, & 6105 nys_on_file, nyn_on_file, & 6106 nxl_on_file,nxr_on_file ) 6107 #endif 6108 CASE ( 't_green_v(1)' ) 6109 #if defined( __nopointer ) 6110 IF ( k == 1 ) THEN 6111 IF ( .NOT. ALLOCATED( t_green_v(1)%t ) ) & 6112 ALLOCATE( t_green_v(1)%t(nzb_wall:nzt_wall+1, & 6113 1:surf_usm_v(1)%ns) ) 6114 READ ( 13 ) tmp_green_v(1)%t 6115 ENDIF 6116 CALL surface_restore_elements( & 6117 t_green_v(1)%t, tmp_green_v(1)%t, & 6118 surf_usm_v(1)%start_index, & 6119 start_index_on_file, & 6120 end_index_on_file , & 6121 nxlc, nysc, & 6122 nys_on_file, nyn_on_file, & 6123 nxl_on_file,nxr_on_file ) 6124 #else 6125 IF ( k == 1 ) THEN 6126 IF ( .NOT. ALLOCATED( t_green_v_1(1)%t ) ) & 6127 ALLOCATE( t_green_v_1(1)%t(nzb_wall:nzt_wall+1, & 6128 1:surf_usm_v(1)%ns) ) 6129 READ ( 13 ) tmp_green_v(1)%t 6130 ENDIF 6131 CALL surface_restore_elements( & 6132 t_green_v_1(1)%t, tmp_green_v(1)%t, & 6133 surf_usm_v(1)%start_index, & 6134 start_index_on_file, & 6135 end_index_on_file, & 6136 nxlc, nysc, & 6137 nxlf, nxrf, nysf, nynf, & 6138 nys_on_file, nyn_on_file, & 6139 nxl_on_file,nxr_on_file ) 6140 #endif 6141 CASE ( 't_green_v(2)' ) 6142 #if defined( __nopointer ) 6143 IF ( k == 1 ) THEN 6144 IF ( .NOT. ALLOCATED( t_green_v(2)%t ) ) & 6145 ALLOCATE( t_green_v(2)%t(nzb_wall:nzt_wall+1, & 6146 1:surf_usm_v(2)%ns) ) 6147 READ ( 13 ) tmp_green_v(2)%t 6148 ENDIF 6149 CALL surface_restore_elements( & 6150 t_green_v(2)%t, tmp_green_v(2)%t, & 6151 surf_usm_v(2)%start_index, & 6152 start_index_on_file, & 6153 end_index_on_file, & 6154 nxlc, nysc, & 6155 nxlf, nxrf, nysf, nynf, & 6156 nys_on_file, nyn_on_file, & 6157 nxl_on_file,nxr_on_file ) 6158 #else 6159 IF ( k == 1 ) THEN 6160 IF ( .NOT. ALLOCATED( t_green_v_1(2)%t ) ) & 6161 ALLOCATE( t_green_v_1(2)%t(nzb_wall:nzt_wall+1, & 6162 1:surf_usm_v(2)%ns) ) 6163 READ ( 13 ) tmp_green_v(2)%t 6164 ENDIF 6165 CALL surface_restore_elements( & 6166 t_green_v_1(2)%t, tmp_green_v(2)%t, & 6167 surf_usm_v(2)%start_index, & 6168 start_index_on_file, & 6169 end_index_on_file , & 6170 nxlc, nysc, & 6171 nxlf, nxrf, nysf, nynf, & 6172 nys_on_file, nyn_on_file, & 6173 nxl_on_file,nxr_on_file ) 6174 #endif 6175 CASE ( 't_green_v(3)' ) 6176 #if defined( __nopointer ) 6177 IF ( k == 1 ) THEN 6178 IF ( .NOT. ALLOCATED( t_green_v(3)%t ) ) & 6179 ALLOCATE( t_green_v(3)%t(nzb_wall:nzt_wall+1, & 6180 1:surf_usm_v(3)%ns) ) 6181 READ ( 13 ) tmp_green_v(3)%t 6182 ENDIF 6183 CALL surface_restore_elements( & 6184 t_green_v(3)%t, tmp_green_v(3)%t, & 6185 surf_usm_v(3)%start_index, & 6186 start_index_on_file, & 6187 end_index_on_file, & 6188 nxlc, nysc, & 6189 nxlf, nxrf, nysf, nynf, & 6190 nys_on_file, nyn_on_file, & 6191 nxl_on_file,nxr_on_file ) 6192 #else 6193 IF ( k == 1 ) THEN 6194 IF ( .NOT. ALLOCATED( t_green_v_1(3)%t ) ) & 6195 ALLOCATE( t_green_v_1(3)%t(nzb_wall:nzt_wall+1, & 6196 1:surf_usm_v(3)%ns) ) 6197 READ ( 13 ) tmp_green_v(3)%t 6198 ENDIF 6199 CALL surface_restore_elements( & 6200 t_green_v_1(3)%t, tmp_green_v(3)%t, & 6201 surf_usm_v(3)%start_index, & 6202 start_index_on_file, & 6203 end_index_on_file, & 6204 nxlc, nysc, & 6205 nxlf, nxrf, nysf, nynf, & 6206 nys_on_file, nyn_on_file, & 6207 nxl_on_file,nxr_on_file ) 6208 #endif 6209 CASE ( 't_window_h' ) 6210 #if defined( __nopointer ) 6211 IF ( k == 1 ) THEN 6212 IF ( .NOT. ALLOCATED( t_window_h ) ) & 6213 ALLOCATE( t_window_h(nzb_wall:nzt_wall+1, & 6214 1:surf_usm_h%ns) ) 6215 READ ( 13 ) tmp_window_h 6216 ENDIF 6217 CALL surface_restore_elements( & 6218 t_window_h, tmp_window_h, & 6219 surf_usm_h%start_index, & 6220 start_index_on_file, & 6221 end_index_on_file, & 6222 nxlc, nysc, & 6223 nxlf, nxrf, nysf, nynf, & 6224 nys_on_file, nyn_on_file, & 6225 nxl_on_file,nxr_on_file ) 6226 #else 6227 IF ( k == 1 ) THEN 6228 IF ( .NOT. ALLOCATED( t_window_h_1 ) ) & 6229 ALLOCATE( t_window_h_1(nzb_wall:nzt_wall+1, & 6230 1:surf_usm_h%ns) ) 6231 READ ( 13 ) tmp_window_h 6232 ENDIF 6233 CALL surface_restore_elements( & 6234 t_window_h_1, tmp_window_h, & 6235 surf_usm_h%start_index, & 6236 start_index_on_file, & 6237 end_index_on_file, & 6238 nxlc, nysc, & 6239 nxlf, nxrf, nysf, nynf, & 6240 nys_on_file, nyn_on_file, & 6241 nxl_on_file, nxr_on_file ) 6242 #endif 6243 CASE ( 't_window_v(0)' ) 6244 #if defined( __nopointer ) 6245 IF ( k == 1 ) THEN 6246 IF ( .NOT. ALLOCATED( t_window_v(0)%t ) ) & 6247 ALLOCATE( t_window_v(0)%t(nzb_wall:nzt_wall+1, & 6248 1:surf_usm_v(0)%ns) ) 6249 READ ( 13 ) tmp_window_v(0)%t 6250 ENDIF 6251 CALL surface_restore_elements( & 6252 t_window_v(0)%t, tmp_window_v(0)%t, & 6253 surf_usm_v(0)%start_index, & 6254 start_index_on_file, & 6255 end_index_on_file, & 6256 nxlc, nysc, & 6257 nxlf, nxrf, nysf, nynf, & 6258 nys_on_file, nyn_on_file, & 6259 nxl_on_file, nxr_on_file ) 6260 #else 6261 IF ( k == 1 ) THEN 6262 IF ( .NOT. ALLOCATED( t_window_v_1(0)%t ) ) & 6263 ALLOCATE( t_window_v_1(0)%t(nzb_wall:nzt_wall+1, & 6264 1:surf_usm_v(0)%ns) ) 6265 READ ( 13 ) tmp_window_v(0)%t 6266 ENDIF 6267 CALL surface_restore_elements( & 6268 t_window_v_1(0)%t, & 6269 tmp_window_v(0)%t, & 6270 surf_usm_v(0)%start_index, & 6271 start_index_on_file, & 6272 end_index_on_file, & 6273 nxlc, nysc, & 6274 nxlf, nxrf, nysf, nynf, & 6275 nys_on_file, nyn_on_file, & 6276 nxl_on_file,nxr_on_file ) 6277 #endif 6278 CASE ( 't_window_v(1)' ) 6279 #if defined( __nopointer ) 6280 IF ( k == 1 ) THEN 6281 IF ( .NOT. ALLOCATED( t_window_v(1)%t ) ) & 6282 ALLOCATE( t_window_v(1)%t(nzb_wall:nzt_wall+1, & 6283 1:surf_usm_v(1)%ns) ) 6284 READ ( 13 ) tmp_window_v(1)%t 6285 ENDIF 6286 CALL surface_restore_elements( & 6287 t_window_v(1)%t, tmp_window_v(1)%t, & 6288 surf_usm_v(1)%start_index, & 6289 start_index_on_file, & 6290 end_index_on_file , & 6291 nxlc, nysc, & 6292 nys_on_file, nyn_on_file, & 6293 nxl_on_file, nxr_on_file ) 6294 #else 6295 IF ( k == 1 ) THEN 6296 IF ( .NOT. ALLOCATED( t_window_v_1(1)%t ) ) & 6297 ALLOCATE( t_window_v_1(1)%t(nzb_wall:nzt_wall+1, & 6298 1:surf_usm_v(1)%ns) ) 6299 READ ( 13 ) tmp_window_v(1)%t 6300 ENDIF 6301 CALL surface_restore_elements( & 6302 t_window_v_1(1)%t, & 6303 tmp_window_v(1)%t, & 6304 surf_usm_v(1)%start_index, & 6305 start_index_on_file, & 6306 end_index_on_file, & 6307 nxlc, nysc, & 6308 nxlf, nxrf, nysf, nynf, & 6309 nys_on_file, nyn_on_file, & 6310 nxl_on_file,nxr_on_file ) 6311 #endif 6312 CASE ( 't_window_v(2)' ) 6313 #if defined( __nopointer ) 6314 IF ( k == 1 ) THEN 6315 IF ( .NOT. ALLOCATED( t_window_v(2)%t ) ) & 6316 ALLOCATE( t_window_v(2)%t(nzb_wall:nzt_wall+1, & 6317 1:surf_usm_v(2)%ns) ) 6318 READ ( 13 ) tmp_window_v(2)%t 6319 ENDIF 6320 CALL surface_restore_elements( & 6321 t_window_v(2)%t, tmp_window_v(2)%t, & 6322 surf_usm_v(2)%start_index, & 6323 start_index_on_file, & 6324 end_index_on_file, & 6325 nxlc, nysc, & 6326 nxlf, nxrf, nysf, nynf, & 6327 nys_on_file, nyn_on_file, & 6328 nxl_on_file,nxr_on_file ) 6329 #else 6330 IF ( k == 1 ) THEN 6331 IF ( .NOT. ALLOCATED( t_window_v_1(2)%t ) ) & 6332 ALLOCATE( t_window_v_1(2)%t(nzb_wall:nzt_wall+1, & 6333 1:surf_usm_v(2)%ns) ) 6334 READ ( 13 ) tmp_window_v(2)%t 6335 ENDIF 6336 CALL surface_restore_elements( & 6337 t_window_v_1(2)%t, & 6338 tmp_window_v(2)%t, & 6339 surf_usm_v(2)%start_index, & 6340 start_index_on_file, & 6341 end_index_on_file , & 6342 nxlc, nysc, & 6343 nxlf, nxrf, nysf, nynf, & 6344 nys_on_file, nyn_on_file, & 6345 nxl_on_file,nxr_on_file ) 6346 #endif 6347 CASE ( 't_window_v(3)' ) 6348 #if defined( __nopointer ) 6349 IF ( k == 1 ) THEN 6350 IF ( .NOT. ALLOCATED( t_window_v(3)%t ) ) & 6351 ALLOCATE( t_window_v(3)%t(nzb_wall:nzt_wall+1, & 6352 1:surf_usm_v(3)%ns) ) 6353 READ ( 13 ) tmp_window_v(3)%t 6354 ENDIF 6355 CALL surface_restore_elements( & 6356 t_window_v(3)%t, tmp_window_v(3)%t, & 6357 surf_usm_v(3)%start_index, & 6358 start_index_on_file, & 6359 end_index_on_file, & 6360 nxlc, nysc, & 6361 nxlf, nxrf, nysf, nynf, & 6362 nys_on_file, nyn_on_file, & 6363 nxl_on_file,nxr_on_file ) 6364 #else 6365 IF ( k == 1 ) THEN 6366 IF ( .NOT. ALLOCATED( t_window_v_1(3)%t ) ) & 6367 ALLOCATE( t_window_v_1(3)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(3)%ns) ) 6368 READ ( 13 ) tmp_window_v(3)%t 6369 ENDIF 6370 CALL surface_restore_elements( & 6371 t_window_v_1(3)%t, & 6372 tmp_window_v(3)%t, & 6373 surf_usm_v(3)%start_index, & 6374 start_index_on_file, & 6375 end_index_on_file, & 6376 nxlc, nysc, & 6377 nxlf, nxrf, nysf, nynf, & 6378 nys_on_file, nyn_on_file, & 6379 nxl_on_file,nxr_on_file ) 6380 #endif 6381 CASE DEFAULT 6382 6383 found = .FALSE. 6384 6385 END SELECT 6386 5245 6387 5246 INTEGER(iwp), DIMENSION(nys_on_file:nyn_on_file,nxl_on_file:nxr_on_file) :: start_index_on_file 5247 INTEGER(iwp), DIMENSION(nys_on_file:nyn_on_file,nxl_on_file:nxr_on_file) :: end_index_on_file 5248 5249 REAL(wp), DIMENSION(:), ALLOCATABLE :: tmp_surf_h, tmp_surf_window_h, tmp_surf_green_h 5250 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: tmp_wall_h, tmp_window_h, tmp_green_h 5251 5252 TYPE( t_surf_vertical ), DIMENSION(0:3) :: tmp_surf_v, tmp_surf_window_v, tmp_surf_green_v 5253 TYPE( t_wall_vertical ), DIMENSION(0:3) :: tmp_wall_v, tmp_window_v, tmp_green_v 5254 5255 5256 IF ( initializing_actions == 'read_restart_data' .OR. & 5257 initializing_actions == 'cyclic_fill' ) THEN 5258 5259 ! 5260 !-- Read number of respective surface elements on file 5261 READ ( 13 ) field_chr 5262 IF ( TRIM( field_chr ) /= 'ns_h_on_file_usm' ) THEN 5263 ! 5264 !-- Add a proper error message 5265 ENDIF 5266 READ ( 13 ) ns_h_on_file_usm 5267 5268 READ ( 13 ) field_chr 5269 IF ( TRIM( field_chr ) /= 'ns_v_on_file_usm' ) THEN 5270 ! 5271 !-- Add a proper error message 5272 ENDIF 5273 READ ( 13 ) ns_v_on_file_usm 5274 ! 5275 !-- Allocate temporary arrays for reading data on file. Note, the 5276 !-- size of allocated surface elements do not necessarily need to match 5277 !-- the size of present surface elements on current processor, as the 5278 !-- number of processors between restarts can change. 5279 ALLOCATE( tmp_surf_h(1:ns_h_on_file_usm) ) 5280 ALLOCATE( tmp_wall_h(nzb_wall:nzt_wall+1,1:ns_h_on_file_usm) ) 5281 ALLOCATE( tmp_surf_window_h(1:ns_h_on_file_usm) ) 5282 ALLOCATE( tmp_window_h(nzb_wall:nzt_wall+1,1:ns_h_on_file_usm) ) 5283 ALLOCATE( tmp_surf_green_h(1:ns_h_on_file_usm) ) 5284 ALLOCATE( tmp_green_h(nzb_wall:nzt_wall+1,1:ns_h_on_file_usm) ) 5285 5286 DO l = 0, 3 5287 ALLOCATE( tmp_surf_v(l)%t(1:ns_v_on_file_usm(l)) ) 5288 ALLOCATE( tmp_wall_v(l)%t(nzb_wall:nzt_wall+1,1:ns_v_on_file_usm(l) ) ) 5289 ALLOCATE( tmp_surf_window_v(l)%t(1:ns_v_on_file_usm(l)) ) 5290 ALLOCATE( tmp_window_v(l)%t(nzb_wall:nzt_wall+1,1:ns_v_on_file_usm(l) ) ) 5291 ALLOCATE( tmp_surf_green_v(l)%t(1:ns_v_on_file_usm(l)) ) 5292 ALLOCATE( tmp_green_v(l)%t(nzb_wall:nzt_wall+1,1:ns_v_on_file_usm(l) ) ) 5293 ENDDO 5294 5295 5296 READ ( 13 ) field_chr 5297 5298 DO WHILE ( TRIM( field_chr ) /= '*** end usm ***' ) 5299 ! 5300 !-- Map data on file as often as needed (data are read only for k=1) 5301 DO kk = 1, overlap_count 5302 ! 5303 !-- Get the index range of the subdomain on file which overlap with the 5304 !-- current subdomain 5305 nxlf = nxlfa(ii,kk) 5306 nxlc = nxlfa(ii,kk) + offset_xa(ii,kk) 5307 nxrf = nxrfa(ii,kk) 5308 nxrc = nxrfa(ii,kk) + offset_xa(ii,kk) 5309 nysf = nysfa(ii,kk) 5310 nysc = nysfa(ii,kk) + offset_ya(ii,kk) 5311 nynf = nynfa(ii,kk) 5312 nync = nynfa(ii,kk) + offset_ya(ii,kk) 5313 5314 SELECT CASE ( TRIM( field_chr ) ) 5315 5316 CASE ( 'usm_start_index_h', 'usm_start_index_v' ) 5317 IF ( kk == 1 ) & 5318 READ ( 13 ) start_index_on_file 5319 5320 CASE ( 'usm_end_index_h', 'usm_end_index_v' ) 5321 IF ( kk == 1 ) & 5322 READ ( 13 ) end_index_on_file 5323 5324 CASE ( 't_surf_h' ) 5325 #if defined( __nopointer ) 5326 IF ( kk == 1 ) THEN 5327 IF ( .NOT. ALLOCATED( t_surf_h ) ) & 5328 ALLOCATE( t_surf_h(1:surf_usm_h%ns) ) 5329 READ ( 13 ) tmp_surf_h 5330 ENDIF 5331 CALL surface_restore_elements( & 5332 t_surf_h, tmp_surf_h, & 5333 surf_usm_h%start_index, & 5334 start_index_on_file, & 5335 end_index_on_file, & 5336 nxlc, nysc, & 5337 nxlf, nxrf, nysf, nynf, & 5338 nys_on_file, nyn_on_file, & 5339 nxl_on_file,nxr_on_file ) 5340 #else 5341 IF ( kk == 1 ) THEN 5342 IF ( .NOT. ALLOCATED( t_surf_h_1 ) ) & 5343 ALLOCATE( t_surf_h_1(1:surf_usm_h%ns) ) 5344 READ ( 13 ) tmp_surf_h 5345 ENDIF 5346 CALL surface_restore_elements( & 5347 t_surf_h_1, tmp_surf_h, & 5348 surf_usm_h%start_index, & 5349 start_index_on_file, & 5350 end_index_on_file, & 5351 nxlc, nysc, & 5352 nxlf, nxrf, nysf, nynf, & 5353 nys_on_file, nyn_on_file, & 5354 nxl_on_file,nxr_on_file ) 5355 #endif 5356 5357 CASE ( 't_surf_v(0)' ) 5358 #if defined( __nopointer ) 5359 IF ( kk == 1 ) THEN 5360 IF ( .NOT. ALLOCATED( t_surf_v(0)%t ) ) & 5361 ALLOCATE( t_surf_v(0)%t(1:surf_usm_v(0)%ns) ) 5362 READ ( 13 ) tmp_surf_v(0)%t 5363 ENDIF 5364 CALL surface_restore_elements( & 5365 t_surf_v(0)%t, tmp_surf_v(0)%t, & 5366 surf_usm_v(0)%start_index, & 5367 start_index_on_file, & 5368 end_index_on_file, & 5369 nxlc, nysc, & 5370 nxlf, nxrf, nysf, nynf, & 5371 nys_on_file, nyn_on_file, & 5372 nxl_on_file,nxr_on_file ) 5373 #else 5374 IF ( kk == 1 ) THEN 5375 IF ( .NOT. ALLOCATED( t_surf_v_1(0)%t ) ) & 5376 ALLOCATE( t_surf_v_1(0)%t(1:surf_usm_v(0)%ns) ) 5377 READ ( 13 ) tmp_surf_v(0)%t 5378 ENDIF 5379 CALL surface_restore_elements( & 5380 t_surf_v_1(0)%t, tmp_surf_v(0)%t,& 5381 surf_usm_v(0)%start_index, & 5382 start_index_on_file, & 5383 end_index_on_file, & 5384 nxlc, nysc, & 5385 nxlf, nxrf, nysf, nynf, & 5386 nys_on_file, nyn_on_file, & 5387 nxl_on_file,nxr_on_file ) 5388 #endif 5389 5390 CASE ( 't_surf_v(1)' ) 5391 #if defined( __nopointer ) 5392 IF ( kk == 1 ) THEN 5393 IF ( .NOT. ALLOCATED( t_surf_v(1)%t ) ) & 5394 ALLOCATE( t_surf_v(1)%t(1:surf_usm_v(1)%ns) ) 5395 READ ( 13 ) tmp_surf_v(1)%t 5396 ENDIF 5397 CALL surface_restore_elements( & 5398 t_surf_v(1)%t, tmp_surf_v(1)%t, & 5399 surf_usm_v(1)%start_index, & 5400 start_index_on_file, & 5401 end_index_on_file, & 5402 nxlc, nysc, & 5403 nxlf, nxrf, nysf, nynf, & 5404 nys_on_file, nyn_on_file, & 5405 nxl_on_file,nxr_on_file ) 5406 #else 5407 IF ( kk == 1 ) THEN 5408 IF ( .NOT. ALLOCATED( t_surf_v_1(1)%t ) ) & 5409 ALLOCATE( t_surf_v_1(1)%t(1:surf_usm_v(1)%ns) ) 5410 READ ( 13 ) tmp_surf_v(1)%t 5411 ENDIF 5412 CALL surface_restore_elements( & 5413 t_surf_v_1(1)%t, tmp_surf_v(1)%t,& 5414 surf_usm_v(1)%start_index, & 5415 start_index_on_file, & 5416 end_index_on_file, & 5417 nxlc, nysc, & 5418 nxlf, nxrf, nysf, nynf, & 5419 nys_on_file, nyn_on_file, & 5420 nxl_on_file,nxr_on_file ) 5421 #endif 5422 5423 CASE ( 't_surf_v(2)' ) 5424 #if defined( __nopointer ) 5425 IF ( kk == 1 ) THEN 5426 IF ( .NOT. ALLOCATED( t_surf_v(2)%t ) ) & 5427 ALLOCATE( t_surf_v(2)%t(1:surf_usm_v(2)%ns) ) 5428 READ ( 13 ) tmp_surf_v(2)%t 5429 ENDIF 5430 CALL surface_restore_elements( & 5431 t_surf_v(2)%t, tmp_surf_v(2)%t, & 5432 surf_usm_v(2)%start_index, & 5433 start_index_on_file, & 5434 end_index_on_file, & 5435 nxlc, nysc, & 5436 nxlf, nxrf, nysf, nynf, & 5437 nys_on_file, nyn_on_file, & 5438 nxl_on_file,nxr_on_file ) 5439 #else 5440 IF ( kk == 1 ) THEN 5441 IF ( .NOT. ALLOCATED( t_surf_v_1(2)%t ) ) & 5442 ALLOCATE( t_surf_v_1(2)%t(1:surf_usm_v(2)%ns) ) 5443 READ ( 13 ) tmp_surf_v(2)%t 5444 ENDIF 5445 CALL surface_restore_elements( & 5446 t_surf_v_1(2)%t, tmp_surf_v(2)%t,& 5447 surf_usm_v(2)%start_index, & 5448 start_index_on_file, & 5449 end_index_on_file, & 5450 nxlc, nysc, & 5451 nxlf, nxrf, nysf, nynf, & 5452 nys_on_file, nyn_on_file, & 5453 nxl_on_file,nxr_on_file ) 5454 #endif 5455 5456 CASE ( 't_surf_v(3)' ) 5457 #if defined( __nopointer ) 5458 IF ( kk == 1 ) THEN 5459 IF ( .NOT. ALLOCATED( t_surf_v(3)%t ) ) & 5460 ALLOCATE( t_surf_v(3)%t(1:surf_usm_v(3)%ns) ) 5461 READ ( 13 ) tmp_surf_v(3)%t 5462 ENDIF 5463 CALL surface_restore_elements( & 5464 t_surf_v(3)%t, tmp_surf_v(3)%t, & 5465 surf_usm_v(3)%start_index, & 5466 start_index_on_file, & 5467 end_index_on_file, & 5468 nxlc, nysc, & 5469 nxlf, nxrf, nysf, nynf, & 5470 nys_on_file, nyn_on_file, & 5471 nxl_on_file,nxr_on_file ) 5472 #else 5473 IF ( kk == 1 ) THEN 5474 IF ( .NOT. ALLOCATED( t_surf_v_1(3)%t ) ) & 5475 ALLOCATE( t_surf_v_1(3)%t(1:surf_usm_v(3)%ns) ) 5476 READ ( 13 ) tmp_surf_v(3)%t 5477 ENDIF 5478 CALL surface_restore_elements( & 5479 t_surf_v_1(3)%t, tmp_surf_v(3)%t,& 5480 surf_usm_v(3)%start_index, & 5481 start_index_on_file, & 5482 end_index_on_file, & 5483 nxlc, nysc, & 5484 nxlf, nxrf, nysf, nynf, & 5485 nys_on_file, nyn_on_file, & 5486 nxl_on_file,nxr_on_file ) 5487 #endif 5488 CASE ( 't_surf_green_h' ) 5489 #if defined( __nopointer ) 5490 IF ( kk == 1 ) THEN 5491 IF ( .NOT. ALLOCATED( t_surf_green_h ) ) & 5492 ALLOCATE( t_surf_green_h(1:surf_usm_h%ns) ) 5493 READ ( 13 ) tmp_surf_green_h 5494 ENDIF 5495 CALL surface_restore_elements( & 5496 t_surf_green_h, tmp_surf_green_h, & 5497 surf_usm_h%start_index, & 5498 start_index_on_file, & 5499 end_index_on_file, & 5500 nxlc, nysc, & 5501 nxlf, nxrf, nysf, nynf, & 5502 nys_on_file, nyn_on_file, & 5503 nxl_on_file,nxr_on_file ) 5504 #else 5505 IF ( kk == 1 ) THEN 5506 IF ( .NOT. ALLOCATED( t_surf_green_h_1 ) ) & 5507 ALLOCATE( t_surf_green_h_1(1:surf_usm_h%ns) ) 5508 READ ( 13 ) tmp_surf_green_h 5509 ENDIF 5510 CALL surface_restore_elements( & 5511 t_surf_green_h_1, tmp_surf_green_h, & 5512 surf_usm_h%start_index, & 5513 start_index_on_file, & 5514 end_index_on_file, & 5515 nxlc, nysc, & 5516 nxlf, nxrf, nysf, nynf, & 5517 nys_on_file, nyn_on_file, & 5518 nxl_on_file,nxr_on_file ) 5519 #endif 5520 5521 CASE ( 't_surf_green_v(0)' ) 5522 #if defined( __nopointer ) 5523 IF ( kk == 1 ) THEN 5524 IF ( .NOT. ALLOCATED( t_surf_green_v(0)%t ) ) & 5525 ALLOCATE( t_surf_green_v(0)%t(1:surf_usm_v(0)%ns) ) 5526 READ ( 13 ) tmp_surf_green_v(0)%t 5527 ENDIF 5528 CALL surface_restore_elements( & 5529 t_surf_green_v(0)%t, tmp_surf_green_v(0)%t, & 5530 surf_usm_v(0)%start_index, & 5531 start_index_on_file, & 5532 end_index_on_file, & 5533 nxlc, nysc, & 5534 nxlf, nxrf, nysf, nynf, & 5535 nys_on_file, nyn_on_file, & 5536 nxl_on_file,nxr_on_file ) 5537 #else 5538 IF ( kk == 1 ) THEN 5539 IF ( .NOT. ALLOCATED( t_surf_green_v_1(0)%t ) ) & 5540 ALLOCATE( t_surf_green_v_1(0)%t(1:surf_usm_v(0)%ns) ) 5541 READ ( 13 ) tmp_surf_green_v(0)%t 5542 ENDIF 5543 CALL surface_restore_elements( & 5544 t_surf_green_v_1(0)%t, tmp_surf_green_v(0)%t,& 5545 surf_usm_v(0)%start_index, & 5546 start_index_on_file, & 5547 end_index_on_file, & 5548 nxlc, nysc, & 5549 nxlf, nxrf, nysf, nynf, & 5550 nys_on_file, nyn_on_file, & 5551 nxl_on_file,nxr_on_file ) 5552 #endif 5553 5554 CASE ( 't_surf_green_v(1)' ) 5555 #if defined( __nopointer ) 5556 IF ( kk == 1 ) THEN 5557 IF ( .NOT. ALLOCATED( t_surf_green_v(1)%t ) ) & 5558 ALLOCATE( t_surf_green_v(1)%t(1:surf_usm_v(1)%ns) ) 5559 READ ( 13 ) tmp_surf_green_v(1)%t 5560 ENDIF 5561 CALL surface_restore_elements( & 5562 t_surf_green_v(1)%t, tmp_surf_green_v(1)%t, & 5563 surf_usm_v(1)%start_index, & 5564 start_index_on_file, & 5565 end_index_on_file, & 5566 nxlc, nysc, & 5567 nxlf, nxrf, nysf, nynf, & 5568 nys_on_file, nyn_on_file, & 5569 nxl_on_file,nxr_on_file ) 5570 #else 5571 IF ( kk == 1 ) THEN 5572 IF ( .NOT. ALLOCATED( t_surf_green_v_1(1)%t ) ) & 5573 ALLOCATE( t_surf_green_v_1(1)%t(1:surf_usm_v(1)%ns) ) 5574 READ ( 13 ) tmp_surf_green_v(1)%t 5575 ENDIF 5576 CALL surface_restore_elements( & 5577 t_surf_green_v_1(1)%t, tmp_surf_green_v(1)%t,& 5578 surf_usm_v(1)%start_index, & 5579 start_index_on_file, & 5580 end_index_on_file, & 5581 nxlc, nysc, & 5582 nxlf, nxrf, nysf, nynf, & 5583 nys_on_file, nyn_on_file, & 5584 nxl_on_file,nxr_on_file ) 5585 #endif 5586 5587 CASE ( 't_surf_green_v(2)' ) 5588 #if defined( __nopointer ) 5589 IF ( kk == 1 ) THEN 5590 IF ( .NOT. ALLOCATED( t_surf_green_v(2)%t ) ) & 5591 ALLOCATE( t_surf_green_v(2)%t(1:surf_usm_v(2)%ns) ) 5592 READ ( 13 ) tmp_surf_green_v(2)%t 5593 ENDIF 5594 CALL surface_restore_elements( & 5595 t_surf_green_v(2)%t, tmp_surf_green_v(2)%t, & 5596 surf_usm_v(2)%start_index, & 5597 start_index_on_file, & 5598 end_index_on_file, & 5599 nxlc, nysc, & 5600 nxlf, nxrf, nysf, nynf, & 5601 nys_on_file, nyn_on_file, & 5602 nxl_on_file,nxr_on_file ) 5603 #else 5604 IF ( kk == 1 ) THEN 5605 IF ( .NOT. ALLOCATED( t_surf_green_v_1(2)%t ) ) & 5606 ALLOCATE( t_surf_green_v_1(2)%t(1:surf_usm_v(2)%ns) ) 5607 READ ( 13 ) tmp_surf_green_v(2)%t 5608 ENDIF 5609 CALL surface_restore_elements( & 5610 t_surf_green_v_1(2)%t, tmp_surf_green_v(2)%t,& 5611 surf_usm_v(2)%start_index, & 5612 start_index_on_file, & 5613 end_index_on_file, & 5614 nxlc, nysc, & 5615 nxlf, nxrf, nysf, nynf, & 5616 nys_on_file, nyn_on_file, & 5617 nxl_on_file,nxr_on_file ) 5618 #endif 5619 5620 CASE ( 't_surf_green_v(3)' ) 5621 #if defined( __nopointer ) 5622 IF ( kk == 1 ) THEN 5623 IF ( .NOT. ALLOCATED( t_surf_green_v(3)%t ) ) & 5624 ALLOCATE( t_surf_green_v(3)%t(1:surf_usm_v(3)%ns) ) 5625 READ ( 13 ) tmp_surf_green_v(3)%t 5626 ENDIF 5627 CALL surface_restore_elements( & 5628 t_surf_green_v(3)%t, tmp_surf_green_v(3)%t, & 5629 surf_usm_v(3)%start_index, & 5630 start_index_on_file, & 5631 end_index_on_file, & 5632 nxlc, nysc, & 5633 nxlf, nxrf, nysf, nynf, & 5634 nys_on_file, nyn_on_file, & 5635 nxl_on_file,nxr_on_file ) 5636 #else 5637 IF ( kk == 1 ) THEN 5638 IF ( .NOT. ALLOCATED( t_surf_green_v_1(3)%t ) ) & 5639 ALLOCATE( t_surf_green_v_1(3)%t(1:surf_usm_v(3)%ns) ) 5640 READ ( 13 ) tmp_surf_green_v(3)%t 5641 ENDIF 5642 CALL surface_restore_elements( & 5643 t_surf_green_v_1(3)%t, tmp_surf_green_v(3)%t,& 5644 surf_usm_v(3)%start_index, & 5645 start_index_on_file, & 5646 end_index_on_file, & 5647 nxlc, nysc, & 5648 nxlf, nxrf, nysf, nynf, & 5649 nys_on_file, nyn_on_file, & 5650 nxl_on_file,nxr_on_file ) 5651 #endif 5652 CASE ( 't_surf_window_h' ) 5653 #if defined( __nopointer ) 5654 IF ( kk == 1 ) THEN 5655 IF ( .NOT. ALLOCATED( t_surf_window_h ) ) & 5656 ALLOCATE( t_surf_window_h(1:surf_usm_h%ns) ) 5657 READ ( 13 ) tmp_surf_window_h 5658 ENDIF 5659 CALL surface_restore_elements( & 5660 t_surf_window_h, tmp_surf_window_h, & 5661 surf_usm_h%start_index, & 5662 start_index_on_file, & 5663 end_index_on_file, & 5664 nxlc, nysc, & 5665 nxlf, nxrf, nysf, nynf, & 5666 nys_on_file, nyn_on_file, & 5667 nxl_on_file,nxr_on_file ) 5668 #else 5669 IF ( kk == 1 ) THEN 5670 IF ( .NOT. ALLOCATED( t_surf_window_h_1 ) ) & 5671 ALLOCATE( t_surf_window_h_1(1:surf_usm_h%ns) ) 5672 READ ( 13 ) tmp_surf_window_h 5673 ENDIF 5674 CALL surface_restore_elements( & 5675 t_surf_window_h_1, tmp_surf_window_h, & 5676 surf_usm_h%start_index, & 5677 start_index_on_file, & 5678 end_index_on_file, & 5679 nxlc, nysc, & 5680 nxlf, nxrf, nysf, nynf, & 5681 nys_on_file, nyn_on_file, & 5682 nxl_on_file,nxr_on_file ) 5683 #endif 5684 5685 CASE ( 't_surf_window_v(0)' ) 5686 #if defined( __nopointer ) 5687 IF ( kk == 1 ) THEN 5688 IF ( .NOT. ALLOCATED( t_surf_window_v(0)%t ) ) & 5689 ALLOCATE( t_surf_window_v(0)%t(1:surf_usm_v(0)%ns) ) 5690 READ ( 13 ) tmp_surf_window_v(0)%t 5691 ENDIF 5692 CALL surface_restore_elements( & 5693 t_surf_window_v(0)%t, tmp_surf_window_v(0)%t, & 5694 surf_usm_v(0)%start_index, & 5695 start_index_on_file, & 5696 end_index_on_file, & 5697 nxlc, nysc, & 5698 nxlf, nxrf, nysf, nynf, & 5699 nys_on_file, nyn_on_file, & 5700 nxl_on_file,nxr_on_file ) 5701 #else 5702 IF ( kk == 1 ) THEN 5703 IF ( .NOT. ALLOCATED( t_surf_window_v_1(0)%t ) ) & 5704 ALLOCATE( t_surf_window_v_1(0)%t(1:surf_usm_v(0)%ns) ) 5705 READ ( 13 ) tmp_surf_window_v(0)%t 5706 ENDIF 5707 CALL surface_restore_elements( & 5708 t_surf_window_v_1(0)%t, tmp_surf_window_v(0)%t,& 5709 surf_usm_v(0)%start_index, & 5710 start_index_on_file, & 5711 end_index_on_file, & 5712 nxlc, nysc, & 5713 nxlf, nxrf, nysf, nynf, & 5714 nys_on_file, nyn_on_file, & 5715 nxl_on_file,nxr_on_file ) 5716 #endif 5717 5718 CASE ( 't_surf_window_v(1)' ) 5719 #if defined( __nopointer ) 5720 IF ( kk == 1 ) THEN 5721 IF ( .NOT. ALLOCATED( t_surf_window_v(1)%t ) ) & 5722 ALLOCATE( t_surf_window_v(1)%t(1:surf_usm_v(1)%ns) ) 5723 READ ( 13 ) tmp_surf_window_v(1)%t 5724 ENDIF 5725 CALL surface_restore_elements( & 5726 t_surf_window_v(1)%t, tmp_surf_window_v(1)%t, & 5727 surf_usm_v(1)%start_index, & 5728 start_index_on_file, & 5729 end_index_on_file, & 5730 nxlc, nysc, & 5731 nxlf, nxrf, nysf, nynf, & 5732 nys_on_file, nyn_on_file, & 5733 nxl_on_file,nxr_on_file ) 5734 #else 5735 IF ( kk == 1 ) THEN 5736 IF ( .NOT. ALLOCATED( t_surf_window_v_1(1)%t ) ) & 5737 ALLOCATE( t_surf_window_v_1(1)%t(1:surf_usm_v(1)%ns) ) 5738 READ ( 13 ) tmp_surf_window_v(1)%t 5739 ENDIF 5740 CALL surface_restore_elements( & 5741 t_surf_window_v_1(1)%t, tmp_surf_window_v(1)%t,& 5742 surf_usm_v(1)%start_index, & 5743 start_index_on_file, & 5744 end_index_on_file, & 5745 nxlc, nysc, & 5746 nxlf, nxrf, nysf, nynf, & 5747 nys_on_file, nyn_on_file, & 5748 nxl_on_file,nxr_on_file ) 5749 #endif 5750 5751 CASE ( 't_surf_window_v(2)' ) 5752 #if defined( __nopointer ) 5753 IF ( kk == 1 ) THEN 5754 IF ( .NOT. ALLOCATED( t_surf_window_v(2)%t ) ) & 5755 ALLOCATE( t_surf_window_v(2)%t(1:surf_usm_v(2)%ns) ) 5756 READ ( 13 ) tmp_surf_window_v(2)%t 5757 ENDIF 5758 CALL surface_restore_elements( & 5759 t_surf_window_v(2)%t, tmp_surf_window_v(2)%t, & 5760 surf_usm_v(2)%start_index, & 5761 start_index_on_file, & 5762 end_index_on_file, & 5763 nxlc, nysc, & 5764 nxlf, nxrf, nysf, nynf, & 5765 nys_on_file, nyn_on_file, & 5766 nxl_on_file,nxr_on_file ) 5767 #else 5768 IF ( kk == 1 ) THEN 5769 IF ( .NOT. ALLOCATED( t_surf_window_v_1(2)%t ) ) & 5770 ALLOCATE( t_surf_window_v_1(2)%t(1:surf_usm_v(2)%ns) ) 5771 READ ( 13 ) tmp_surf_window_v(2)%t 5772 ENDIF 5773 CALL surface_restore_elements( & 5774 t_surf_window_v_1(2)%t, tmp_surf_window_v(2)%t,& 5775 surf_usm_v(2)%start_index, & 5776 start_index_on_file, & 5777 end_index_on_file, & 5778 nxlc, nysc, & 5779 nxlf, nxrf, nysf, nynf, & 5780 nys_on_file, nyn_on_file, & 5781 nxl_on_file,nxr_on_file ) 5782 #endif 5783 5784 CASE ( 't_surf_window_v(3)' ) 5785 #if defined( __nopointer ) 5786 IF ( kk == 1 ) THEN 5787 IF ( .NOT. ALLOCATED( t_surf_window_v(3)%t ) ) & 5788 ALLOCATE( t_surf_window_v(3)%t(1:surf_usm_v(3)%ns) ) 5789 READ ( 13 ) tmp_surf_window_v(3)%t 5790 ENDIF 5791 CALL surface_restore_elements( & 5792 t_surf_window_v(3)%t, tmp_surf_window_v(3)%t, & 5793 surf_usm_v(3)%start_index, & 5794 start_index_on_file, & 5795 end_index_on_file, & 5796 nxlc, nysc, & 5797 nxlf, nxrf, nysf, nynf, & 5798 nys_on_file, nyn_on_file, & 5799 nxl_on_file,nxr_on_file ) 5800 #else 5801 IF ( kk == 1 ) THEN 5802 IF ( .NOT. ALLOCATED( t_surf_window_v_1(3)%t ) ) & 5803 ALLOCATE( t_surf_window_v_1(3)%t(1:surf_usm_v(3)%ns) ) 5804 READ ( 13 ) tmp_surf_window_v(3)%t 5805 ENDIF 5806 CALL surface_restore_elements( & 5807 t_surf_window_v_1(3)%t, tmp_surf_window_v(3)%t,& 5808 surf_usm_v(3)%start_index, & 5809 start_index_on_file, & 5810 end_index_on_file, & 5811 nxlc, nysc, & 5812 nxlf, nxrf, nysf, nynf, & 5813 nys_on_file, nyn_on_file, & 5814 nxl_on_file,nxr_on_file ) 5815 #endif 5816 CASE ( 't_wall_h' ) 5817 #if defined( __nopointer ) 5818 IF ( kk == 1 ) THEN 5819 IF ( .NOT. ALLOCATED( t_wall_h ) ) & 5820 ALLOCATE( t_wall_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 5821 READ ( 13 ) tmp_wall_h 5822 ENDIF 5823 CALL surface_restore_elements( & 5824 t_wall_h, tmp_wall_h, & 5825 surf_usm_h%start_index, & 5826 start_index_on_file, & 5827 end_index_on_file, & 5828 nxlc, nysc, & 5829 nxlf, nxrf, nysf, nynf, & 5830 nys_on_file, nyn_on_file, & 5831 nxl_on_file,nxr_on_file ) 5832 #else 5833 IF ( kk == 1 ) THEN 5834 IF ( .NOT. ALLOCATED( t_wall_h_1 ) ) & 5835 ALLOCATE( t_wall_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 5836 READ ( 13 ) tmp_wall_h 5837 ENDIF 5838 CALL surface_restore_elements( & 5839 t_wall_h_1, tmp_wall_h, & 5840 surf_usm_h%start_index, & 5841 start_index_on_file, & 5842 end_index_on_file, & 5843 nxlc, nysc, & 5844 nxlf, nxrf, nysf, nynf, & 5845 nys_on_file, nyn_on_file, & 5846 nxl_on_file,nxr_on_file ) 5847 #endif 5848 CASE ( 't_wall_v(0)' ) 5849 #if defined( __nopointer ) 5850 IF ( kk == 1 ) THEN 5851 IF ( .NOT. ALLOCATED( t_wall_v(0)%t ) ) & 5852 ALLOCATE( t_wall_v(0)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(0)%ns) ) 5853 READ ( 13 ) tmp_wall_v(0)%t 5854 ENDIF 5855 CALL surface_restore_elements( & 5856 t_wall_v(0)%t, tmp_wall_v(0)%t, & 5857 surf_usm_v(0)%start_index, & 5858 start_index_on_file, & 5859 end_index_on_file, & 5860 nxlc, nysc, & 5861 nxlf, nxrf, nysf, nynf, & 5862 nys_on_file, nyn_on_file, & 5863 nxl_on_file,nxr_on_file ) 5864 #else 5865 IF ( kk == 1 ) THEN 5866 IF ( .NOT. ALLOCATED( t_wall_v_1(0)%t ) ) & 5867 ALLOCATE( t_wall_v_1(0)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(0)%ns) ) 5868 READ ( 13 ) tmp_wall_v(0)%t 5869 ENDIF 5870 CALL surface_restore_elements( & 5871 t_wall_v_1(0)%t, tmp_wall_v(0)%t,& 5872 surf_usm_v(0)%start_index, & 5873 start_index_on_file, & 5874 end_index_on_file, & 5875 nxlc, nysc, & 5876 nxlf, nxrf, nysf, nynf, & 5877 nys_on_file, nyn_on_file, & 5878 nxl_on_file,nxr_on_file ) 5879 #endif 5880 CASE ( 't_wall_v(1)' ) 5881 #if defined( __nopointer ) 5882 IF ( kk == 1 ) THEN 5883 IF ( .NOT. ALLOCATED( t_wall_v(1)%t ) ) & 5884 ALLOCATE( t_wall_v(1)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(1)%ns) ) 5885 READ ( 13 ) tmp_wall_v(1)%t 5886 ENDIF 5887 CALL surface_restore_elements( & 5888 t_wall_v(1)%t, tmp_wall_v(1)%t, & 5889 surf_usm_v(1)%start_index, & 5890 start_index_on_file, & 5891 end_index_on_file , & 5892 nxlc, nysc, & 5893 nys_on_file, nyn_on_file, & 5894 nxl_on_file, nxr_on_file ) 5895 #else 5896 IF ( kk == 1 ) THEN 5897 IF ( .NOT. ALLOCATED( t_wall_v_1(1)%t ) ) & 5898 ALLOCATE( t_wall_v_1(1)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(1)%ns) ) 5899 READ ( 13 ) tmp_wall_v(1)%t 5900 ENDIF 5901 CALL surface_restore_elements( & 5902 t_wall_v_1(1)%t, tmp_wall_v(1)%t,& 5903 surf_usm_v(1)%start_index, & 5904 start_index_on_file, & 5905 end_index_on_file, & 5906 nxlc, nysc, & 5907 nxlf, nxrf, nysf, nynf, & 5908 nys_on_file, nyn_on_file, & 5909 nxl_on_file,nxr_on_file ) 5910 #endif 5911 CASE ( 't_wall_v(2)' ) 5912 #if defined( __nopointer ) 5913 IF ( kk == 1 ) THEN 5914 IF ( .NOT. ALLOCATED( t_wall_v(2)%t ) ) & 5915 ALLOCATE( t_wall_v(2)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(2)%ns) ) 5916 READ ( 13 ) tmp_wall_v(2)%t 5917 ENDIF 5918 CALL surface_restore_elements( & 5919 t_wall_v(2)%t, tmp_wall_v(2)%t, & 5920 surf_usm_v(2)%start_index, & 5921 start_index_on_file, & 5922 end_index_on_file, & 5923 nxlc, nysc, & 5924 nxlf, nxrf, nysf, nynf, & 5925 nys_on_file, nyn_on_file, & 5926 nxl_on_file,nxr_on_file ) 5927 #else 5928 IF ( kk == 1 ) THEN 5929 IF ( .NOT. ALLOCATED( t_wall_v_1(2)%t ) ) & 5930 ALLOCATE( t_wall_v_1(2)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(2)%ns) ) 5931 READ ( 13 ) tmp_wall_v(2)%t 5932 ENDIF 5933 CALL surface_restore_elements( & 5934 t_wall_v_1(2)%t, tmp_wall_v(2)%t,& 5935 surf_usm_v(2)%start_index, & 5936 start_index_on_file, & 5937 end_index_on_file , & 5938 nxlc, nysc, & 5939 nxlf, nxrf, nysf, nynf, & 5940 nys_on_file, nyn_on_file, & 5941 nxl_on_file,nxr_on_file ) 5942 #endif 5943 CASE ( 't_wall_v(3)' ) 5944 #if defined( __nopointer ) 5945 IF ( kk == 1 ) THEN 5946 IF ( .NOT. ALLOCATED( t_wall_v(3)%t ) ) & 5947 ALLOCATE( t_wall_v(3)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(3)%ns) ) 5948 READ ( 13 ) tmp_wall_v(3)%t 5949 ENDIF 5950 CALL surface_restore_elements( & 5951 t_wall_v(3)%t, tmp_wall_v(3)%t, & 5952 surf_usm_v(3)%start_index, & 5953 start_index_on_file, & 5954 end_index_on_file, & 5955 nxlc, nysc, & 5956 nxlf, nxrf, nysf, nynf, & 5957 nys_on_file, nyn_on_file, & 5958 nxl_on_file,nxr_on_file ) 5959 #else 5960 IF ( kk == 1 ) THEN 5961 IF ( .NOT. ALLOCATED( t_wall_v_1(3)%t ) ) & 5962 ALLOCATE( t_wall_v_1(3)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(3)%ns) ) 5963 READ ( 13 ) tmp_wall_v(3)%t 5964 ENDIF 5965 CALL surface_restore_elements( & 5966 t_wall_v_1(3)%t, tmp_wall_v(3)%t,& 5967 surf_usm_v(3)%start_index, & 5968 start_index_on_file, & 5969 end_index_on_file, & 5970 nxlc, nysc, & 5971 nxlf, nxrf, nysf, nynf, & 5972 nys_on_file, nyn_on_file, & 5973 nxl_on_file,nxr_on_file ) 5974 #endif 5975 CASE ( 't_green_h' ) 5976 #if defined( __nopointer ) 5977 IF ( kk == 1 ) THEN 5978 IF ( .NOT. ALLOCATED( t_green_h ) ) & 5979 ALLOCATE( t_green_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 5980 READ ( 13 ) tmp_green_h 5981 ENDIF 5982 CALL surface_restore_elements( & 5983 t_green_h, tmp_green_h, & 5984 surf_usm_h%start_index, & 5985 start_index_on_file, & 5986 end_index_on_file, & 5987 nxlc, nysc, & 5988 nxlf, nxrf, nysf, nynf, & 5989 nys_on_file, nyn_on_file, & 5990 nxl_on_file,nxr_on_file ) 5991 #else 5992 IF ( kk == 1 ) THEN 5993 IF ( .NOT. ALLOCATED( t_green_h_1 ) ) & 5994 ALLOCATE( t_green_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 5995 READ ( 13 ) tmp_green_h 5996 ENDIF 5997 CALL surface_restore_elements( & 5998 t_green_h_1, tmp_green_h, & 5999 surf_usm_h%start_index, & 6000 start_index_on_file, & 6001 end_index_on_file, & 6002 nxlc, nysc, & 6003 nxlf, nxrf, nysf, nynf, & 6004 nys_on_file, nyn_on_file, & 6005 nxl_on_file,nxr_on_file ) 6006 #endif 6007 CASE ( 't_green_v(0)' ) 6008 #if defined( __nopointer ) 6009 IF ( kk == 1 ) THEN 6010 IF ( .NOT. ALLOCATED( t_green_v(0)%t ) ) & 6011 ALLOCATE( t_green_v(0)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(0)%ns) ) 6012 READ ( 13 ) tmp_green_v(0)%t 6013 ENDIF 6014 CALL surface_restore_elements( & 6015 t_green_v(0)%t, tmp_green_v(0)%t, & 6016 surf_usm_v(0)%start_index, & 6017 start_index_on_file, & 6018 end_index_on_file, & 6019 nxlc, nysc, & 6020 nxlf, nxrf, nysf, nynf, & 6021 nys_on_file, nyn_on_file, & 6022 nxl_on_file,nxr_on_file ) 6023 #else 6024 IF ( kk == 1 ) THEN 6025 IF ( .NOT. ALLOCATED( t_green_v_1(0)%t ) ) & 6026 ALLOCATE( t_green_v_1(0)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(0)%ns) ) 6027 READ ( 13 ) tmp_green_v(0)%t 6028 ENDIF 6029 CALL surface_restore_elements( & 6030 t_green_v_1(0)%t, tmp_green_v(0)%t,& 6031 surf_usm_v(0)%start_index, & 6032 start_index_on_file, & 6033 end_index_on_file, & 6034 nxlc, nysc, & 6035 nxlf, nxrf, nysf, nynf, & 6036 nys_on_file, nyn_on_file, & 6037 nxl_on_file,nxr_on_file ) 6038 #endif 6039 CASE ( 't_green_v(1)' ) 6040 #if defined( __nopointer ) 6041 IF ( kk == 1 ) THEN 6042 IF ( .NOT. ALLOCATED( t_green_v(1)%t ) ) & 6043 ALLOCATE( t_green_v(1)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(1)%ns) ) 6044 READ ( 13 ) tmp_green_v(1)%t 6045 ENDIF 6046 CALL surface_restore_elements( & 6047 t_green_v(1)%t, tmp_green_v(1)%t, & 6048 surf_usm_v(1)%start_index, & 6049 start_index_on_file, & 6050 end_index_on_file , & 6051 nxlc, nysc, & 6052 nys_on_file, nyn_on_file, & 6053 nxl_on_file,nxr_on_file ) 6054 #else 6055 IF ( kk == 1 ) THEN 6056 IF ( .NOT. ALLOCATED( t_green_v_1(1)%t ) ) & 6057 ALLOCATE( t_green_v_1(1)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(1)%ns) ) 6058 READ ( 13 ) tmp_green_v(1)%t 6059 ENDIF 6060 CALL surface_restore_elements( & 6061 t_green_v_1(1)%t, tmp_green_v(1)%t,& 6062 surf_usm_v(1)%start_index, & 6063 start_index_on_file, & 6064 end_index_on_file, & 6065 nxlc, nysc, & 6066 nxlf, nxrf, nysf, nynf, & 6067 nys_on_file, nyn_on_file, & 6068 nxl_on_file,nxr_on_file ) 6069 #endif 6070 CASE ( 't_green_v(2)' ) 6071 #if defined( __nopointer ) 6072 IF ( kk == 1 ) THEN 6073 IF ( .NOT. ALLOCATED( t_green_v(2)%t ) ) & 6074 ALLOCATE( t_green_v(2)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(2)%ns) ) 6075 READ ( 13 ) tmp_green_v(2)%t 6076 ENDIF 6077 CALL surface_restore_elements( & 6078 t_green_v(2)%t, tmp_green_v(2)%t, & 6079 surf_usm_v(2)%start_index, & 6080 start_index_on_file, & 6081 end_index_on_file, & 6082 nxlc, nysc, & 6083 nxlf, nxrf, nysf, nynf, & 6084 nys_on_file, nyn_on_file, & 6085 nxl_on_file,nxr_on_file ) 6086 #else 6087 IF ( kk == 1 ) THEN 6088 IF ( .NOT. ALLOCATED( t_green_v_1(2)%t ) ) & 6089 ALLOCATE( t_green_v_1(2)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(2)%ns) ) 6090 READ ( 13 ) tmp_green_v(2)%t 6091 ENDIF 6092 CALL surface_restore_elements( & 6093 t_green_v_1(2)%t, tmp_green_v(2)%t,& 6094 surf_usm_v(2)%start_index, & 6095 start_index_on_file, & 6096 end_index_on_file , & 6097 nxlc, nysc, & 6098 nxlf, nxrf, nysf, nynf, & 6099 nys_on_file, nyn_on_file, & 6100 nxl_on_file,nxr_on_file ) 6101 #endif 6102 CASE ( 't_green_v(3)' ) 6103 #if defined( __nopointer ) 6104 IF ( kk == 1 ) THEN 6105 IF ( .NOT. ALLOCATED( t_green_v(3)%t ) ) & 6106 ALLOCATE( t_green_v(3)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(3)%ns) ) 6107 READ ( 13 ) tmp_green_v(3)%t 6108 ENDIF 6109 CALL surface_restore_elements( & 6110 t_green_v(3)%t, tmp_green_v(3)%t, & 6111 surf_usm_v(3)%start_index, & 6112 start_index_on_file, & 6113 end_index_on_file, & 6114 nxlc, nysc, & 6115 nxlf, nxrf, nysf, nynf, & 6116 nys_on_file, nyn_on_file, & 6117 nxl_on_file,nxr_on_file ) 6118 #else 6119 IF ( kk == 1 ) THEN 6120 IF ( .NOT. ALLOCATED( t_green_v_1(3)%t ) ) & 6121 ALLOCATE( t_green_v_1(3)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(3)%ns) ) 6122 READ ( 13 ) tmp_green_v(3)%t 6123 ENDIF 6124 CALL surface_restore_elements( & 6125 t_green_v_1(3)%t, tmp_green_v(3)%t,& 6126 surf_usm_v(3)%start_index, & 6127 start_index_on_file, & 6128 end_index_on_file, & 6129 nxlc, nysc, & 6130 nxlf, nxrf, nysf, nynf, & 6131 nys_on_file, nyn_on_file, & 6132 nxl_on_file,nxr_on_file ) 6133 #endif 6134 CASE ( 't_window_h' ) 6135 #if defined( __nopointer ) 6136 IF ( kk == 1 ) THEN 6137 IF ( .NOT. ALLOCATED( t_window_h ) ) & 6138 ALLOCATE( t_window_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 6139 READ ( 13 ) tmp_window_h 6140 ENDIF 6141 CALL surface_restore_elements( & 6142 t_window_h, tmp_window_h, & 6143 surf_usm_h%start_index, & 6144 start_index_on_file, & 6145 end_index_on_file, & 6146 nxlc, nysc, & 6147 nxlf, nxrf, nysf, nynf, & 6148 nys_on_file, nyn_on_file, & 6149 nxl_on_file,nxr_on_file ) 6150 #else 6151 IF ( kk == 1 ) THEN 6152 IF ( .NOT. ALLOCATED( t_window_h_1 ) ) & 6153 ALLOCATE( t_window_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 6154 READ ( 13 ) tmp_window_h 6155 ENDIF 6156 CALL surface_restore_elements( & 6157 t_window_h_1, tmp_window_h, & 6158 surf_usm_h%start_index, & 6159 start_index_on_file, & 6160 end_index_on_file, & 6161 nxlc, nysc, & 6162 nxlf, nxrf, nysf, nynf, & 6163 nys_on_file, nyn_on_file, & 6164 nxl_on_file, nxr_on_file ) 6165 #endif 6166 CASE ( 't_window_v(0)' ) 6167 #if defined( __nopointer ) 6168 IF ( kk == 1 ) THEN 6169 IF ( .NOT. ALLOCATED( t_window_v(0)%t ) ) & 6170 ALLOCATE( t_window_v(0)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(0)%ns) ) 6171 READ ( 13 ) tmp_window_v(0)%t 6172 ENDIF 6173 CALL surface_restore_elements( & 6174 t_window_v(0)%t, tmp_window_v(0)%t, & 6175 surf_usm_v(0)%start_index, & 6176 start_index_on_file, & 6177 end_index_on_file, & 6178 nxlc, nysc, & 6179 nxlf, nxrf, nysf, nynf, & 6180 nys_on_file, nyn_on_file, & 6181 nxl_on_file, nxr_on_file ) 6182 #else 6183 IF ( kk == 1 ) THEN 6184 IF ( .NOT. ALLOCATED( t_window_v_1(0)%t ) ) & 6185 ALLOCATE( t_window_v_1(0)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(0)%ns) ) 6186 READ ( 13 ) tmp_window_v(0)%t 6187 ENDIF 6188 CALL surface_restore_elements( & 6189 t_window_v_1(0)%t, tmp_window_v(0)%t,& 6190 surf_usm_v(0)%start_index, & 6191 start_index_on_file, & 6192 end_index_on_file, & 6193 nxlc, nysc, & 6194 nxlf, nxrf, nysf, nynf, & 6195 nys_on_file, nyn_on_file, & 6196 nxl_on_file,nxr_on_file ) 6197 #endif 6198 CASE ( 't_window_v(1)' ) 6199 #if defined( __nopointer ) 6200 IF ( kk == 1 ) THEN 6201 IF ( .NOT. ALLOCATED( t_window_v(1)%t ) ) & 6202 ALLOCATE( t_window_v(1)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(1)%ns) ) 6203 READ ( 13 ) tmp_window_v(1)%t 6204 ENDIF 6205 CALL surface_restore_elements( & 6206 t_window_v(1)%t, tmp_window_v(1)%t, & 6207 surf_usm_v(1)%start_index, & 6208 start_index_on_file, & 6209 end_index_on_file , & 6210 nxlc, nysc, & 6211 nys_on_file, nyn_on_file, & 6212 nxl_on_file, nxr_on_file ) 6213 #else 6214 IF ( kk == 1 ) THEN 6215 IF ( .NOT. ALLOCATED( t_window_v_1(1)%t ) ) & 6216 ALLOCATE( t_window_v_1(1)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(1)%ns) ) 6217 READ ( 13 ) tmp_window_v(1)%t 6218 ENDIF 6219 CALL surface_restore_elements( & 6220 t_window_v_1(1)%t, tmp_window_v(1)%t,& 6221 surf_usm_v(1)%start_index, & 6222 start_index_on_file, & 6223 end_index_on_file, & 6224 nxlc, nysc, & 6225 nxlf, nxrf, nysf, nynf, & 6226 nys_on_file, nyn_on_file, & 6227 nxl_on_file,nxr_on_file ) 6228 #endif 6229 CASE ( 't_window_v(2)' ) 6230 #if defined( __nopointer ) 6231 IF ( kk == 1 ) THEN 6232 IF ( .NOT. ALLOCATED( t_window_v(2)%t ) ) & 6233 ALLOCATE( t_window_v(2)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(2)%ns) ) 6234 READ ( 13 ) tmp_window_v(2)%t 6235 ENDIF 6236 CALL surface_restore_elements( & 6237 t_window_v(2)%t, tmp_window_v(2)%t, & 6238 surf_usm_v(2)%start_index, & 6239 start_index_on_file, & 6240 end_index_on_file, & 6241 nxlc, nysc, & 6242 nxlf, nxrf, nysf, nynf, & 6243 nys_on_file, nyn_on_file, & 6244 nxl_on_file,nxr_on_file ) 6245 #else 6246 IF ( kk == 1 ) THEN 6247 IF ( .NOT. ALLOCATED( t_window_v_1(2)%t ) ) & 6248 ALLOCATE( t_window_v_1(2)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(2)%ns) ) 6249 READ ( 13 ) tmp_window_v(2)%t 6250 ENDIF 6251 CALL surface_restore_elements( & 6252 t_window_v_1(2)%t, tmp_window_v(2)%t,& 6253 surf_usm_v(2)%start_index, & 6254 start_index_on_file, & 6255 end_index_on_file , & 6256 nxlc, nysc, & 6257 nxlf, nxrf, nysf, nynf, & 6258 nys_on_file, nyn_on_file, & 6259 nxl_on_file,nxr_on_file ) 6260 #endif 6261 CASE ( 't_window_v(3)' ) 6262 #if defined( __nopointer ) 6263 IF ( kk == 1 ) THEN 6264 IF ( .NOT. ALLOCATED( t_window_v(3)%t ) ) & 6265 ALLOCATE( t_window_v(3)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(3)%ns) ) 6266 READ ( 13 ) tmp_window_v(3)%t 6267 ENDIF 6268 CALL surface_restore_elements( & 6269 t_window_v(3)%t, tmp_window_v(3)%t, & 6270 surf_usm_v(3)%start_index, & 6271 start_index_on_file, & 6272 end_index_on_file, & 6273 nxlc, nysc, & 6274 nxlf, nxrf, nysf, nynf, & 6275 nys_on_file, nyn_on_file, & 6276 nxl_on_file,nxr_on_file ) 6277 #else 6278 IF ( kk == 1 ) THEN 6279 IF ( .NOT. ALLOCATED( t_window_v_1(3)%t ) ) & 6280 ALLOCATE( t_window_v_1(3)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(3)%ns) ) 6281 READ ( 13 ) tmp_window_v(3)%t 6282 ENDIF 6283 CALL surface_restore_elements( & 6284 t_window_v_1(3)%t, tmp_window_v(3)%t,& 6285 surf_usm_v(3)%start_index, & 6286 start_index_on_file, & 6287 end_index_on_file, & 6288 nxlc, nysc, & 6289 nxlf, nxrf, nysf, nynf, & 6290 nys_on_file, nyn_on_file, & 6291 nxl_on_file,nxr_on_file ) 6292 #endif 6293 CASE DEFAULT 6294 WRITE ( message_string, * ) 'unknown variable named "', & 6295 TRIM( field_chr ), '" found in', & 6296 '&data from prior run on PE ', myid 6297 CALL message( 'user_read_restart_data', 'UI0012', 1, 2, 0, 6, 0 ) 6298 6299 END SELECT 6300 6301 ENDDO 6302 6303 READ ( 13 ) field_chr 6304 6305 ENDDO 6306 6307 ENDIF 6308 6309 END SUBROUTINE usm_read_restart_data 6388 END SUBROUTINE usm_rrd_local 6310 6389 6311 6390 … … 7356 7435 ! Description: 7357 7436 ! ------------ 7358 !> Subroutine writes t_surf and t_wall data into restart files 7437 !> Subroutine writes t_surf and t_wall data into restart files. It is necessary 7438 !> to write start_index and end_index several times 7359 7439 !kanani: Renamed this routine according to corresponging routines in PALM 7360 !kanani: Modified the routine to match wr ite_var_list, from where usm_write_restart_data7440 !kanani: Modified the routine to match wrd_global, from where usm_wrd_local 7361 7441 ! shall be called in the future. This part has not been tested yet. (see virtual_flight_mod) 7362 7442 ! Also, I had some trouble with the allocation of t_surf, since this is a pointer. 7363 7443 ! So, I added some directives here. 7364 7444 !------------------------------------------------------------------------------! 7365 SUBROUTINE usm_write_restart_data 7445 SUBROUTINE usm_wrd_local 7446 7366 7447 7367 7448 IMPLICIT NONE … … 7369 7450 CHARACTER(LEN=1) :: dum !< dummy string to create output-variable name 7370 7451 INTEGER(iwp) :: l !< index surface type orientation 7452 7453 CALL wrd_write_string( 'ns_h_on_file_usm' ) 7454 WRITE ( 14 ) surf_usm_h%ns 7455 7456 CALL wrd_write_string( 'ns_v_on_file_usm' ) 7457 WRITE ( 14 ) surf_usm_v(0:3)%ns 7458 7459 CALL wrd_write_string( 'usm_start_index_h' ) 7460 WRITE ( 14 ) surf_usm_h%start_index 7461 7462 CALL wrd_write_string( 'usm_end_index_h' ) 7463 WRITE ( 14 ) surf_usm_h%end_index 7464 7465 CALL wrd_write_string( 't_surf_h' ) 7466 WRITE ( 14 ) t_surf_h 7467 7468 CALL wrd_write_string( 't_surf_window_h' ) 7469 WRITE ( 14 ) t_surf_window_h 7470 7471 CALL wrd_write_string( 't_surf_green_h' ) 7472 WRITE ( 14 ) t_surf_green_h 7473 7474 DO l = 0, 3 7475 7476 CALL wrd_write_string( 'usm_start_index_v' ) 7477 WRITE ( 14 ) surf_usm_v(l)%start_index 7478 7479 CALL wrd_write_string( 'usm_end_index_v' ) 7480 WRITE ( 14 ) surf_usm_v(l)%end_index 7481 7482 WRITE( dum, '(I1)') l 7483 7484 CALL wrd_write_string( 't_surf_v(' // dum // ')' ) 7485 WRITE ( 14 ) t_surf_v(l)%t 7486 7487 CALL wrd_write_string( 't_surf_window_v(' // dum // ')' ) 7488 WRITE ( 14 ) t_surf_window_v(l)%t 7489 7490 CALL wrd_write_string( 't_surf_green_v(' // dum // ')' ) 7491 WRITE ( 14 ) t_surf_green_v(l)%t 7492 7493 ENDDO 7494 7495 CALL wrd_write_string( 'usm_start_index_h' ) 7496 WRITE ( 14 ) surf_usm_h%start_index 7497 7498 CALL wrd_write_string( 'usm_end_index_h' ) 7499 WRITE ( 14 ) surf_usm_h%end_index 7500 7501 CALL wrd_write_string( 't_wall_h' ) 7502 WRITE ( 14 ) t_wall_h 7503 7504 CALL wrd_write_string( 't_window_h' ) 7505 WRITE ( 14 ) t_window_h 7506 7507 CALL wrd_write_string( 't_green_h' ) 7508 WRITE ( 14 ) t_green_h 7509 7510 DO l = 0, 3 7511 7512 CALL wrd_write_string( 'usm_start_index_v' ) 7513 WRITE ( 14 ) surf_usm_v(l)%start_index 7514 7515 CALL wrd_write_string( 'usm_end_index_v' ) 7516 WRITE ( 14 ) surf_usm_v(l)%end_index 7517 7518 WRITE( dum, '(I1)') l 7519 7520 CALL wrd_write_string( 't_wall_v(' // dum // ')' ) 7521 WRITE ( 14 ) t_wall_v(l)%t 7522 7523 CALL wrd_write_string( 't_window_v(' // dum // ')' ) 7524 WRITE ( 14 ) t_window_v(l)%t 7525 7526 CALL wrd_write_string( 't_green_v(' // dum // ')' ) 7527 WRITE ( 14 ) t_green_v(l)%t 7371 7528 7372 WRITE ( 14 ) 'ns_h_on_file_usm ' 7373 WRITE ( 14 ) surf_usm_h%ns 7374 WRITE ( 14 ) 'ns_v_on_file_usm ' 7375 WRITE ( 14 ) surf_usm_v(0:3)%ns 7529 ENDDO 7530 7376 7531 7377 WRITE ( 14 ) 'usm_start_index_h ' 7378 WRITE ( 14 ) surf_usm_h%start_index 7379 WRITE ( 14 ) 'usm_end_index_h ' 7380 WRITE ( 14 ) surf_usm_h%end_index 7381 WRITE ( 14 ) 't_surf_h ' 7382 WRITE ( 14 ) t_surf_h 7383 WRITE ( 14 ) 't_surf_window_h ' 7384 WRITE ( 14 ) t_surf_window_h 7385 WRITE ( 14 ) 't_surf_green_h ' 7386 WRITE ( 14 ) t_surf_green_h 7387 7388 DO l = 0, 3 7389 WRITE ( 14 ) 'usm_start_index_v ' 7390 WRITE ( 14 ) surf_usm_v(l)%start_index 7391 WRITE ( 14 ) 'usm_end_index_v ' 7392 WRITE ( 14 ) surf_usm_v(l)%end_index 7393 WRITE( dum, '(I1)') l 7394 WRITE ( 14 ) 't_surf_v(' // dum // ') ' 7395 WRITE ( 14 ) t_surf_v(l)%t 7396 WRITE ( 14 ) 't_surf_window_v(' // dum // ') ' 7397 WRITE ( 14 ) t_surf_window_v(l)%t 7398 WRITE ( 14 ) 't_surf_green_v(' // dum // ') ' 7399 WRITE ( 14 ) t_surf_green_v(l)%t 7400 ENDDO 7401 7402 WRITE ( 14 ) 'usm_start_index_h ' 7403 WRITE ( 14 ) surf_usm_h%start_index 7404 WRITE ( 14 ) 'usm_end_index_h ' 7405 WRITE ( 14 ) surf_usm_h%end_index 7406 WRITE ( 14 ) 't_wall_h ' 7407 WRITE ( 14 ) t_wall_h 7408 WRITE ( 14 ) 't_window_h ' 7409 WRITE ( 14 ) t_window_h 7410 WRITE ( 14 ) 't_green_h ' 7411 WRITE ( 14 ) t_green_h 7412 DO l = 0, 3 7413 WRITE ( 14 ) 'usm_start_index_v ' 7414 WRITE ( 14 ) surf_usm_v(l)%start_index 7415 WRITE ( 14 ) 'usm_end_index_v ' 7416 WRITE ( 14 ) surf_usm_v(l)%end_index 7417 WRITE( dum, '(I1)') l 7418 WRITE ( 14 ) 't_wall_v(' // dum // ') ' 7419 WRITE ( 14 ) t_wall_v(l)%t 7420 WRITE ( 14 ) 't_window_v(' // dum // ') ' 7421 WRITE ( 14 ) t_window_v(l)%t 7422 WRITE ( 14 ) 't_green_v(' // dum // ') ' 7423 WRITE ( 14 ) t_green_v(l)%t 7424 ENDDO 7425 7426 WRITE ( 14 ) '*** end usm *** ' 7427 7428 END SUBROUTINE usm_write_restart_data 7532 END SUBROUTINE usm_wrd_local 7429 7533 7430 7534 !
Note: See TracChangeset
for help on using the changeset viewer.