Ignore:
Timestamp:
May 30, 2017 5:47:52 PM (4 years ago)
Author:
suehring
Message:

Adjustments according new topography and surface-modelling concept implemented

File:
1 edited

Legend:

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

    r2101 r2232  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Adjustments to new surface concept - move output of surface varariables
     23! to surface_mod
    2324!
    2425! Former revisions:
     
    120121
    121122    USE arrays_3d,                                                             &
    122         ONLY:  e, kh, km, ol, p, pt, q, ql, qc, nr, nrs, nrsws, nrswst,        &
    123                prr, precipitation_amount, qr,                                  &
    124                qrs, qrsws, qrswst, qs, qsws, qswst, s, sa, saswsb, saswst,     &
    125                ss, ssws, sswst, rif_wall, shf, ss, ts, tswst, u, u_m_l, u_m_n, &
    126                u_m_r, u_m_s, us, usws, uswst, v, v_m_l, v_m_n, v_m_r, v_m_s,   &
    127                vpt, vsws, vswst, w, w_m_l, w_m_n, w_m_r, w_m_s, z0, z0h, z0q
     123        ONLY:  e, kh, km, p, pt, q, ql, qc, nr, prr, precipitation_amount, qr, &
     124               s, sa, u, u_m_l, u_m_n, u_m_r, u_m_s, v, v_m_l, v_m_n, v_m_r,   &
     125               v_m_s, vpt, w, w_m_l, w_m_n, w_m_r, w_m_s
    128126
    129127    USE averaging
    130128
    131129    USE control_parameters,                                                    &
    132         ONLY:  iran, message_string, outflow_l, outflow_n, outflow_r, outflow_s
     130        ONLY:  iran, land_surface, message_string, outflow_l, outflow_n,       &
     131               outflow_r, outflow_s
    133132
    134133    USE cpulog,                                                                &
     
    142141
    143142    USE land_surface_model_mod,                                                &
    144         ONLY:  land_surface, lsm_read_restart_data
     143        ONLY:  lsm_read_restart_data
    145144
    146145    USE particle_attributes,                                                   &
     
    161160        ONLY:  spectrum_x, spectrum_y
    162161
     162    USE surface_mod,                                                           &
     163        ONLY :  surface_read_restart_data
    163164
    164165    IMPLICIT NONE
     
    436437             nync = nynfa(i,k) + offset_ya(i,k)
    437438
     439             write(9,*) "f", nxlf, nxrf, nysf, nynf
     440             write(9,*) "c", nxlc, nxrc, nysc, nync
     441
     442
    438443
    439444             SELECT CASE ( TRIM( field_chr ) )
     
    494499                   nr_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
    495500                                    tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    496 
    497                 CASE ( 'nrs' )
    498                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    499                    nrs(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    500                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    501 
    502                 CASE ( 'nrsws' )
    503                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    504                    nrsws(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    505                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    506 
    507                 CASE ( 'nrswst' )
    508                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    509                    nrswst(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    510                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    511                 CASE ( 'ol' )
    512                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    513                    ol(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    514                                          tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    515501
    516502                CASE ( 'p' )
     
    637623                                    tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    638624
    639                 CASE ( 'qrs' )
    640                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    641                    qrs(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    642                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    643 
    644                 CASE ( 'qrsws' )
    645                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    646                    qrsws(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    647                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    648 
    649                 CASE ( 'qrswst' )
    650                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    651                    qrswst(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    652                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    653 
    654625                CASE ( 'ql_c_av' )
    655626                   IF ( .NOT. ALLOCATED( ql_c_av ) )  THEN
     
    675646                   ql_vp_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
    676647                                        tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    677 
    678                 CASE ( 'qs' )
    679                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    680                    qs(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    681                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    682 
    683                 CASE ( 'qsws' )
    684                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    685                    qsws(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    686                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    687648
    688649                CASE ( 'qsws_av' )
     
    694655                                          tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    695656
    696                 CASE ( 'qswst' )
    697                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    698                    qswst(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    699                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    700 
    701657                CASE ( 'qv_av' )
    702658                   IF ( .NOT. ALLOCATED( qv_av ) )  THEN
     
    722678                   rho_ocean_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
    723679                                tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    724 
    725                 CASE ( 'rif_wall' )
    726                    IF ( k == 1 )  THEN
    727                       ALLOCATE( tmp_4d(nzb:nzt+1,nys_on_file-nbgp:nyn_on_file+nbgp, &
    728                                        nxl_on_file-nbgp:nxr_on_file+nbgp,1:4) )
    729                       READ ( 13 )  tmp_4d
    730                    ENDIF
    731                    rif_wall(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp,:) = &
    732                             tmp_4d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp,:)
    733                            
     680                           
    734681                CASE ( 's' )
    735682                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     
    757704                   sa_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
    758705                                    tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    759 
    760                 CASE ( 'saswsb' )
    761                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    762                    saswsb(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    763                          tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    764 
    765                 CASE ( 'saswst' )
    766                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    767                    saswst(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    768                          tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    769 
    770                 CASE ( 'shf' )
    771                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    772                    shf(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    773                       tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    774706
    775707                CASE ( 'shf_av' )
     
    811743                   ENDIF
    812744                   
    813                 CASE ( 'ss' )
    814                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    815                    ss(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    816                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    817 
    818                 CASE ( 'ssws' )
    819                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    820                    ssws(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    821                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    822 
    823745                CASE ( 'ssws_av' )
    824746                   IF ( .NOT. ALLOCATED( ssws_av ) )  THEN
     
    828750                   ssws_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    829751                                          tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    830 
    831                 CASE ( 'sswst' )
    832                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    833                    sswst(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    834                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    835752                 
    836                 CASE ( 'ts' )
    837                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    838                    ts(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    839                      tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    840 
    841753                CASE ( 'ts_av' )
    842754                   IF ( .NOT. ALLOCATED( ts_av ) )  THEN
     
    847759                        tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    848760
    849                 CASE ( 'tswst' )
    850                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    851                    tswst(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    852                          tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    853 
    854761                CASE ( 'u' )
    855762                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     
    905812                   ENDIF
    906813
    907                 CASE ( 'us' )
    908                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    909                    us(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    910                      tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    911 
    912                 CASE ( 'usws' )
    913                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    914                    usws(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    915                        tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    916 
    917                 CASE ( 'uswst' )
    918                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    919                    uswst(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    920                         tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    921 
    922814                CASE ( 'us_av' )
    923815                   IF ( .NOT. ALLOCATED( us_av ) )  THEN
     
    994886                               tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    995887
    996                 CASE ( 'vsws' )
    997                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    998                    vsws(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    999                        tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    1000 
    1001                 CASE ( 'vswst' )
    1002                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    1003                    vswst(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    1004                         tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    1005 
    1006888                CASE ( 'w' )
    1007889                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     
    1058940                   DEALLOCATE( tmp_3dwws )
    1059941
    1060                 CASE ( 'z0' )
    1061                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    1062                    z0(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    1063                      tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    1064 
    1065942                CASE ( 'z0_av' )
    1066943                   IF ( .NOT. ALLOCATED( z0_av ) )  THEN
     
    1071948                       tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    1072949
    1073                 CASE ( 'z0h' )
    1074                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    1075                    z0h(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    1076                      tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    1077 
    1078950                CASE ( 'z0h_av' )
    1079951                   IF ( .NOT. ALLOCATED( z0h_av ) )  THEN
     
    1083955                   z0h_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    1084956                       tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    1085 
    1086                 CASE ( 'z0q' )
    1087                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    1088                    z0q(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    1089                      tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    1090957
    1091958                CASE ( 'z0q_av' )
     
    1128995
    1129996       ENDDO  ! loop over variables
     997!
     998!--    Read surface related variables
     999       CALL surface_read_restart_data( i, nxlfa, nxl_on_file, nxrfa,           &
     1000                                       nxr_on_file, nynfa, nyn_on_file, nysfa, &
     1001                                       nys_on_file, offset_xa, offset_ya,      &
     1002                                       overlap_count(i) )
    11301003
    11311004!
Note: See TracChangeset for help on using the changeset viewer.