Ignore:
Timestamp:
Dec 18, 2017 6:33:49 PM (7 years ago)
Author:
suehring
Message:

Bugfixes in radiation and restarts in LSM

File:
1 edited

Legend:

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

    r2698 r2706  
    2121! Current revisions:
    2222! ------------------
    23 !
     23! In case of restarts read and write pt_surface
    2424!
    2525! Former revisions:
     
    22352235                   IF ( ALLOCATED( surf_def_h(l)%rib ) )                       &
    22362236                      surf_h(l)%rib(mm(l))     = surf_def_h(l)%rib(m)
     2237                   IF ( ALLOCATED( surf_def_h(l)%pt_surface ) )                &
     2238                      surf_h(l)%pt_surface(mm(l)) = surf_def_h(l)%pt_surface(m)
    22372239                   IF ( ALLOCATED( surf_def_h(l)%usws ) )                      &
    22382240                      surf_h(l)%usws(mm(l))    = surf_def_h(l)%usws(m)
     
    22902292                      IF ( ALLOCATED( surf_lsm_h%rib ) )                       &
    22912293                         surf_h(0)%rib(mm(0))     = surf_lsm_h%rib(m)
     2294                      IF ( ALLOCATED( surf_lsm_h%pt_surface ) )                &
     2295                         surf_h(l)%pt_surface(mm(l)) = surf_lsm_h%pt_surface(m)
    22922296                      IF ( ALLOCATED( surf_lsm_h%usws ) )                      &
    22932297                         surf_h(0)%usws(mm(0))    = surf_lsm_h%usws(m)
     
    23452349                      IF ( ALLOCATED( surf_usm_h%rib ) )                       &
    23462350                         surf_h(0)%rib(mm(0))     = surf_usm_h%rib(m)
     2351                      IF ( ALLOCATED( surf_usm_h%pt_surface ) )                &
     2352                         surf_h(l)%pt_surface(mm(l)) = surf_usm_h%pt_surface(m)
    23472353                      IF ( ALLOCATED( surf_usm_h%usws ) )                      &
    23482354                         surf_h(0)%usws(mm(0))    = surf_usm_h%usws(m)
     
    24362442                   IF ( ALLOCATED( surf_def_v(l)%rib ) )                       &
    24372443                      surf_v(l)%rib(mm(l))     = surf_def_v(l)%rib(m)
     2444                   IF ( ALLOCATED( surf_def_v(l)%pt_surface ) )                &
     2445                      surf_v(l)%pt_surface(mm(l)) = surf_def_v(l)%pt_surface(m)
    24382446                   IF ( ALLOCATED( surf_def_v(l)%shf ) )                       &
    24392447                      surf_v(l)%shf(mm(l))     = surf_def_v(l)%shf(m)
     
    24922500                   IF ( ALLOCATED( surf_lsm_v(l)%rib ) )                       &
    24932501                      surf_v(l)%rib(mm(l))     = surf_lsm_v(l)%rib(m)
     2502                   IF ( ALLOCATED( surf_lsm_v(l)%pt_surface ) )                &
     2503                      surf_v(l)%pt_surface(mm(l)) = surf_lsm_v(l)%pt_surface(m)
    24942504                   IF ( ALLOCATED( surf_lsm_v(l)%usws ) )                      &
    24952505                      surf_v(l)%usws(mm(l))    = surf_lsm_v(l)%usws(m)
     
    25522562                   IF ( ALLOCATED( surf_usm_v(l)%rib ) )                       &
    25532563                      surf_v(l)%rib(mm(l))     = surf_usm_v(l)%rib(m)
     2564                   IF ( ALLOCATED( surf_usm_v(l)%pt_surface ) )                &
     2565                      surf_v(l)%pt_surface(mm(l)) = surf_usm_v(l)%pt_surface(m)
    25542566                   IF ( ALLOCATED( surf_usm_v(l)%usws ) )                      &
    25552567                      surf_v(l)%usws(mm(l))    = surf_usm_v(l)%usws(m)
     
    26572669             WRITE ( 14 )  surf_h(l)%rib
    26582670          ENDIF
     2671          WRITE ( 14 )  'surf_h(' // dum // ')%pt_surface          ' 
     2672          IF ( ALLOCATED ( surf_h(l)%pt_surface ) )  THEN
     2673             WRITE ( 14 )  surf_h(l)%pt_surface
     2674          ENDIF
    26592675          WRITE ( 14 )  'surf_h(' // dum // ')%usws                ' 
    26602676          IF ( ALLOCATED ( surf_h(l)%usws ) )  THEN
     
    27572773          IF ( ALLOCATED ( surf_v(l)%rib ) )  THEN
    27582774             WRITE ( 14 )  surf_v(l)%rib
     2775          ENDIF
     2776          WRITE ( 14 )  'surf_v(' // dum // ')%pt_surface          ' 
     2777          IF ( ALLOCATED ( surf_v(l)%pt_surface ) )  THEN
     2778             WRITE ( 14 )  surf_v(l)%pt_surface
    27592779          ENDIF
    27602780          WRITE ( 14 )  'surf_v(' // dum // ')%shf                 ' 
     
    29973017                      IF ( ALLOCATED( surf_h(0)%rib )  .AND.  kk == 1 )        &
    29983018                         READ ( 13 )  surf_h(0)%rib
     3019                   CASE ( 'surf_h(0)%pt_surface' )         
     3020                      IF ( ALLOCATED( surf_h(0)%pt_surface )  .AND.  kk == 1 ) &
     3021                         READ ( 13 )  surf_h(0)%pt_surface
    29993022                   CASE ( 'surf_h(0)%usws' )         
    30003023                      IF ( ALLOCATED( surf_h(0)%usws )  .AND.  kk == 1 )       &
     
    30733096                      IF ( ALLOCATED( surf_h(1)%rib )  .AND.  kk == 1 )        &
    30743097                         READ ( 13 )  surf_h(1)%rib
     3098                   CASE ( 'surf_h(1)%pt_surface' )         
     3099                      IF ( ALLOCATED( surf_h(1)%pt_surface )  .AND.  kk == 1 ) &
     3100                         READ ( 13 )  surf_h(1)%pt_surface
    30753101                   CASE ( 'surf_h(1)%usws' )         
    30763102                      IF ( ALLOCATED( surf_h(1)%usws )  .AND.  kk == 1 )       &
     
    32273253                      IF ( ALLOCATED( surf_v(0)%rib )  .AND.  kk == 1 )        &
    32283254                         READ ( 13 )  surf_v(0)%rib
     3255                   CASE ( 'surf_v(0)%pt_surface' )         
     3256                      IF ( ALLOCATED( surf_v(0)%pt_surface )  .AND.  kk == 1 ) &
     3257                         READ ( 13 )  surf_v(0)%pt_surface
    32293258                   CASE ( 'surf_v(0)%shf' )         
    32303259                      IF ( ALLOCATED( surf_v(0)%shf )  .AND.  kk == 1 )        &
     
    33063335                      IF ( ALLOCATED( surf_v(1)%rib )  .AND.  kk == 1 )        &
    33073336                         READ ( 13 )  surf_v(1)%rib
     3337                   CASE ( 'surf_v(1)%pt_surface' )         
     3338                      IF ( ALLOCATED( surf_v(1)%pt_surface )  .AND.  kk == 1 ) &
     3339                         READ ( 13 )  surf_v(1)%pt_surface
    33083340                   CASE ( 'surf_v(1)%shf' )         
    33093341                      IF ( ALLOCATED( surf_v(1)%shf )  .AND.  kk == 1 )        &
     
    33853417                      IF ( ALLOCATED( surf_v(2)%rib )  .AND.  kk == 1 )        &
    33863418                         READ ( 13 )  surf_v(2)%rib
     3419                   CASE ( 'surf_v(2)%pt_surface' )         
     3420                      IF ( ALLOCATED( surf_v(2)%pt_surface )  .AND.  kk == 1 ) &
     3421                         READ ( 13 )  surf_v(2)%pt_surface
    33873422                   CASE ( 'surf_v(2)%shf' )         
    33883423                      IF ( ALLOCATED( surf_v(2)%shf )  .AND.  kk == 1 )        &
     
    34643499                      IF ( ALLOCATED( surf_v(3)%rib )  .AND.  kk == 1 )        &
    34653500                         READ ( 13 )  surf_v(3)%rib
     3501                   CASE ( 'surf_v(3)%pt_surface' )         
     3502                      IF ( ALLOCATED( surf_v(3)%pt_surface )  .AND.  kk == 1 ) &
     3503                         READ ( 13 )  surf_v(3)%pt_surface
    34663504                   CASE ( 'surf_v(3)%shf' )         
    34673505                      IF ( ALLOCATED( surf_v(3)%shf )  .AND.  kk == 1 )        &
     
    36463684             ENDIF
    36473685
     3686             IF ( INDEX( TRIM( field_chr ), '%pt_surface' ) /= 0 )  THEN
     3687                IF ( ALLOCATED( surf_target%pt_surface )  .AND.                &
     3688                     ALLOCATED( surf_file%pt_surface   ) )                     &
     3689                   surf_target%pt_surface(m_target) = surf_file%pt_surface(m_file)
     3690             ENDIF
     3691
    36483692             IF ( INDEX( TRIM( field_chr ), '%usws' ) /= 0 )  THEN
    36493693                IF ( ALLOCATED( surf_target%usws )  .AND.                      &
Note: See TracChangeset for help on using the changeset viewer.