Ignore:
Timestamp:
Oct 7, 2019 1:29:08 PM (4 years ago)
Author:
suehring
Message:

Land-surface model: Revise limitation for soil moisture in case it exceeds its saturation value; Revise initialization of soil moisture and temperature in a nested run in case dynamic input information is available. This case, the soil within the child domains can be initialized separately; As part of this revision, migrate the netcdf input of soil temperature / moisture to this module, as well as the routine to inter/extrapolate soil profiles between different grids.; Plant-canopy: Check if any LAD is prescribed when plant-canopy model is applied, in order to avoid crashes in the radiation transfer model; Surface-layer fluxes: Initialization of Obukhov length also at vertical surfaces (if allocated); Urban-surface model: Add checks to ensure that relative fractions of walls, windowns and green surfaces sum-u to one; Revise message calls dealing with local checks

File:
1 edited

Legend:

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

    r4245 r4258  
    2828! -----------------
    2929! $Id$
     30! - Add checks to ensure that relative fractions of walls, windowns and green
     31!   surfaces sum-up to one.
     32! - Revise message calls dealing with local checks.
     33!
     34! 4245 2019-09-30 08:40:37Z pavelkrc
    3035! Initialize explicit per-surface parameters from building_surface_pars
    3136!
     
    23552360                THEN
    23562361                   WRITE( message_string, * ) 'building_type = is out of ' //  &
    2357                                         'the valid range at (j,i) = ', j, i
    2358                    CALL message( 'usm_check_parameters', 'PA0529', 2, 2, 0, 6, 0 )
     2362                                              'the valid range at (j,i) = ', j, i
     2363                   CALL message( 'usm_check_parameters', 'PA0529', 2, 2, myid, 6, 0 )
    23592364                ENDIF
    23602365             ENDDO
     
    44344439                                    building_pars_f%pars_xy(ind_lambda_surf,j,i)
    44354440             
     4441              write(9,*) m, SUM( surf_usm_h%frac(:,m) ), "indiv", surf_usm_h%frac(0,m), surf_usm_h%frac(1,m), surf_usm_h%frac(2,m)
    44364442           ENDDO
     4443           flush(9)
    44374444
    44384445
     
    50285035           ENDDO
    50295036        ENDIF
     5037!
     5038!--     Run further checks to ensure that the respecitve material fractions are
     5039!--     prescribed properly.
     5040        DO  m = 1, surf_usm_h%ns
     5041           IF ( SUM( surf_usm_h%frac(:,m) ) /= 1.0_wp )  THEN
     5042              WRITE(message_string,*) 'The relative material fractions do ' // &
     5043                                      'not sum-up to one at horizotal ' //     &
     5044                                      'surface. (i,j) = ',                     &
     5045                                      surf_usm_h%i(m), surf_usm_h%j(m)
     5046              CALL message( 'urban_surface_model_mod', 'PA0686', 2, 2, myid, 6, 0 )
     5047           ENDIF
     5048        ENDDO
     5049       
     5050        DO  l = 0, 3
     5051           DO  m = 1, surf_usm_v(l)%ns
     5052              IF ( SUM( surf_usm_v(l)%frac(:,m) ) /= 1.0_wp )  THEN
     5053                 WRITE(message_string,*)                                       &
     5054                                      'The relative material fractions do ' // &
     5055                                      'not sum-up to one at vertical ' //      &
     5056                                      'surface. (i,j) = ',                     &
     5057                                      surf_usm_v(l)%i(m), surf_usm_v(l)%j(m)
     5058                 CALL message( 'urban_surface_model_mod', 'PA0686', 2, 2, myid, 6, 0 )
     5059              ENDIF
     5060           ENDDO
     5061        ENDDO
    50305062!       
    50315063!--     Read the surface_types array.
     
    50595091                            surf_usm_h%i(m), surf_usm_h%j(m)
    50605092             CALL message( 'urban_surface_model_mod', 'PA0503',                &
    5061                             0, 0, 0, 6, 0 )
     5093                            0, 0, myid, 6, 0 )
    50625094          ENDIF
    50635095          IF ( surf_usm_h%z0h(m) >= surf_usm_h%z_mo(m) )  THEN
     
    50715103                            surf_usm_h%i(m), surf_usm_h%j(m)
    50725104             CALL message( 'urban_surface_model_mod', 'PA0507',                &
    5073                             0, 0, 0, 6, 0 )
     5105                            0, 0, myid, 6, 0 )
    50745106          ENDIF         
    50755107       ENDDO
     
    50875119                            surf_usm_v(l)%j(m)+surf_usm_v(l)%joff
    50885120                CALL message( 'urban_surface_model_mod', 'PA0503',              &
    5089                             0, 0, 0, 6, 0 )
     5121                            0, 0, myid, 6, 0 )
    50905122             ENDIF
    50915123             IF ( surf_usm_v(l)%z0h(m) >= surf_usm_v(l)%z_mo(m) )  THEN
     
    51005132                            surf_usm_v(l)%j(m)+surf_usm_v(l)%joff
    51015133                CALL message( 'urban_surface_model_mod', 'PA0507',               &
    5102                             0, 0, 0, 6, 0 )
     5134                            0, 0, myid, 6, 0 )
    51035135             ENDIF
    51045136          ENDDO
Note: See TracChangeset for help on using the changeset viewer.