Changeset 1972 for palm/trunk/SOURCE/read_3d_binary.f90
- Timestamp:
- Jul 26, 2016 7:52:02 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/read_3d_binary.f90
r1960 r1972 19 19 ! Current revisions: 20 20 ! ----------------- 21 ! 21 ! Land surface parts are now done in the respective module 22 22 ! 23 23 ! Former revisions: … … 127 127 128 128 USE land_surface_model_mod, & 129 ONLY: c_liq_av, c_soil_av, c_veg, c_veg_av, ghf_eb_av, lai_av, & 130 qsws_eb_av, qsws_liq_eb_av, qsws_soil_eb_av, qsws_veg_eb_av, & 131 land_surface, m_liq_eb, m_liq_eb_av, m_soil, m_soil_av, & 132 nzb_soil, nzt_soil, shf_eb_av, t_soil, t_soil_av 129 ONLY: land_surface, lsm_read_restart_data 133 130 134 131 USE particle_attributes, & … … 204 201 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: tmp_2d !< temporary array for storing 2D data 205 202 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: tmp_3d !< temporary array for storing 3D data 206 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: tmp_3d_soil1!< temporary array for storing 3D soil model data207 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: tmp_3d_soil2!< temporary array for storing 3D soil model data208 203 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: tmp_3dwul !< 209 204 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: tmp_3dwun !< … … 330 325 !-- First compare the version numbers 331 326 READ ( 13 ) version_on_file 332 binary_version = '4. 3'327 binary_version = '4.4' 333 328 IF ( TRIM( version_on_file ) /= TRIM( binary_version ) ) THEN 334 329 WRITE( message_string, * ) 'version mismatch concerning data ', & … … 405 400 nxl_on_file-nbgp:nxr_on_file+nbgp) ) 406 401 407 !408 !-- If the land surface model is used, allocate array for storing soil model409 !-- data410 IF ( land_surface ) THEN411 ALLOCATE( tmp_3d_soil1(nzb_soil:nzt_soil+1, &412 nys_on_file-nbgp:nyn_on_file+nbgp, &413 nxl_on_file-nbgp:nxr_on_file+nbgp) )414 ALLOCATE( tmp_3d_soil2(nzb_soil:nzt_soil, &415 nys_on_file-nbgp:nyn_on_file+nbgp, &416 nxl_on_file-nbgp:nxr_on_file+nbgp) )417 ENDIF418 402 ! 419 403 !-- Read arrays … … 444 428 SELECT CASE ( TRIM( field_chr ) ) 445 429 446 CASE ( 'c_liq_av' )447 IF ( .NOT. ALLOCATED( c_liq_av ) ) THEN448 ALLOCATE( c_liq_av(nysg:nyng,nxlg:nxrg) )449 ENDIF450 IF ( k == 1 ) READ ( 13 ) tmp_2d451 c_liq_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &452 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)453 454 CASE ( 'c_soil_av' )455 IF ( .NOT. ALLOCATED( c_soil_av ) ) THEN456 ALLOCATE( c_soil_av(nysg:nyng,nxlg:nxrg) )457 ENDIF458 IF ( k == 1 ) READ ( 13 ) tmp_2d459 c_soil_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &460 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)461 462 CASE ( 'c_veg_av' )463 IF ( .NOT. ALLOCATED( c_veg_av ) ) THEN464 ALLOCATE( c_veg_av(nysg:nyng,nxlg:nxrg) )465 ENDIF466 IF ( k == 1 ) READ ( 13 ) tmp_2d467 c_veg_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &468 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)469 470 430 CASE ( 'e' ) 471 431 IF ( k == 1 ) READ ( 13 ) tmp_3d … … 481 441 tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp) 482 442 483 CASE ( 'ghf_eb_av' )484 IF ( .NOT. ALLOCATED( ghf_eb_av ) ) THEN485 ALLOCATE( ghf_eb_av(nysg:nyng,nxlg:nxrg) )486 ENDIF487 IF ( k == 1 ) READ ( 13 ) tmp_2d488 ghf_eb_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &489 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)490 491 443 CASE ( 'iran' ) ! matching random numbers is still unresolved 492 444 ! issue 493 445 IF ( k == 1 ) READ ( 13 ) iran, iran_part 494 446 495 CASE ( 'lai_av' )496 IF ( .NOT. ALLOCATED( lai_av ) ) THEN497 ALLOCATE( lai_av(nysg:nyng,nxlg:nxrg) )498 ENDIF499 IF ( k == 1 ) READ ( 13 ) tmp_2d500 lai_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &501 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)502 503 447 CASE ( 'kh' ) 504 448 IF ( k == 1 ) READ ( 13 ) tmp_3d … … 526 470 lwp_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = & 527 471 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp) 528 529 CASE ( 'm_liq_eb' )530 IF ( k == 1 ) READ ( 13 ) tmp_2d531 m_liq_eb(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &532 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)533 CASE ( 'm_liq_eb_av' )534 IF ( .NOT. ALLOCATED( m_liq_eb_av ) ) THEN535 ALLOCATE( m_liq_eb_av(nysg:nyng,nxlg:nxrg) )536 ENDIF537 IF ( k == 1 ) READ ( 13 ) tmp_2d538 m_liq_eb_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &539 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)540 541 CASE ( 'm_soil' )542 IF ( k == 1 ) READ ( 13 ) tmp_3d_soil2(:,:,:)543 m_soil(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &544 tmp_3d_soil2(nzb_soil:nzt_soil,nysf-nbgp:nynf &545 +nbgp,nxlf-nbgp:nxrf+nbgp)546 547 CASE ( 'm_soil_av' )548 IF ( .NOT. ALLOCATED( m_soil_av ) ) THEN549 ALLOCATE( m_soil_av(nzb_soil:nzt_soil,nysg:nyng,nxlg:nxrg) )550 ENDIF551 IF ( k == 1 ) READ ( 13 ) tmp_3d_soil2(:,:,:)552 m_soil_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &553 tmp_3d_soil2(nzb_soil:nzt_soil,nysf &554 -nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)555 472 556 473 CASE ( 'nr' ) … … 769 686 IF ( k == 1 ) READ ( 13 ) tmp_2d 770 687 qswst(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = & 771 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)772 773 CASE ( 'qsws_eb_av' )774 IF ( .NOT. ALLOCATED( qsws_eb_av ) ) THEN775 ALLOCATE( qsws_eb_av(nysg:nyng,nxlg:nxrg) )776 ENDIF777 IF ( k == 1 ) READ ( 13 ) tmp_2d778 qsws_eb_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &779 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)780 781 CASE ( 'qsws_liq_eb_av' )782 IF ( .NOT. ALLOCATED( qsws_liq_eb_av ) ) THEN783 ALLOCATE( qsws_liq_eb_av(nysg:nyng,nxlg:nxrg) )784 ENDIF785 IF ( k == 1 ) READ ( 13 ) tmp_2d786 qsws_liq_eb_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &787 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)788 CASE ( 'qsws_soil_eb_av' )789 IF ( .NOT. ALLOCATED( qsws_soil_eb_av ) ) THEN790 ALLOCATE( qsws_soil_eb_av(nysg:nyng,nxlg:nxrg) )791 ENDIF792 IF ( k == 1 ) READ ( 13 ) tmp_2d793 qsws_soil_eb_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &794 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)795 796 CASE ( 'qsws_veg_eb_av' )797 IF ( .NOT. ALLOCATED( qsws_veg_eb_av ) ) THEN798 ALLOCATE( qsws_veg_eb_av(nysg:nyng,nxlg:nxrg) )799 ENDIF800 IF ( k == 1 ) READ ( 13 ) tmp_2d801 qsws_veg_eb_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &802 688 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp) 803 689 … … 1033 919 IF ( k == 1 ) READ ( 13 ) tmp_2d 1034 920 shf_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = & 1035 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)1036 1037 CASE ( 'shf_eb_av' )1038 IF ( .NOT. ALLOCATED( shf_eb_av ) ) THEN1039 ALLOCATE( shf_eb_av(nysg:nyng,nxlg:nxrg) )1040 ENDIF1041 IF ( k == 1 ) READ ( 13 ) tmp_2d1042 shf_eb_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &1043 921 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp) 1044 922 … … 1113 991 tswst(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = & 1114 992 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp) 1115 1116 CASE ( 't_soil' )1117 IF ( k == 1 ) READ ( 13 ) tmp_3d_soil11118 t_soil(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &1119 tmp_3d_soil1(:,nysf-nbgp:nynf+nbgp, &1120 nxlf-nbgp:nxrf+nbgp)1121 1122 CASE ( 't_soil_av' )1123 IF ( .NOT. ALLOCATED( t_soil_av ) ) THEN1124 ALLOCATE( t_soil_av(nzb_soil:nzt_soil,nysg:nyng,nxlg:nxrg) )1125 ENDIF1126 IF ( k == 1 ) READ ( 13 ) tmp_3d_soil2(:,:,:)1127 t_soil_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &1128 tmp_3d_soil2(:,nysf-nbgp:nynf+nbgp, &1129 nxlf-nbgp:nxrf+nbgp)1130 993 1131 994 CASE ( 'u' ) … … 1407 1270 1408 1271 ! 1272 !-- Read land surface restart data 1273 CALL lsm_read_restart_data( i, nxlfa, nxl_on_file, nxrfa, nxr_on_file, & 1274 nynfa, nyn_on_file, nysfa, nys_on_file, & 1275 offset_xa, offset_ya, overlap_count(i), & 1276 tmp_2d ) 1277 1278 ! 1409 1279 !-- Read user-defined restart data 1410 1280 CALL user_read_restart_data( i, nxlfa, nxl_on_file, nxrfa, nxr_on_file, & … … 1418 1288 1419 1289 DEALLOCATE( tmp_2d, tmp_3d ) 1420 IF ( ALLOCATED( tmp_3d_soil1 ) ) DEALLOCATE( tmp_3d_soil1 )1421 IF ( ALLOCATED( tmp_3d_soil2 ) ) DEALLOCATE( tmp_3d_soil2 )1422 1290 1423 1291 ENDDO ! loop over restart files
Note: See TracChangeset
for help on using the changeset viewer.