Ignore:
Timestamp:
Aug 24, 2016 3:47:17 PM (5 years ago)
Author:
kanani
Message:

changes in the course of urban surface model implementation

File:
1 edited

Legend:

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

    r2001 r2007  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! Added support for new urban surface model (temporary modifications of
     23! SELECT CASE ( ) necessary, see variable trimvar),
     24! increased DIMENSION of do2d_unit, do3d_unit, id_var_do2d, id_var_do3d,
     25! increased LEN of char_cross_profiles, var_list, var_list_old
    2326!
    2427! Former revisions:
     
    240243    CHARACTER (LEN=9), DIMENSION(300) ::  dopr_unit = 'unknown'
    241244
    242     CHARACTER (LEN=7), DIMENSION(0:1,100) ::  do2d_unit, do3d_unit
     245    CHARACTER (LEN=7), DIMENSION(0:1,500) ::  do2d_unit, do3d_unit
    243246
    244247    CHARACTER (LEN=16), DIMENSION(25) ::  prt_var_names = &
     
    319322
    320323    INTEGER(iwp), DIMENSION(dopts_num,0:10) ::  id_var_dopts
    321     INTEGER(iwp), DIMENSION(0:1,100)        ::  id_var_do2d, id_var_do3d
     324    INTEGER(iwp), DIMENSION(0:1,500)        ::  id_var_do2d, id_var_do3d
    322325    INTEGER(iwp), DIMENSION(100,0:9)        ::  id_dim_z_pr, id_var_dopr, &
    323326                                                id_var_z_pr
     
    441444        ONLY:  hom, statistic_regions
    442445
     446    USE urban_surface_mod,                                                     &
     447        ONLY:  urban_surface, usm_define_netcdf_grid
     448
    443449
    444450    IMPLICIT NONE
     
    454460    CHARACTER (LEN=10)             ::  precision             !<
    455461    CHARACTER (LEN=10)             ::  var                   !<
     462    CHARACTER (LEN=20)             ::  trimvar               !< TRIM of output-variable string
    456463    CHARACTER (LEN=80)             ::  time_average_text     !<
    457     CHARACTER (LEN=2000)           ::  char_cross_profiles   !<
    458     CHARACTER (LEN=2000)           ::  var_list              !<
    459     CHARACTER (LEN=2000)           ::  var_list_old          !<
     464    CHARACTER (LEN=4000)           ::  char_cross_profiles   !<
     465    CHARACTER (LEN=4000)           ::  var_list              !<
     466    CHARACTER (LEN=4000)           ::  var_list_old          !<
    460467
    461468    CHARACTER (LEN=100), DIMENSION(1:crmax) ::  cross_profiles_adj   !<
     
    506513    REAL(wp), DIMENSION(:), ALLOCATABLE   ::  netcdf_data    !<
    507514    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  netcdf_data_2d !<
     515
    508516
    509517!
     
    746754
    747755          DO WHILE ( domask(mid,av,i)(1:1) /= ' ' )
    748 
     756!
     757!--          Temporary solution to account for data output within the new urban
     758!--          surface model (urban_surface_mod.f90), see also SELECT CASE ( trimvar )
     759             trimvar = TRIM( domask(mid,av,i) )
     760             IF ( urban_surface  .AND.  trimvar(1:3) == 'us_' )  THEN
     761                trimvar = 'usm_output'
     762             ENDIF
    749763!
    750764!--          Check for the grid
    751765             found = .FALSE.
    752              SELECT CASE ( domask(mid,av,i) )
     766             SELECT CASE ( trimvar )
    753767!
    754768!--             Most variables are defined on the scalar grid
     
    782796                   grid_z = 'zw'
    783797
     798!             
     799!--       Block of urban surface model outputs   
     800                CASE ( 'usm_output' )
     801
     802                   CALL usm_define_netcdf_grid( domask(mid,av,i), found, &
     803                                                        grid_x, grid_y, grid_z )
    784804
    785805                CASE DEFAULT
     
    806826                                                    grid_x, grid_y, grid_z )
    807827                   ENDIF
    808 
     828                                                 
    809829                   IF ( .NOT. found )  THEN
    810830                      WRITE ( message_string, * ) 'no grid defined for',       &
     
    12561276
    12571277          DO WHILE ( do3d(av,i)(1:1) /= ' ' )
    1258 
     1278!
     1279!--          Temporary solution to account for data output within the new urban
     1280!--          surface model (urban_surface_mod.f90), see also SELECT CASE ( trimvar )
     1281             trimvar = TRIM( do3d(av,i) )
     1282             IF ( urban_surface  .AND.  trimvar(1:3) == 'us_' )  THEN
     1283                trimvar = 'usm_output'
     1284             ENDIF
    12591285!
    12601286!--          Check for the grid
    12611287             found = .FALSE.
    1262              SELECT CASE ( do3d(av,i) )
     1288             SELECT CASE ( trimvar )
    12631289!
    12641290!--             Most variables are defined on the scalar grid
     
    12921318                   grid_z = 'zw'
    12931319
     1320!             
     1321!--             Block of urban surface model outputs   
     1322                CASE ( 'usm_output' )
     1323                   CALL usm_define_netcdf_grid( do3d(av,i), found, &
     1324                                                   grid_x, grid_y, grid_z )
    12941325
    12951326                CASE DEFAULT
     
    13151346                                                    grid_y, grid_z )
    13161347                   ENDIF
    1317 
     1348                                                 
    13181349                   IF ( .NOT. found )  THEN
    13191350                      WRITE ( message_string, * ) 'no grid defined for varia', &
Note: See TracChangeset for help on using the changeset viewer.