Ignore:
Timestamp:
Sep 9, 2020 8:27:58 PM (4 years ago)
Author:
pavelkrc
Message:

Radiative transfer model RTM version 4.1

File:
1 edited

Legend:

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

    r4601 r4671  
    2525! -----------------
    2626! $Id$
     27! Implementation of downward facing USM and LSM surfaces
     28!
     29! 4601 2020-07-14 12:06:09Z suehring
    2730! Minor simplification in name creation for IO variables in restart files.
    2831!
     
    372375!
    373376!-- Determine the number of surface elements on subdomain
    374     surfaces%ns = surf_def_h(0)%ns + surf_lsm_h%ns + surf_usm_h%ns           & !horizontal upward-facing
    375                 + surf_def_h(1)%ns                                           & !horizontal downard-facing
     377    surfaces%ns = surf_def_h(0)%ns + surf_lsm_h(0)%ns + surf_usm_h(0)%ns     & !horizontal upward-facing
     378                + surf_def_h(1)%ns + surf_lsm_h(1)%ns + surf_usm_h(1)%ns     & !horizontal downard-facing
    376379                + surf_def_v(0)%ns + surf_lsm_v(0)%ns + surf_usm_v(0)%ns     & !northward-facing
    377380                + surf_def_v(1)%ns + surf_lsm_v(1)%ns + surf_usm_v(1)%ns     & !southward-facing
     
    474477             ENDIF
    475478          ENDDO
    476        ENDDO
    477        DO  m = 1, surf_lsm_h%ns
    478           i = surf_lsm_h%i(m) + surf_lsm_h%ioff
    479           j = surf_lsm_h%j(m) + surf_lsm_h%joff
    480           k = surf_lsm_h%k(m) + surf_lsm_h%koff
    481 
    482           IF ( point_index(k,j,i) < 0 )  THEN
    483              surfaces%npoints   = surfaces%npoints + 1
    484              point_index(k,j,i) = surfaces%npoints - 1
    485           ENDIF
    486           IF ( point_index(k,j,i+1) < 0 )  THEN
    487              surfaces%npoints     = surfaces%npoints + 1
    488              point_index(k,j,i+1) = surfaces%npoints - 1
    489           ENDIF
    490           IF ( point_index(k,j+1,i+1) < 0 )  THEN
    491              surfaces%npoints       = surfaces%npoints + 1
    492              point_index(k,j+1,i+1) = surfaces%npoints - 1
    493           ENDIF
    494           IF ( point_index(k,j+1,i) < 0 )  THEN
    495              surfaces%npoints     = surfaces%npoints + 1
    496              point_index(k,j+1,i) = surfaces%npoints - 1
    497           ENDIF
    498        ENDDO
    499        DO  m = 1, surf_usm_h%ns
    500           i = surf_usm_h%i(m) + surf_usm_h%ioff
    501           j = surf_usm_h%j(m) + surf_usm_h%joff
    502           k = surf_usm_h%k(m) + surf_usm_h%koff
    503 
    504           IF ( point_index(k,j,i) < 0 )  THEN
    505              surfaces%npoints   = surfaces%npoints + 1
    506              point_index(k,j,i) = surfaces%npoints - 1
    507           ENDIF
    508           IF ( point_index(k,j,i+1) < 0 )  THEN
    509              surfaces%npoints     = surfaces%npoints + 1
    510              point_index(k,j,i+1) = surfaces%npoints - 1
    511           ENDIF
    512           IF ( point_index(k,j+1,i+1) < 0 )  THEN
    513              surfaces%npoints       = surfaces%npoints + 1
    514              point_index(k,j+1,i+1) = surfaces%npoints - 1
    515           ENDIF
    516           IF ( point_index(k,j+1,i) < 0 )  THEN
    517              surfaces%npoints     = surfaces%npoints + 1
    518              point_index(k,j+1,i) = surfaces%npoints - 1
    519           ENDIF
     479          DO  m = 1, surf_lsm_h(l)%ns
     480             i = surf_lsm_h(l)%i(m) + surf_lsm_h(l)%ioff
     481             j = surf_lsm_h(l)%j(m) + surf_lsm_h(l)%joff
     482             k = surf_lsm_h(l)%k(m) + surf_lsm_h(l)%koff
     483
     484             IF ( point_index(k,j,i) < 0 )  THEN
     485                surfaces%npoints   = surfaces%npoints + 1
     486                point_index(k,j,i) = surfaces%npoints - 1
     487             ENDIF
     488             IF ( point_index(k,j,i+1) < 0 )  THEN
     489                surfaces%npoints     = surfaces%npoints + 1
     490                point_index(k,j,i+1) = surfaces%npoints - 1
     491             ENDIF
     492             IF ( point_index(k,j+1,i+1) < 0 )  THEN
     493                surfaces%npoints       = surfaces%npoints + 1
     494                point_index(k,j+1,i+1) = surfaces%npoints - 1
     495             ENDIF
     496             IF ( point_index(k,j+1,i) < 0 )  THEN
     497                surfaces%npoints     = surfaces%npoints + 1
     498                point_index(k,j+1,i) = surfaces%npoints - 1
     499             ENDIF
     500          ENDDO
     501          DO  m = 1, surf_usm_h(l)%ns
     502             i = surf_usm_h(l)%i(m) + surf_usm_h(l)%ioff
     503             j = surf_usm_h(l)%j(m) + surf_usm_h(l)%joff
     504             k = surf_usm_h(l)%k(m) + surf_usm_h(l)%koff
     505
     506             IF ( point_index(k,j,i) < 0 )  THEN
     507                surfaces%npoints   = surfaces%npoints + 1
     508                point_index(k,j,i) = surfaces%npoints - 1
     509             ENDIF
     510             IF ( point_index(k,j,i+1) < 0 )  THEN
     511                surfaces%npoints     = surfaces%npoints + 1
     512                point_index(k,j,i+1) = surfaces%npoints - 1
     513             ENDIF
     514             IF ( point_index(k,j+1,i+1) < 0 )  THEN
     515                surfaces%npoints       = surfaces%npoints + 1
     516                point_index(k,j+1,i+1) = surfaces%npoints - 1
     517             ENDIF
     518             IF ( point_index(k,j+1,i) < 0 )  THEN
     519                surfaces%npoints     = surfaces%npoints + 1
     520                point_index(k,j+1,i) = surfaces%npoints - 1
     521             ENDIF
     522          ENDDO
    520523       ENDDO
    521524!
     
    731734             surfaces%polygons(5,npg)   = point_index(k,j+1,i)
    732735          ENDDO
    733        ENDDO
    734        DO  m = 1, surf_lsm_h%ns
    735           i = surf_lsm_h%i(m) + surf_lsm_h%ioff
    736           j = surf_lsm_h%j(m) + surf_lsm_h%joff
    737           k = surf_lsm_h%k(m) + surf_lsm_h%koff
    738           IF ( point_index(k,j,i) < 0 )  THEN
    739              surfaces%npoints   = surfaces%npoints + 1
    740              point_index(k,j,i) = point_index_count
    741              point_index_count  = point_index_count + 1
    742              surfaces%points(1,surfaces%npoints) = ( i - 0.5_wp ) * dx
    743              surfaces%points(2,surfaces%npoints) = ( j - 0.5_wp ) * dy
    744              surfaces%points(3,surfaces%npoints) = zw(k)
    745           ENDIF
    746           IF ( point_index(k,j,i+1) < 0 )  THEN
    747              surfaces%npoints     = surfaces%npoints + 1
    748              point_index(k,j,i+1) = point_index_count
    749              point_index_count    = point_index_count + 1
    750              surfaces%points(1,surfaces%npoints) = ( i + 1 - 0.5_wp ) * dx
    751              surfaces%points(2,surfaces%npoints) = ( j     - 0.5_wp ) * dy
    752              surfaces%points(3,surfaces%npoints) = zw(k)
    753           ENDIF
    754           IF ( point_index(k,j+1,i+1) < 0 )  THEN
    755              surfaces%npoints       = surfaces%npoints + 1
    756              point_index(k,j+1,i+1) = point_index_count
    757              point_index_count      = point_index_count + 1
    758              surfaces%points(1,surfaces%npoints) = ( i + 1 - 0.5_wp ) * dx
    759              surfaces%points(2,surfaces%npoints) = ( j + 1 - 0.5_wp ) * dy
    760              surfaces%points(3,surfaces%npoints) = zw(k)
    761           ENDIF
    762           IF ( point_index(k,j+1,i) < 0 )  THEN
    763              surfaces%npoints     = surfaces%npoints + 1
    764              point_index(k,j+1,i) = point_index_count
    765              point_index_count    = point_index_count + 1
    766              surfaces%points(1,surfaces%npoints) = ( i     - 0.5_wp ) * dx
    767              surfaces%points(2,surfaces%npoints) = ( j + 1 - 0.5_wp ) * dy
    768              surfaces%points(3,surfaces%npoints) = zw(k)
    769           ENDIF
    770 
    771           npg                        = npg + 1
    772           surfaces%polygons(1,npg)   = 4
    773           surfaces%polygons(2,npg)   = point_index(k,j,i)
    774           surfaces%polygons(3,npg)   = point_index(k,j,i+1)
    775           surfaces%polygons(4,npg)   = point_index(k,j+1,i+1)
    776           surfaces%polygons(5,npg)   = point_index(k,j+1,i)
    777        ENDDO
    778 
    779        DO  m = 1, surf_usm_h%ns
    780           i = surf_usm_h%i(m) + surf_usm_h%ioff
    781           j = surf_usm_h%j(m) + surf_usm_h%joff
    782           k = surf_usm_h%k(m) + surf_usm_h%koff
    783 
    784           IF ( point_index(k,j,i) < 0 )  THEN
    785              surfaces%npoints   = surfaces%npoints + 1
    786              point_index(k,j,i) = point_index_count
    787              point_index_count  = point_index_count + 1
    788              surfaces%points(1,surfaces%npoints) = ( i - 0.5_wp ) * dx
    789              surfaces%points(2,surfaces%npoints) = ( j - 0.5_wp ) * dy
    790              surfaces%points(3,surfaces%npoints) = zw(k)
    791           ENDIF
    792           IF ( point_index(k,j,i+1) < 0 )  THEN
    793              surfaces%npoints     = surfaces%npoints + 1
    794              point_index(k,j,i+1) = point_index_count
    795              point_index_count    = point_index_count + 1
    796              surfaces%points(1,surfaces%npoints) = ( i + 1 - 0.5_wp ) * dx
    797              surfaces%points(2,surfaces%npoints) = ( j     - 0.5_wp ) * dy
    798              surfaces%points(3,surfaces%npoints) = zw(k)
    799           ENDIF
    800           IF ( point_index(k,j+1,i+1) < 0 )  THEN
    801              surfaces%npoints       = surfaces%npoints + 1
    802              point_index(k,j+1,i+1) = point_index_count
    803              point_index_count      = point_index_count + 1
    804              surfaces%points(1,surfaces%npoints) = ( i + 1 - 0.5_wp ) * dx
    805              surfaces%points(2,surfaces%npoints) = ( j + 1 - 0.5_wp ) * dy
    806              surfaces%points(3,surfaces%npoints) = zw(k)
    807           ENDIF
    808           IF ( point_index(k,j+1,i) < 0 )  THEN
    809              surfaces%npoints     = surfaces%npoints + 1
    810              point_index(k,j+1,i) = point_index_count
    811              point_index_count    = point_index_count + 1
    812              surfaces%points(1,surfaces%npoints) = ( i     - 0.5_wp ) * dx
    813              surfaces%points(2,surfaces%npoints) = ( j + 1 - 0.5_wp ) * dy
    814              surfaces%points(3,surfaces%npoints) = zw(k)
    815           ENDIF
    816 
    817           npg                        = npg + 1
    818           surfaces%polygons(1,npg)   = 4
    819           surfaces%polygons(2,npg)   = point_index(k,j,i)
    820           surfaces%polygons(3,npg)   = point_index(k,j,i+1)
    821           surfaces%polygons(4,npg)   = point_index(k,j+1,i+1)
    822           surfaces%polygons(5,npg)   = point_index(k,j+1,i)
     736          DO  m = 1, surf_lsm_h(l)%ns
     737             i = surf_lsm_h(l)%i(m) + surf_lsm_h(l)%ioff
     738             j = surf_lsm_h(l)%j(m) + surf_lsm_h(l)%joff
     739             k = surf_lsm_h(l)%k(m) + surf_lsm_h(l)%koff
     740             IF ( point_index(k,j,i) < 0 )  THEN
     741                surfaces%npoints   = surfaces%npoints + 1
     742                point_index(k,j,i) = point_index_count
     743                point_index_count  = point_index_count + 1
     744                surfaces%points(1,surfaces%npoints) = ( i - 0.5_wp ) * dx
     745                surfaces%points(2,surfaces%npoints) = ( j - 0.5_wp ) * dy
     746                surfaces%points(3,surfaces%npoints) = zw(k)
     747             ENDIF
     748             IF ( point_index(k,j,i+1) < 0 )  THEN
     749                surfaces%npoints     = surfaces%npoints + 1
     750                point_index(k,j,i+1) = point_index_count
     751                point_index_count    = point_index_count + 1
     752                surfaces%points(1,surfaces%npoints) = ( i + 1 - 0.5_wp ) * dx
     753                surfaces%points(2,surfaces%npoints) = ( j     - 0.5_wp ) * dy
     754                surfaces%points(3,surfaces%npoints) = zw(k)
     755             ENDIF
     756             IF ( point_index(k,j+1,i+1) < 0 )  THEN
     757                surfaces%npoints       = surfaces%npoints + 1
     758                point_index(k,j+1,i+1) = point_index_count
     759                point_index_count      = point_index_count + 1
     760                surfaces%points(1,surfaces%npoints) = ( i + 1 - 0.5_wp ) * dx
     761                surfaces%points(2,surfaces%npoints) = ( j + 1 - 0.5_wp ) * dy
     762                surfaces%points(3,surfaces%npoints) = zw(k)
     763             ENDIF
     764             IF ( point_index(k,j+1,i) < 0 )  THEN
     765                surfaces%npoints     = surfaces%npoints + 1
     766                point_index(k,j+1,i) = point_index_count
     767                point_index_count    = point_index_count + 1
     768                surfaces%points(1,surfaces%npoints) = ( i     - 0.5_wp ) * dx
     769                surfaces%points(2,surfaces%npoints) = ( j + 1 - 0.5_wp ) * dy
     770                surfaces%points(3,surfaces%npoints) = zw(k)
     771             ENDIF
     772
     773             npg                        = npg + 1
     774             surfaces%polygons(1,npg)   = 4
     775             surfaces%polygons(2,npg)   = point_index(k,j,i)
     776             surfaces%polygons(3,npg)   = point_index(k,j,i+1)
     777             surfaces%polygons(4,npg)   = point_index(k,j+1,i+1)
     778             surfaces%polygons(5,npg)   = point_index(k,j+1,i)
     779          ENDDO
     780
     781          DO  m = 1, surf_usm_h(l)%ns
     782             i = surf_usm_h(l)%i(m) + surf_usm_h(l)%ioff
     783             j = surf_usm_h(l)%j(m) + surf_usm_h(l)%joff
     784             k = surf_usm_h(l)%k(m) + surf_usm_h(l)%koff
     785
     786             IF ( point_index(k,j,i) < 0 )  THEN
     787                surfaces%npoints   = surfaces%npoints + 1
     788                point_index(k,j,i) = point_index_count
     789                point_index_count  = point_index_count + 1
     790                surfaces%points(1,surfaces%npoints) = ( i - 0.5_wp ) * dx
     791                surfaces%points(2,surfaces%npoints) = ( j - 0.5_wp ) * dy
     792                surfaces%points(3,surfaces%npoints) = zw(k)
     793             ENDIF
     794             IF ( point_index(k,j,i+1) < 0 )  THEN
     795                surfaces%npoints     = surfaces%npoints + 1
     796                point_index(k,j,i+1) = point_index_count
     797                point_index_count    = point_index_count + 1
     798                surfaces%points(1,surfaces%npoints) = ( i + 1 - 0.5_wp ) * dx
     799                surfaces%points(2,surfaces%npoints) = ( j     - 0.5_wp ) * dy
     800                surfaces%points(3,surfaces%npoints) = zw(k)
     801             ENDIF
     802             IF ( point_index(k,j+1,i+1) < 0 )  THEN
     803                surfaces%npoints       = surfaces%npoints + 1
     804                point_index(k,j+1,i+1) = point_index_count
     805                point_index_count      = point_index_count + 1
     806                surfaces%points(1,surfaces%npoints) = ( i + 1 - 0.5_wp ) * dx
     807                surfaces%points(2,surfaces%npoints) = ( j + 1 - 0.5_wp ) * dy
     808                surfaces%points(3,surfaces%npoints) = zw(k)
     809             ENDIF
     810             IF ( point_index(k,j+1,i) < 0 )  THEN
     811                surfaces%npoints     = surfaces%npoints + 1
     812                point_index(k,j+1,i) = point_index_count
     813                point_index_count    = point_index_count + 1
     814                surfaces%points(1,surfaces%npoints) = ( i     - 0.5_wp ) * dx
     815                surfaces%points(2,surfaces%npoints) = ( j + 1 - 0.5_wp ) * dy
     816                surfaces%points(3,surfaces%npoints) = zw(k)
     817             ENDIF
     818
     819             npg                        = npg + 1
     820             surfaces%polygons(1,npg)   = 4
     821             surfaces%polygons(2,npg)   = point_index(k,j,i)
     822             surfaces%polygons(3,npg)   = point_index(k,j,i+1)
     823             surfaces%polygons(4,npg)   = point_index(k,j+1,i+1)
     824             surfaces%polygons(5,npg)   = point_index(k,j+1,i)
     825          ENDDO
    823826       ENDDO
    824827
     
    11191122        i  = start_count
    11201123        mm = 1
    1121         DO  m = 1, surf_def_h(0)%ns
    1122            surfaces%s(mm)       = i
    1123            surfaces%xs(mm)      = ( surf_def_h(0)%i(m) + 0.5_wp ) * dx
    1124            surfaces%ys(mm)      = ( surf_def_h(0)%j(m) + 0.5_wp ) * dy
    1125            surfaces%zs(mm)      = zw(surf_def_h(0)%k(m)+surf_def_h(0)%koff)
    1126            surfaces%azimuth(mm) = surfaces%fillvalue
    1127            surfaces%zenith(mm)  = 0.0
    1128            i                    = i + 1
    1129            mm                   = mm + 1
    1130         ENDDO
    1131         DO  m = 1, surf_lsm_h%ns
    1132            surfaces%s(mm)       = i
    1133            surfaces%xs(mm)      = ( surf_lsm_h%i(m) + 0.5_wp ) * dx
    1134            surfaces%ys(mm)      = ( surf_lsm_h%j(m) + 0.5_wp ) * dy
    1135            surfaces%zs(mm)      = zw(surf_lsm_h%k(m)+surf_lsm_h%koff)
    1136            surfaces%azimuth(mm) = surfaces%fillvalue
    1137            surfaces%zenith(mm)  = 0.0
    1138            i                    = i + 1
    1139            mm                   = mm + 1
    1140         ENDDO
    1141         DO  m = 1, surf_usm_h%ns
    1142            surfaces%s(mm)       = i
    1143            surfaces%xs(mm)      = ( surf_usm_h%i(m) + 0.5_wp ) * dx
    1144            surfaces%ys(mm)      = ( surf_usm_h%j(m) + 0.5_wp ) * dy
    1145            surfaces%zs(mm)      = zw(surf_usm_h%k(m)+surf_usm_h%koff)
    1146            surfaces%azimuth(mm) = surfaces%fillvalue
    1147            surfaces%zenith(mm)  = 0.0
    1148            i                    = i + 1
    1149            mm                   = mm + 1
    1150         ENDDO
    1151         DO  m = 1, surf_def_h(1)%ns
    1152            surfaces%s(mm)       = i
    1153            surfaces%xs(mm)      = ( surf_def_h(1)%i(m) + 0.5_wp ) * dx
    1154            surfaces%ys(mm)      = ( surf_def_h(1)%j(m) + 0.5_wp ) * dy
    1155            surfaces%zs(mm)      = zw(surf_def_h(1)%k(m)+surf_def_h(1)%koff)
    1156            surfaces%azimuth(mm) = surfaces%fillvalue
    1157            surfaces%zenith(mm)  = 180.0
    1158            i                    = i + 1
    1159            mm                   = mm + 1
     1124        DO l = 0, 1
     1125           DO  m = 1, surf_def_h(l)%ns
     1126              surfaces%s(mm)       = i
     1127              surfaces%xs(mm)      = ( surf_def_h(l)%i(m) + 0.5_wp ) * dx
     1128              surfaces%ys(mm)      = ( surf_def_h(l)%j(m) + 0.5_wp ) * dy
     1129              surfaces%zs(mm)      = zw(surf_def_h(l)%k(m)+surf_def_h(l)%koff)
     1130              surfaces%azimuth(mm) = surfaces%fillvalue
     1131              surfaces%zenith(mm)  = 180.0_wp * l
     1132              i                    = i + 1
     1133              mm                   = mm + 1
     1134           ENDDO
     1135           DO  m = 1, surf_lsm_h(l)%ns
     1136              surfaces%s(mm)       = i
     1137              surfaces%xs(mm)      = ( surf_lsm_h(l)%i(m) + 0.5_wp ) * dx
     1138              surfaces%ys(mm)      = ( surf_lsm_h(l)%j(m) + 0.5_wp ) * dy
     1139              surfaces%zs(mm)      = zw(surf_lsm_h(l)%k(m)+surf_lsm_h(l)%koff)
     1140              surfaces%azimuth(mm) = surfaces%fillvalue
     1141              surfaces%zenith(mm)  = 180.0_wp * l
     1142              i                    = i + 1
     1143              mm                   = mm + 1
     1144           ENDDO
     1145           DO  m = 1, surf_usm_h(l)%ns
     1146              surfaces%s(mm)       = i
     1147              surfaces%xs(mm)      = ( surf_usm_h(l)%i(m) + 0.5_wp ) * dx
     1148              surfaces%ys(mm)      = ( surf_usm_h(l)%j(m) + 0.5_wp ) * dy
     1149              surfaces%zs(mm)      = zw(surf_usm_h(l)%k(m)+surf_usm_h(l)%koff)
     1150              surfaces%azimuth(mm) = surfaces%fillvalue
     1151              surfaces%zenith(mm)  = 180.0_wp * l
     1152              i                    = i + 1
     1153              mm                   = mm + 1
     1154           ENDDO
    11601155        ENDDO
    11611156!
     
    15281523!--          Output of instantaneous data
    15291524             IF ( av == 0 )  THEN
    1530                 CALL surface_data_output_collect( surf_def_h(0)%us, surf_def_h(1)%us,              &
    1531                                                   surf_lsm_h%us, surf_usm_h%us, surf_def_v(0)%us,  &
    1532                                                   surf_lsm_v(0)%us, surf_usm_v(0)%us,              &
    1533                                                   surf_def_v(1)%us, surf_lsm_v(1)%us,              &
    1534                                                   surf_usm_v(1)%us, surf_def_v(2)%us,              &
    1535                                                   surf_lsm_v(2)%us, surf_usm_v(2)%us,              &
    1536                                                   surf_def_v(3)%us, surf_lsm_v(3)%us,              &
    1537                                                   surf_usm_v(3)%us )
     1525                CALL surface_data_output_collect(                                  &
     1526                          surf_def_h(0)%us, surf_lsm_h(0)%us, surf_usm_h(0)%us,    &
     1527                          surf_def_h(1)%us, surf_lsm_h(1)%us, surf_usm_h(1)%us,    &
     1528                          surf_def_v(0)%us, surf_lsm_v(0)%us, surf_usm_v(0)%us,    &
     1529                          surf_def_v(1)%us, surf_lsm_v(1)%us, surf_usm_v(1)%us,    &
     1530                          surf_def_v(2)%us, surf_lsm_v(2)%us, surf_usm_v(2)%us,    &
     1531                          surf_def_v(3)%us, surf_lsm_v(3)%us, surf_usm_v(3)%us )
    15381532             ELSE
    15391533!
     
    15481542!--          Output of instantaneous data
    15491543             IF ( av == 0 )  THEN
    1550                 CALL surface_data_output_collect( surf_def_h(0)%ts, surf_def_h(1)%ts,              &
    1551                                                   surf_lsm_h%ts, surf_usm_h%ts, surf_def_v(0)%ts,  &
    1552                                                   surf_lsm_v(0)%ts, surf_usm_v(0)%ts,              &
    1553                                                   surf_def_v(1)%ts, surf_lsm_v(1)%ts,              &
    1554                                                   surf_usm_v(1)%ts, surf_def_v(2)%ts,              &
    1555                                                   surf_lsm_v(2)%ts, surf_usm_v(2)%ts,              &
    1556                                                   surf_def_v(3)%ts, surf_lsm_v(3)%ts,              &
    1557                                                   surf_usm_v(3)%ts )
     1544                CALL surface_data_output_collect(                                   &
     1545                          surf_def_h(0)%ts, surf_lsm_h(0)%ts, surf_usm_h(0)%ts,    &
     1546                          surf_def_h(1)%ts, surf_lsm_h(1)%ts, surf_usm_h(1)%ts,    &
     1547                          surf_def_v(0)%ts, surf_lsm_v(0)%ts, surf_usm_v(0)%ts,    &
     1548                          surf_def_v(1)%ts, surf_lsm_v(1)%ts, surf_usm_v(1)%ts,    &
     1549                          surf_def_v(2)%ts, surf_lsm_v(2)%ts, surf_usm_v(2)%ts,    &
     1550                          surf_def_v(3)%ts, surf_lsm_v(3)%ts, surf_usm_v(3)%ts )
    15581551             ELSE
    15591552!
     
    15681561!--          Output of instantaneous data
    15691562             IF ( av == 0 )  THEN
    1570                 CALL surface_data_output_collect( surf_def_h(0)%qs, surf_def_h(1)%qs,              &
    1571                                                   surf_lsm_h%qs, surf_usm_h%qs, surf_def_v(0)%qs,  &
    1572                                                   surf_lsm_v(0)%qs, surf_usm_v(0)%qs,              &
    1573                                                   surf_def_v(1)%qs, surf_lsm_v(1)%qs,              &
    1574                                                   surf_usm_v(1)%qs, surf_def_v(2)%qs,              &
    1575                                                   surf_lsm_v(2)%qs, surf_usm_v(2)%qs,              &
    1576                                                   surf_def_v(3)%qs, surf_lsm_v(3)%qs,              &
    1577                                                   surf_usm_v(3)%qs )
     1563                CALL surface_data_output_collect(                                  &
     1564                          surf_def_h(0)%qs, surf_lsm_h(0)%qs, surf_usm_h(0)%qs,    &
     1565                          surf_def_h(1)%qs, surf_lsm_h(1)%qs, surf_usm_h(1)%qs,    &
     1566                          surf_def_v(0)%qs, surf_lsm_v(0)%qs, surf_usm_v(0)%qs,    &
     1567                          surf_def_v(1)%qs, surf_lsm_v(1)%qs, surf_usm_v(1)%qs,    &
     1568                          surf_def_v(2)%qs, surf_lsm_v(2)%qs, surf_usm_v(2)%qs,    &
     1569                          surf_def_v(3)%qs, surf_lsm_v(3)%qs, surf_usm_v(3)%qs )
    15781570             ELSE
    15791571!
     
    15881580!--          Output of instantaneous data
    15891581             IF ( av == 0 )  THEN
    1590                 CALL surface_data_output_collect( surf_def_h(0)%ss, surf_def_h(1)%ss,              &
    1591                                                   surf_lsm_h%ss, surf_usm_h%ss, surf_def_v(0)%ss,  &
    1592                                                   surf_lsm_v(0)%ss, surf_usm_v(0)%ss,              &
    1593                                                   surf_def_v(1)%ss, surf_lsm_v(1)%ss,              &
    1594                                                   surf_usm_v(1)%ss, surf_def_v(2)%ss,              &
    1595                                                   surf_lsm_v(2)%ss, surf_usm_v(2)%ss,              &
    1596                                                   surf_def_v(3)%ss, surf_lsm_v(3)%ss,              &
    1597                                                   surf_usm_v(3)%ss )
     1582                CALL surface_data_output_collect(                                  &
     1583                          surf_def_h(0)%ss, surf_lsm_h(0)%ss, surf_usm_h(0)%ss,    &
     1584                          surf_def_h(1)%ss, surf_lsm_h(1)%ss, surf_usm_h(1)%ss,    &
     1585                          surf_def_v(0)%ss, surf_lsm_v(0)%ss, surf_usm_v(0)%ss,    &
     1586                          surf_def_v(1)%ss, surf_lsm_v(1)%ss, surf_usm_v(1)%ss,    &
     1587                          surf_def_v(2)%ss, surf_lsm_v(2)%ss, surf_usm_v(2)%ss,    &
     1588                          surf_def_v(3)%ss, surf_lsm_v(3)%ss, surf_usm_v(3)%ss )
    15981589             ELSE
    15991590!
     
    16081599!--          Output of instantaneous data
    16091600             IF ( av == 0 )  THEN
    1610                 CALL surface_data_output_collect( surf_def_h(0)%qcs, surf_def_h(1)%qcs,            &
    1611                                                   surf_lsm_h%qcs, surf_usm_h%qcs,                  &
    1612                                                   surf_def_v(0)%qcs, surf_lsm_v(0)%qcs,            &
    1613                                                   surf_usm_v(0)%qcs, surf_def_v(1)%qcs,            &
    1614                                                   surf_lsm_v(1)%qcs, surf_usm_v(1)%qcs,            &
    1615                                                   surf_def_v(2)%qcs, surf_lsm_v(2)%qcs,            &
    1616                                                   surf_usm_v(2)%qcs, surf_def_v(3)%qcs,            &
    1617                                                   surf_lsm_v(3)%qcs, surf_usm_v(3)%qcs )
     1601                CALL surface_data_output_collect(                                     &
     1602                          surf_def_h(0)%qcs, surf_lsm_h(0)%qcs, surf_usm_h(0)%qcs,    &
     1603                          surf_def_h(1)%qcs, surf_lsm_h(1)%qcs, surf_usm_h(1)%qcs,    &
     1604                          surf_def_v(0)%qcs, surf_lsm_v(0)%qcs, surf_usm_v(0)%qcs,    &
     1605                          surf_def_v(1)%qcs, surf_lsm_v(1)%qcs, surf_usm_v(1)%qcs,    &
     1606                          surf_def_v(2)%qcs, surf_lsm_v(2)%qcs, surf_usm_v(2)%qcs,    &
     1607                          surf_def_v(3)%qcs, surf_lsm_v(3)%qcs, surf_usm_v(3)%qcs )
    16181608             ELSE
    16191609!
     
    16281618!--          Output of instantaneous data
    16291619             IF ( av == 0 )  THEN
    1630                 CALL surface_data_output_collect( surf_def_h(0)%ncs, surf_def_h(1)%ncs,            &
    1631                                                  surf_lsm_h%ncs, surf_usm_h%ncs,                   &
    1632                                                  surf_def_v(0)%ncs, surf_lsm_v(0)%ncs,             &
    1633                                                  surf_usm_v(0)%ncs, surf_def_v(1)%ncs,             &
    1634                                                  surf_lsm_v(1)%ncs, surf_usm_v(1)%ncs,             &
    1635                                                  surf_def_v(2)%ncs, surf_lsm_v(2)%ncs,             &
    1636                                                  surf_usm_v(2)%ncs, surf_def_v(3)%ncs,             &
    1637                                                  surf_lsm_v(3)%ncs, surf_usm_v(3)%ncs )
     1620                CALL surface_data_output_collect(                                     &
     1621                          surf_def_h(0)%ncs, surf_lsm_h(0)%ncs, surf_usm_h(0)%ncs,    &
     1622                          surf_def_h(1)%ncs, surf_lsm_h(1)%ncs, surf_usm_h(1)%ncs,    &
     1623                          surf_def_v(0)%ncs, surf_lsm_v(0)%ncs, surf_usm_v(0)%ncs,    &
     1624                          surf_def_v(1)%ncs, surf_lsm_v(1)%ncs, surf_usm_v(1)%ncs,    &
     1625                          surf_def_v(2)%ncs, surf_lsm_v(2)%ncs, surf_usm_v(2)%ncs,    &
     1626                          surf_def_v(3)%ncs, surf_lsm_v(3)%ncs, surf_usm_v(3)%ncs )
    16381627             ELSE
    16391628!
     
    16481637!--          Output of instantaneous data
    16491638             IF ( av == 0 )  THEN
    1650                 CALL surface_data_output_collect( surf_def_h(0)%qis, surf_def_h(1)%qis,            &
    1651                                                   surf_lsm_h%qis, surf_usm_h%qis,                  &
    1652                                                   surf_def_v(0)%qis, surf_lsm_v(0)%qis,            &
    1653                                                   surf_usm_v(0)%qis, surf_def_v(1)%qis,            &
    1654                                                   surf_lsm_v(1)%qis, surf_usm_v(1)%qis,            &
    1655                                                   surf_def_v(2)%qis, surf_lsm_v(2)%qis,            &
    1656                                                   surf_usm_v(2)%qis, surf_def_v(3)%qis,            &
    1657                                                   surf_lsm_v(3)%qis, surf_usm_v(3)%qis )
     1639                CALL surface_data_output_collect(                                     &
     1640                          surf_def_h(0)%qis, surf_lsm_h(0)%qis, surf_usm_h(0)%qis,    &
     1641                          surf_def_h(1)%qis, surf_lsm_h(1)%qis, surf_usm_h(1)%qis,    &
     1642                          surf_def_v(0)%qis, surf_lsm_v(0)%qis, surf_usm_v(0)%qis,    &
     1643                          surf_def_v(1)%qis, surf_lsm_v(1)%qis, surf_usm_v(1)%qis,    &
     1644                          surf_def_v(2)%qis, surf_lsm_v(2)%qis, surf_usm_v(2)%qis,    &
     1645                          surf_def_v(3)%qis, surf_lsm_v(3)%qis, surf_usm_v(3)%qis )
    16581646             ELSE
    16591647!
     
    16681656!--          Output of instantaneous data
    16691657             IF ( av == 0 )  THEN
    1670                 CALL surface_data_output_collect( surf_def_h(0)%nis, surf_def_h(1)%nis,            &
    1671                                                   surf_lsm_h%nis, surf_usm_h%nis,                  &
    1672                                                   surf_def_v(0)%nis, surf_lsm_v(0)%nis,            &
    1673                                                   surf_usm_v(0)%nis, surf_def_v(1)%nis,            &
    1674                                                   surf_lsm_v(1)%nis, surf_usm_v(1)%nis,            &
    1675                                                   surf_def_v(2)%nis, surf_lsm_v(2)%nis,            &
    1676                                                   surf_usm_v(2)%nis, surf_def_v(3)%nis,            &
    1677                                                   surf_lsm_v(3)%nis, surf_usm_v(3)%nis )
     1658                CALL surface_data_output_collect(                                     &
     1659                          surf_def_h(0)%nis, surf_lsm_h(0)%nis, surf_usm_h(0)%nis,    &
     1660                          surf_def_h(1)%nis, surf_lsm_h(1)%nis, surf_usm_h(1)%nis,    &
     1661                          surf_def_v(0)%nis, surf_lsm_v(0)%nis, surf_usm_v(0)%nis,    &
     1662                          surf_def_v(1)%nis, surf_lsm_v(1)%nis, surf_usm_v(1)%nis,    &
     1663                          surf_def_v(2)%nis, surf_lsm_v(2)%nis, surf_usm_v(2)%nis,    &
     1664                          surf_def_v(3)%nis, surf_lsm_v(3)%nis, surf_usm_v(3)%nis )
    16781665             ELSE
    16791666!
     
    16881675!--          Output of instantaneous data
    16891676             IF ( av == 0 )  THEN
    1690                 CALL surface_data_output_collect( surf_def_h(0)%qrs, surf_def_h(1)%qrs,            &
    1691                                                   surf_lsm_h%qrs, surf_usm_h%qrs,                  &
    1692                                                   surf_def_v(0)%qrs, surf_lsm_v(0)%qrs,            &
    1693                                                   surf_usm_v(0)%qrs, surf_def_v(1)%qrs,            &
    1694                                                   surf_lsm_v(1)%qrs, surf_usm_v(1)%qrs,            &
    1695                                                   surf_def_v(2)%qrs, surf_lsm_v(2)%qrs,            &
    1696                                                   surf_usm_v(2)%qrs, surf_def_v(3)%qrs,            &
    1697                                                   surf_lsm_v(3)%qrs, surf_usm_v(3)%qrs )
     1677                CALL surface_data_output_collect(                                     &
     1678                          surf_def_h(0)%qrs, surf_lsm_h(0)%qrs, surf_usm_h(0)%qrs,    &
     1679                          surf_def_h(1)%qrs, surf_lsm_h(1)%qrs, surf_usm_h(1)%qrs,    &
     1680                          surf_def_v(0)%qrs, surf_lsm_v(0)%qrs, surf_usm_v(0)%qrs,    &
     1681                          surf_def_v(1)%qrs, surf_lsm_v(1)%qrs, surf_usm_v(1)%qrs,    &
     1682                          surf_def_v(2)%qrs, surf_lsm_v(2)%qrs, surf_usm_v(2)%qrs,    &
     1683                          surf_def_v(3)%qrs, surf_lsm_v(3)%qrs, surf_usm_v(3)%qrs )
    16981684             ELSE
    16991685!
     
    17081694!--          Output of instantaneous data
    17091695             IF ( av == 0 )  THEN
    1710                 CALL surface_data_output_collect( surf_def_h(0)%nrs, surf_def_h(1)%nrs,            &
    1711                                                   surf_lsm_h%nrs, surf_usm_h%nrs,                  &
    1712                                                   surf_def_v(0)%nrs, surf_lsm_v(0)%nrs,            &
    1713                                                   surf_usm_v(0)%nrs, surf_def_v(1)%nrs,            &
    1714                                                   surf_lsm_v(1)%nrs, surf_usm_v(1)%nrs,            &
    1715                                                   surf_def_v(2)%nrs, surf_lsm_v(2)%nrs,            &
    1716                                                   surf_usm_v(2)%nrs, surf_def_v(3)%nrs,            &
    1717                                                   surf_lsm_v(3)%nrs, surf_usm_v(3)%nrs )
     1696                CALL surface_data_output_collect(                                     &
     1697                          surf_def_h(0)%nrs, surf_lsm_h(0)%nrs, surf_usm_h(0)%nrs,    &
     1698                          surf_def_h(1)%nrs, surf_lsm_h(1)%nrs, surf_usm_h(1)%nrs,    &
     1699                          surf_def_v(0)%nrs, surf_lsm_v(0)%nrs, surf_usm_v(0)%nrs,    &
     1700                          surf_def_v(1)%nrs, surf_lsm_v(1)%nrs, surf_usm_v(1)%nrs,    &
     1701                          surf_def_v(2)%nrs, surf_lsm_v(2)%nrs, surf_usm_v(2)%nrs,    &
     1702                          surf_def_v(3)%nrs, surf_lsm_v(3)%nrs, surf_usm_v(3)%nrs )
    17181703             ELSE
    17191704!
     
    17281713!--          Output of instantaneous data
    17291714             IF ( av == 0 )  THEN
    1730                 CALL surface_data_output_collect( surf_def_h(0)%ol, surf_def_h(1)%ol,              &
    1731                                                   surf_lsm_h%ol, surf_usm_h%ol, surf_def_v(0)%ol,  &
    1732                                                   surf_lsm_v(0)%ol, surf_usm_v(0)%ol,              &
    1733                                                   surf_def_v(1)%ol, surf_lsm_v(1)%ol,              &
    1734                                                   surf_usm_v(1)%ol, surf_def_v(2)%ol,              &
    1735                                                   surf_lsm_v(2)%ol, surf_usm_v(2)%ol,              &
    1736                                                   surf_def_v(3)%ol, surf_lsm_v(3)%ol,              &
    1737                                                   surf_usm_v(3)%ol )
     1715                CALL surface_data_output_collect(                                  &
     1716                          surf_def_h(0)%ol, surf_lsm_h(0)%ol, surf_usm_h(0)%ol,    &
     1717                          surf_def_h(1)%ol, surf_lsm_h(1)%ol, surf_usm_h(1)%ol,    &
     1718                          surf_def_v(0)%ol, surf_lsm_v(0)%ol, surf_usm_v(0)%ol,    &
     1719                          surf_def_v(1)%ol, surf_lsm_v(1)%ol, surf_usm_v(1)%ol,    &
     1720                          surf_def_v(2)%ol, surf_lsm_v(2)%ol, surf_usm_v(2)%ol,    &
     1721                          surf_def_v(3)%ol, surf_lsm_v(3)%ol, surf_usm_v(3)%ol )
    17381722             ELSE
    17391723!
     
    17481732!--          Output of instantaneous data
    17491733             IF ( av == 0 )  THEN
    1750                 CALL surface_data_output_collect( surf_def_h(0)%z0, surf_def_h(1)%z0,              &
    1751                                                   surf_lsm_h%z0, surf_usm_h%z0, surf_def_v(0)%z0,  &
    1752                                                   surf_lsm_v(0)%z0, surf_usm_v(0)%z0,              &
    1753                                                   surf_def_v(1)%z0, surf_lsm_v(1)%z0,              &
    1754                                                   surf_usm_v(1)%z0, surf_def_v(2)%z0,              &
    1755                                                   surf_lsm_v(2)%z0, surf_usm_v(2)%z0,              &
    1756                                                   surf_def_v(3)%z0, surf_lsm_v(3)%z0,              &
    1757                                                   surf_usm_v(3)%z0 )
     1734                CALL surface_data_output_collect(                                  &
     1735                          surf_def_h(0)%z0, surf_lsm_h(0)%z0, surf_usm_h(0)%z0,    &
     1736                          surf_def_h(1)%z0, surf_lsm_h(1)%z0, surf_usm_h(1)%z0,    &
     1737                          surf_def_v(0)%z0, surf_lsm_v(0)%z0, surf_usm_v(0)%z0,    &
     1738                          surf_def_v(1)%z0, surf_lsm_v(1)%z0, surf_usm_v(1)%z0,    &
     1739                          surf_def_v(2)%z0, surf_lsm_v(2)%z0, surf_usm_v(2)%z0,    &
     1740                          surf_def_v(3)%z0, surf_lsm_v(3)%z0, surf_usm_v(3)%z0 )
    17581741             ELSE
    17591742!
     
    17681751!--          Output of instantaneous data
    17691752             IF ( av == 0 )  THEN
    1770                 CALL surface_data_output_collect( surf_def_h(0)%z0h, surf_def_h(1)%z0h,            &
    1771                                                   surf_lsm_h%z0h, surf_usm_h%z0h,                  &
    1772                                                   surf_def_v(0)%z0h, surf_lsm_v(0)%z0h,            &
    1773                                                   surf_usm_v(0)%z0h, surf_def_v(1)%z0h,            &
    1774                                                   surf_lsm_v(1)%z0h, surf_usm_v(1)%z0h,            &
    1775                                                   surf_def_v(2)%z0h, surf_lsm_v(2)%z0h,            &
    1776                                                   surf_usm_v(2)%z0h, surf_def_v(3)%z0h,            &
    1777                                                   surf_lsm_v(3)%z0h, surf_usm_v(3)%z0h )
     1753                CALL surface_data_output_collect(                                     &
     1754                          surf_def_h(0)%z0h, surf_lsm_h(0)%z0h, surf_usm_h(0)%z0h,    &
     1755                          surf_def_h(1)%z0h, surf_lsm_h(1)%z0h, surf_usm_h(1)%z0h,    &
     1756                          surf_def_v(0)%z0h, surf_lsm_v(0)%z0h, surf_usm_v(0)%z0h,    &
     1757                          surf_def_v(1)%z0h, surf_lsm_v(1)%z0h, surf_usm_v(1)%z0h,    &
     1758                          surf_def_v(2)%z0h, surf_lsm_v(2)%z0h, surf_usm_v(2)%z0h,    &
     1759                          surf_def_v(3)%z0h, surf_lsm_v(3)%z0h, surf_usm_v(3)%z0h )
    17781760             ELSE
    17791761!
     
    17881770!--          Output of instantaneous data
    17891771             IF ( av == 0 )  THEN
    1790                 CALL surface_data_output_collect( surf_def_h(0)%z0q, surf_def_h(1)%z0q,            &
    1791                                                   surf_lsm_h%z0q, surf_usm_h%z0q,                  &
    1792                                                   surf_def_v(0)%z0q, surf_lsm_v(0)%z0q,            &
    1793                                                   surf_usm_v(0)%z0q, surf_def_v(1)%z0q,            &
    1794                                                   surf_lsm_v(1)%z0q, surf_usm_v(1)%z0q,            &
    1795                                                   surf_def_v(2)%z0q, surf_lsm_v(2)%z0q,            &
    1796                                                   surf_usm_v(2)%z0q, surf_def_v(3)%z0q,            &
    1797                                                   surf_lsm_v(3)%z0q, surf_usm_v(3)%z0q )
     1772                CALL surface_data_output_collect(                                     &
     1773                          surf_def_h(0)%z0q, surf_lsm_h(0)%z0q, surf_usm_h(0)%z0q,    &
     1774                          surf_def_h(1)%z0q, surf_lsm_h(1)%z0q, surf_usm_h(1)%z0q,    &
     1775                          surf_def_v(0)%z0q, surf_lsm_v(0)%z0q, surf_usm_v(0)%z0q,    &
     1776                          surf_def_v(1)%z0q, surf_lsm_v(1)%z0q, surf_usm_v(1)%z0q,    &
     1777                          surf_def_v(2)%z0q, surf_lsm_v(2)%z0q, surf_usm_v(2)%z0q,    &
     1778                          surf_def_v(3)%z0q, surf_lsm_v(3)%z0q, surf_usm_v(3)%z0q )
    17981779             ELSE
    17991780!
     
    18081789!--          Output of instantaneous data
    18091790             IF ( av == 0 )  THEN
    1810                 CALL surface_data_output_collect( surf_def_h(0)%pt1, surf_def_h(1)%pt1,            &
    1811                                                   surf_lsm_h%pt1, surf_usm_h%pt1,                  &
    1812                                                   surf_def_v(0)%pt1, surf_lsm_v(0)%pt1,            &
    1813                                                   surf_usm_v(0)%pt1, surf_def_v(1)%pt1,            &
    1814                                                   surf_lsm_v(1)%pt1, surf_usm_v(1)%pt1,            &
    1815                                                   surf_def_v(2)%pt1, surf_lsm_v(2)%pt1,            &
    1816                                                   surf_usm_v(2)%pt1, surf_def_v(3)%pt1,            &
    1817                                                   surf_lsm_v(3)%pt1, surf_usm_v(3)%pt1 )
     1791                CALL surface_data_output_collect(                                     &
     1792                          surf_def_h(0)%pt1, surf_lsm_h(0)%pt1, surf_usm_h(0)%pt1,    &
     1793                          surf_def_h(1)%pt1, surf_lsm_h(1)%pt1, surf_usm_h(1)%pt1,    &
     1794                          surf_def_v(0)%pt1, surf_lsm_v(0)%pt1, surf_usm_v(0)%pt1,    &
     1795                          surf_def_v(1)%pt1, surf_lsm_v(1)%pt1, surf_usm_v(1)%pt1,    &
     1796                          surf_def_v(2)%pt1, surf_lsm_v(2)%pt1, surf_usm_v(2)%pt1,    &
     1797                          surf_def_v(3)%pt1, surf_lsm_v(3)%pt1, surf_usm_v(3)%pt1 )
    18181798             ELSE
    18191799!
     
    18281808!--          Output of instantaneous data
    18291809             IF ( av == 0 )  THEN
    1830                 CALL surface_data_output_collect( surf_def_h(0)%qv1, surf_def_h(1)%qv1,            &
    1831                                                   surf_lsm_h%qv1, surf_usm_h%qv1,                  &
    1832                                                   surf_def_v(0)%qv1, surf_lsm_v(0)%qv1,            &
    1833                                                   surf_usm_v(0)%qv1, surf_def_v(1)%qv1,            &
    1834                                                   surf_lsm_v(1)%qv1, surf_usm_v(1)%qv1,            &
    1835                                                   surf_def_v(2)%qv1, surf_lsm_v(2)%qv1,            &
    1836                                                   surf_usm_v(2)%qv1, surf_def_v(3)%qv1,            &
    1837                                                   surf_lsm_v(3)%qv1, surf_usm_v(3)%qv1 )
     1810                CALL surface_data_output_collect(                                     &
     1811                          surf_def_h(0)%qv1, surf_lsm_h(0)%qv1, surf_usm_h(0)%qv1,    &
     1812                          surf_def_h(1)%qv1, surf_lsm_h(1)%qv1, surf_usm_h(1)%qv1,    &
     1813                          surf_def_v(0)%qv1, surf_lsm_v(0)%qv1, surf_usm_v(0)%qv1,    &
     1814                          surf_def_v(1)%qv1, surf_lsm_v(1)%qv1, surf_usm_v(1)%qv1,    &
     1815                          surf_def_v(2)%qv1, surf_lsm_v(2)%qv1, surf_usm_v(2)%qv1,    &
     1816                          surf_def_v(3)%qv1, surf_lsm_v(3)%qv1, surf_usm_v(3)%qv1 )
    18381817             ELSE
    18391818!
     
    18481827!--          Output of instantaneous data
    18491828             IF ( av == 0 )  THEN
    1850                 CALL surface_data_output_collect( surf_def_h(0)%vpt1, surf_def_h(1)%vpt1,          &
    1851                                                   surf_lsm_h%vpt1, surf_usm_h%vpt1,                &
    1852                                                   surf_def_v(0)%vpt1, surf_lsm_v(0)%vpt1,          &
    1853                                                   surf_usm_v(0)%vpt1, surf_def_v(1)%vpt1,          &
    1854                                                   surf_lsm_v(1)%vpt1, surf_usm_v(1)%vpt1,          &
    1855                                                   surf_def_v(2)%vpt1, surf_lsm_v(2)%vpt1,          &
    1856                                                   surf_usm_v(2)%vpt1, surf_def_v(3)%vpt1,          &
    1857                                                   surf_lsm_v(3)%vpt1, surf_usm_v(3)%vpt1 )
     1829                CALL surface_data_output_collect(                                        &
     1830                          surf_def_h(0)%vpt1, surf_lsm_h(0)%vpt1, surf_usm_h(0)%vpt1,    &
     1831                          surf_def_h(1)%vpt1, surf_lsm_h(1)%vpt1, surf_usm_h(1)%vpt1,    &
     1832                          surf_def_v(0)%vpt1, surf_lsm_v(0)%vpt1, surf_usm_v(0)%vpt1,    &
     1833                          surf_def_v(1)%vpt1, surf_lsm_v(1)%vpt1, surf_usm_v(1)%vpt1,    &
     1834                          surf_def_v(2)%vpt1, surf_lsm_v(2)%vpt1, surf_usm_v(2)%vpt1,    &
     1835                          surf_def_v(3)%vpt1, surf_lsm_v(3)%vpt1, surf_usm_v(3)%vpt1 )
    18581836             ELSE
    18591837!
     
    18681846!--          Output of instantaneous data
    18691847             IF ( av == 0 )  THEN
    1870                 CALL surface_data_output_collect( surf_def_h(0)%usws, surf_def_h(1)%usws,          &
    1871                                                   surf_lsm_h%usws, surf_usm_h%usws,                &
    1872                                                   surf_def_v(0)%usws, surf_lsm_v(0)%usws,          &
    1873                                                   surf_usm_v(0)%usws, surf_def_v(1)%usws,          &
    1874                                                   surf_lsm_v(1)%usws, surf_usm_v(1)%usws,          &
    1875                                                   surf_def_v(2)%usws, surf_lsm_v(2)%usws,          &
    1876                                                   surf_usm_v(2)%usws, surf_def_v(3)%usws,          &
    1877                                                   surf_lsm_v(3)%usws, surf_usm_v(3)%usws,          &
    1878                                                   momentumflux_output_conversion )
     1848                CALL surface_data_output_collect(                                        &
     1849                          surf_def_h(0)%usws, surf_lsm_h(0)%usws, surf_usm_h(0)%usws,    &
     1850                          surf_def_h(1)%usws, surf_lsm_h(1)%usws, surf_usm_h(1)%usws,    &
     1851                          surf_def_v(0)%usws, surf_lsm_v(0)%usws, surf_usm_v(0)%usws,    &
     1852                          surf_def_v(1)%usws, surf_lsm_v(1)%usws, surf_usm_v(1)%usws,    &
     1853                          surf_def_v(2)%usws, surf_lsm_v(2)%usws, surf_usm_v(2)%usws,    &
     1854                          surf_def_v(3)%usws, surf_lsm_v(3)%usws, surf_usm_v(3)%usws,    &
     1855                          momentumflux_output_conversion )
    18791856             ELSE
    18801857!
     
    18891866!--          Output of instantaneous data
    18901867             IF ( av == 0 )  THEN
    1891                 CALL surface_data_output_collect( surf_def_h(0)%vsws, surf_def_h(1)%vsws,          &
    1892                                                   surf_lsm_h%vsws, surf_usm_h%vsws,                &
    1893                                                   surf_def_v(0)%vsws, surf_lsm_v(0)%vsws,          &
    1894                                                   surf_usm_v(0)%vsws, surf_def_v(1)%vsws,          &
    1895                                                   surf_lsm_v(1)%vsws, surf_usm_v(1)%vsws,          &
    1896                                                   surf_def_v(2)%vsws, surf_lsm_v(2)%vsws,          &
    1897                                                   surf_usm_v(2)%vsws, surf_def_v(3)%vsws,          &
    1898                                                   surf_lsm_v(3)%vsws, surf_usm_v(3)%vsws,          &
    1899                                                   momentumflux_output_conversion )
     1868                CALL surface_data_output_collect(                                        &
     1869                          surf_def_h(0)%vsws, surf_lsm_h(0)%vsws, surf_usm_h(0)%vsws,    &
     1870                          surf_def_h(1)%vsws, surf_lsm_h(1)%vsws, surf_usm_h(1)%vsws,    &
     1871                          surf_def_v(0)%vsws, surf_lsm_v(0)%vsws, surf_usm_v(0)%vsws,    &
     1872                          surf_def_v(1)%vsws, surf_lsm_v(1)%vsws, surf_usm_v(1)%vsws,    &
     1873                          surf_def_v(2)%vsws, surf_lsm_v(2)%vsws, surf_usm_v(2)%vsws,    &
     1874                          surf_def_v(3)%vsws, surf_lsm_v(3)%vsws, surf_usm_v(3)%vsws,    &
     1875                          momentumflux_output_conversion )
    19001876             ELSE
    19011877!
     
    19101886!--          Output of instantaneous data
    19111887             IF ( av == 0 )  THEN
    1912                 CALL surface_data_output_collect( surf_def_h(0)%shf, surf_def_h(1)%shf,            &
    1913                                                   surf_lsm_h%shf, surf_usm_h%shf,                  &
    1914                                                   surf_def_v(0)%shf, surf_lsm_v(0)%shf,            &
    1915                                                   surf_usm_v(0)%shf, surf_def_v(1)%shf,            &
    1916                                                   surf_lsm_v(1)%shf, surf_usm_v(1)%shf,            &
    1917                                                   surf_def_v(2)%shf, surf_lsm_v(2)%shf,            &
    1918                                                   surf_usm_v(2)%shf, surf_def_v(3)%shf,            &
    1919                                                   surf_lsm_v(3)%shf, surf_usm_v(3)%shf,            &
    1920                                                   heatflux_output_conversion )
     1888                CALL surface_data_output_collect(                                     &
     1889                          surf_def_h(0)%shf, surf_lsm_h(0)%shf, surf_usm_h(0)%shf,    &
     1890                          surf_def_h(1)%shf, surf_lsm_h(1)%shf, surf_usm_h(1)%shf,    &
     1891                          surf_def_v(0)%shf, surf_lsm_v(0)%shf, surf_usm_v(0)%shf,    &
     1892                          surf_def_v(1)%shf, surf_lsm_v(1)%shf, surf_usm_v(1)%shf,    &
     1893                          surf_def_v(2)%shf, surf_lsm_v(2)%shf, surf_usm_v(2)%shf,    &
     1894                          surf_def_v(3)%shf, surf_lsm_v(3)%shf, surf_usm_v(3)%shf,    &
     1895                          heatflux_output_conversion )
    19211896             ELSE
    19221897!
     
    19301905!--          Output of instantaneous data
    19311906             IF ( av == 0 )  THEN
    1932                 CALL surface_data_output_collect( surf_def_h(0)%qsws, surf_def_h(1)%qsws,          &
    1933                                                   surf_lsm_h%qsws, surf_usm_h%qsws,                &
    1934                                                   surf_def_v(0)%qsws, surf_lsm_v(0)%qsws,          &
    1935                                                   surf_usm_v(0)%qsws, surf_def_v(1)%qsws,          &
    1936                                                   surf_lsm_v(1)%qsws, surf_usm_v(1)%qsws,          &
    1937                                                   surf_def_v(2)%qsws, surf_lsm_v(2)%qsws,          &
    1938                                                   surf_usm_v(2)%qsws, surf_def_v(3)%qsws,          &
    1939                                                   surf_lsm_v(3)%qsws, surf_usm_v(3)%qsws,          &
    1940                                                   waterflux_output_conversion )
     1907                CALL surface_data_output_collect(                                        &
     1908                          surf_def_h(0)%qsws, surf_lsm_h(0)%qsws, surf_usm_h(0)%qsws,    &
     1909                          surf_def_h(1)%qsws, surf_lsm_h(1)%qsws, surf_usm_h(1)%qsws,    &
     1910                          surf_def_v(0)%qsws, surf_lsm_v(0)%qsws, surf_usm_v(0)%qsws,    &
     1911                          surf_def_v(1)%qsws, surf_lsm_v(1)%qsws, surf_usm_v(1)%qsws,    &
     1912                          surf_def_v(2)%qsws, surf_lsm_v(2)%qsws, surf_usm_v(2)%qsws,    &
     1913                          surf_def_v(3)%qsws, surf_lsm_v(3)%qsws, surf_usm_v(3)%qsws,    &
     1914                          waterflux_output_conversion )
    19411915             ELSE
    19421916!
     
    19511925!--          Output of instantaneous data
    19521926             IF ( av == 0 )  THEN
    1953                 CALL surface_data_output_collect( surf_def_h(0)%ssws, surf_def_h(1)%ssws,          &
    1954                                                   surf_lsm_h%ssws, surf_usm_h%ssws,                &
    1955                                                   surf_def_v(0)%ssws, surf_lsm_v(0)%ssws,          &
    1956                                                   surf_usm_v(0)%ssws, surf_def_v(1)%ssws,          &
    1957                                                   surf_lsm_v(1)%ssws, surf_usm_v(1)%ssws,          &
    1958                                                   surf_def_v(2)%ssws, surf_lsm_v(2)%ssws,          &
    1959                                                   surf_usm_v(2)%ssws, surf_def_v(3)%ssws,          &
    1960                                                   surf_lsm_v(3)%ssws, surf_usm_v(3)%ssws )
     1927                CALL surface_data_output_collect(                                        &
     1928                          surf_def_h(0)%ssws, surf_lsm_h(0)%ssws, surf_usm_h(0)%ssws,    &
     1929                          surf_def_h(1)%ssws, surf_lsm_h(1)%ssws, surf_usm_h(1)%ssws,    &
     1930                          surf_def_v(0)%ssws, surf_lsm_v(0)%ssws, surf_usm_v(0)%ssws,    &
     1931                          surf_def_v(1)%ssws, surf_lsm_v(1)%ssws, surf_usm_v(1)%ssws,    &
     1932                          surf_def_v(2)%ssws, surf_lsm_v(2)%ssws, surf_usm_v(2)%ssws,    &
     1933                          surf_def_v(3)%ssws, surf_lsm_v(3)%ssws, surf_usm_v(3)%ssws )
    19611934             ELSE
    19621935!
     
    19711944!--          Output of instantaneous data
    19721945             IF ( av == 0 )  THEN
    1973                 CALL surface_data_output_collect( surf_def_h(0)%qcsws, surf_def_h(1)%qcsws,        &
    1974                                                   surf_lsm_h%qcsws, surf_usm_h%qcsws,              &
    1975                                                   surf_def_v(0)%qcsws, surf_lsm_v(0)%qcsws,        &
    1976                                                   surf_usm_v(0)%qcsws, surf_def_v(1)%qcsws,        &
    1977                                                   surf_lsm_v(1)%qcsws, surf_usm_v(1)%qcsws,        &
    1978                                                   surf_def_v(2)%qcsws, surf_lsm_v(2)%qcsws,        &
    1979                                                   surf_usm_v(2)%qcsws, surf_def_v(3)%qcsws,        &
    1980                                                   surf_lsm_v(3)%qcsws, surf_usm_v(3)%qcsws )
     1946                CALL surface_data_output_collect(                                           &
     1947                          surf_def_h(0)%qcsws, surf_lsm_h(0)%qcsws, surf_usm_h(0)%qcsws,    &
     1948                          surf_def_h(1)%qcsws, surf_lsm_h(1)%qcsws, surf_usm_h(1)%qcsws,    &
     1949                          surf_def_v(0)%qcsws, surf_lsm_v(0)%qcsws, surf_usm_v(0)%qcsws,    &
     1950                          surf_def_v(1)%qcsws, surf_lsm_v(1)%qcsws, surf_usm_v(1)%qcsws,    &
     1951                          surf_def_v(2)%qcsws, surf_lsm_v(2)%qcsws, surf_usm_v(2)%qcsws,    &
     1952                          surf_def_v(3)%qcsws, surf_lsm_v(3)%qcsws, surf_usm_v(3)%qcsws )
    19811953             ELSE
    19821954!
     
    19911963!--          Output of instantaneous data
    19921964             IF ( av == 0 )  THEN
    1993                 CALL surface_data_output_collect( surf_def_h(0)%ncsws, surf_def_h(1)%ncsws,        &
    1994                                                   surf_lsm_h%ncsws, surf_usm_h%ncsws,              &
    1995                                                   surf_def_v(0)%ncsws, surf_lsm_v(0)%ncsws,        &
    1996                                                   surf_usm_v(0)%ncsws, surf_def_v(1)%ncsws,        &
    1997                                                   surf_lsm_v(1)%ncsws, surf_usm_v(1)%ncsws,        &
    1998                                                   surf_def_v(2)%ncsws, surf_lsm_v(2)%ncsws,        &
    1999                                                   surf_usm_v(2)%ncsws, surf_def_v(3)%ncsws,        &
    2000                                                   surf_lsm_v(3)%ncsws, surf_usm_v(3)%ncsws )
     1965                CALL surface_data_output_collect(                                           &
     1966                          surf_def_h(0)%ncsws, surf_lsm_h(0)%ncsws, surf_usm_h(0)%ncsws,    &
     1967                          surf_def_h(1)%ncsws, surf_lsm_h(1)%ncsws, surf_usm_h(1)%ncsws,    &
     1968                          surf_def_v(0)%ncsws, surf_lsm_v(0)%ncsws, surf_usm_v(0)%ncsws,    &
     1969                          surf_def_v(1)%ncsws, surf_lsm_v(1)%ncsws, surf_usm_v(1)%ncsws,    &
     1970                          surf_def_v(2)%ncsws, surf_lsm_v(2)%ncsws, surf_usm_v(2)%ncsws,    &
     1971                          surf_def_v(3)%ncsws, surf_lsm_v(3)%ncsws, surf_usm_v(3)%ncsws )
    20011972             ELSE
    20021973!
     
    20121983!--          Output of instantaneous data
    20131984             IF ( av == 0 )  THEN
    2014                 CALL surface_data_output_collect( surf_def_h(0)%qisws, surf_def_h(1)%qisws,        &
    2015                                                   surf_lsm_h%qisws, surf_usm_h%qisws,              &
    2016                                                   surf_def_v(0)%qisws, surf_lsm_v(0)%qisws,        &
    2017                                                   surf_usm_v(0)%qisws, surf_def_v(1)%qisws,        &
    2018                                                   surf_lsm_v(1)%qisws, surf_usm_v(1)%qisws,        &
    2019                                                   surf_def_v(2)%qisws, surf_lsm_v(2)%qisws,        &
    2020                                                   surf_usm_v(2)%qisws, surf_def_v(3)%qisws,        &
    2021                                                   surf_lsm_v(3)%qisws, surf_usm_v(3)%qisws )
     1985                CALL surface_data_output_collect(                                           &
     1986                          surf_def_h(0)%qisws, surf_lsm_h(0)%qisws, surf_usm_h(0)%qisws,    &
     1987                          surf_def_h(1)%qisws, surf_lsm_h(1)%qisws, surf_usm_h(1)%qisws,    &
     1988                          surf_def_v(0)%qisws, surf_lsm_v(0)%qisws, surf_usm_v(0)%qisws,    &
     1989                          surf_def_v(1)%qisws, surf_lsm_v(1)%qisws, surf_usm_v(1)%qisws,    &
     1990                          surf_def_v(2)%qisws, surf_lsm_v(2)%qisws, surf_usm_v(2)%qisws,    &
     1991                          surf_def_v(3)%qisws, surf_lsm_v(3)%qisws, surf_usm_v(3)%qisws )
    20221992             ELSE
    20231993!
     
    20322002!--          Output of instantaneous data
    20332003             IF ( av == 0 )  THEN
    2034                 CALL surface_data_output_collect( surf_def_h(0)%nisws, surf_def_h(1)%nisws,        &
    2035                                                   surf_lsm_h%nisws, surf_usm_h%nisws,              &
    2036                                                   surf_def_v(0)%nisws, surf_lsm_v(0)%nisws,        &
    2037                                                   surf_usm_v(0)%nisws, surf_def_v(1)%nisws,        &
    2038                                                   surf_lsm_v(1)%nisws, surf_usm_v(1)%nisws,        &
    2039                                                   surf_def_v(2)%nisws, surf_lsm_v(2)%nisws,        &
    2040                                                   surf_usm_v(2)%nisws, surf_def_v(3)%nisws,        &
    2041                                                   surf_lsm_v(3)%nisws, surf_usm_v(3)%nisws )
     2004                CALL surface_data_output_collect(                                           &
     2005                          surf_def_h(0)%nisws, surf_lsm_h(0)%nisws, surf_usm_h(0)%nisws,    &
     2006                          surf_def_h(1)%nisws, surf_lsm_h(1)%nisws, surf_usm_h(1)%nisws,    &
     2007                          surf_def_v(0)%nisws, surf_lsm_v(0)%nisws, surf_usm_v(0)%nisws,    &
     2008                          surf_def_v(1)%nisws, surf_lsm_v(1)%nisws, surf_usm_v(1)%nisws,    &
     2009                          surf_def_v(2)%nisws, surf_lsm_v(2)%nisws, surf_usm_v(2)%nisws,    &
     2010                          surf_def_v(3)%nisws, surf_lsm_v(3)%nisws, surf_usm_v(3)%nisws )
    20422011             ELSE
    20432012!
     
    20522021!--          Output of instantaneous data
    20532022             IF ( av == 0 )  THEN
    2054                 CALL surface_data_output_collect( surf_def_h(0)%qrsws, surf_def_h(1)%qrsws,        &
    2055                                                   surf_lsm_h%qrsws, surf_usm_h%qrsws,              &
    2056                                                   surf_def_v(0)%qrsws, surf_lsm_v(0)%qrsws,        &
    2057                                                   surf_usm_v(0)%qrsws, surf_def_v(1)%qrsws,        &
    2058                                                   surf_lsm_v(1)%qrsws, surf_usm_v(1)%qrsws,        &
    2059                                                   surf_def_v(2)%qrsws, surf_lsm_v(2)%qrsws,        &
    2060                                                   surf_usm_v(2)%qrsws, surf_def_v(3)%qrsws,        &
    2061                                                   surf_lsm_v(3)%qrsws, surf_usm_v(3)%qrsws )
     2023                CALL surface_data_output_collect(                                           &
     2024                          surf_def_h(0)%qrsws, surf_lsm_h(0)%qrsws, surf_usm_h(0)%qrsws,    &
     2025                          surf_def_h(1)%qrsws, surf_lsm_h(1)%qrsws, surf_usm_h(1)%qrsws,    &
     2026                          surf_def_v(0)%qrsws, surf_lsm_v(0)%qrsws, surf_usm_v(0)%qrsws,    &
     2027                          surf_def_v(1)%qrsws, surf_lsm_v(1)%qrsws, surf_usm_v(1)%qrsws,    &
     2028                          surf_def_v(2)%qrsws, surf_lsm_v(2)%qrsws, surf_usm_v(2)%qrsws,    &
     2029                          surf_def_v(3)%qrsws, surf_lsm_v(3)%qrsws, surf_usm_v(3)%qrsws )
    20622030             ELSE
    20632031!
     
    20722040!--          Output of instantaneous data
    20732041             IF ( av == 0 )  THEN
    2074                 CALL surface_data_output_collect( surf_def_h(0)%nrsws, surf_def_h(1)%nrsws,        &
    2075                                                   surf_lsm_h%nrsws, surf_usm_h%nrsws,              &
    2076                                                   surf_def_v(0)%nrsws, surf_lsm_v(0)%nrsws,        &
    2077                                                   surf_usm_v(0)%nrsws, surf_def_v(1)%nrsws,        &
    2078                                                   surf_lsm_v(1)%nrsws, surf_usm_v(1)%nrsws,        &
    2079                                                   surf_def_v(2)%nrsws, surf_lsm_v(2)%nrsws,        &
    2080                                                   surf_usm_v(2)%nrsws, surf_def_v(3)%nrsws,        &
    2081                                                   surf_lsm_v(3)%nrsws, surf_usm_v(3)%nrsws )
     2042                CALL surface_data_output_collect(                                           &
     2043                          surf_def_h(0)%nrsws, surf_lsm_h(0)%nrsws, surf_usm_h(0)%nrsws,    &
     2044                          surf_def_h(1)%nrsws, surf_lsm_h(1)%nrsws, surf_usm_h(1)%nrsws,    &
     2045                          surf_def_v(0)%nrsws, surf_lsm_v(0)%nrsws, surf_usm_v(0)%nrsws,    &
     2046                          surf_def_v(1)%nrsws, surf_lsm_v(1)%nrsws, surf_usm_v(1)%nrsws,    &
     2047                          surf_def_v(2)%nrsws, surf_lsm_v(2)%nrsws, surf_usm_v(2)%nrsws,    &
     2048                          surf_def_v(3)%nrsws, surf_lsm_v(3)%nrsws, surf_usm_v(3)%nrsws )
    20822049             ELSE
    20832050!
     
    20922059!--          Output of instantaneous data
    20932060             IF ( av == 0 )  THEN
    2094                 CALL surface_data_output_collect( surf_def_h(0)%sasws, surf_def_h(1)%sasws,        &
    2095                                                   surf_lsm_h%sasws, surf_usm_h%sasws,              &
    2096                                                   surf_def_v(0)%sasws, surf_lsm_v(0)%sasws,        &
    2097                                                   surf_usm_v(0)%sasws, surf_def_v(1)%sasws,        &
    2098                                                   surf_lsm_v(1)%sasws, surf_usm_v(1)%sasws,        &
    2099                                                   surf_def_v(2)%sasws, surf_lsm_v(2)%sasws,        &
    2100                                                   surf_usm_v(2)%sasws, surf_def_v(3)%sasws,        &
    2101                                                   surf_lsm_v(3)%sasws, surf_usm_v(3)%sasws )
     2061                CALL surface_data_output_collect(                                           &
     2062                          surf_def_h(0)%sasws, surf_lsm_h(0)%sasws, surf_usm_h(0)%sasws,    &
     2063                          surf_def_h(1)%sasws, surf_lsm_h(1)%sasws, surf_usm_h(1)%sasws,    &
     2064                          surf_def_v(0)%sasws, surf_lsm_v(0)%sasws, surf_usm_v(0)%sasws,    &
     2065                          surf_def_v(1)%sasws, surf_lsm_v(1)%sasws, surf_usm_v(1)%sasws,    &
     2066                          surf_def_v(2)%sasws, surf_lsm_v(2)%sasws, surf_usm_v(2)%sasws,    &
     2067                          surf_def_v(3)%sasws, surf_lsm_v(3)%sasws, surf_usm_v(3)%sasws )
    21022068             ELSE
    21032069!
     
    21122078!--          Output of instantaneous data
    21132079             IF ( av == 0 )  THEN
    2114                 CALL surface_data_output_collect( surf_def_h(0)%q_surface, surf_def_h(1)%q_surface,&
    2115                                                   surf_lsm_h%q_surface, surf_usm_h%q_surface,      &
    2116                                                   surf_def_v(0)%q_surface, surf_lsm_v(0)%q_surface,&
    2117                                                   surf_usm_v(0)%q_surface, surf_def_v(1)%q_surface,&
    2118                                                   surf_lsm_v(1)%q_surface, surf_usm_v(1)%q_surface,&
    2119                                                   surf_def_v(2)%q_surface, surf_lsm_v(2)%q_surface,&
    2120                                                   surf_usm_v(2)%q_surface, surf_def_v(3)%q_surface,&
    2121                                                   surf_lsm_v(3)%q_surface, surf_usm_v(3)%q_surface )
     2080                CALL surface_data_output_collect(                                              &
     2081                    surf_def_h(0)%q_surface, surf_lsm_h(0)%q_surface, surf_usm_h(0)%q_surface, &
     2082                    surf_def_h(1)%q_surface, surf_lsm_h(1)%q_surface, surf_usm_h(1)%q_surface, &
     2083                    surf_def_v(0)%q_surface, surf_lsm_v(0)%q_surface, surf_usm_v(0)%q_surface, &
     2084                    surf_def_v(1)%q_surface, surf_lsm_v(1)%q_surface, surf_usm_v(1)%q_surface, &
     2085                    surf_def_v(2)%q_surface, surf_lsm_v(2)%q_surface, surf_usm_v(2)%q_surface, &
     2086                    surf_def_v(3)%q_surface, surf_lsm_v(3)%q_surface, surf_usm_v(3)%q_surface )
    21222087             ELSE
    21232088!
     
    21322097!--          Output of instantaneous data
    21332098             IF ( av == 0 )  THEN
    2134                 CALL surface_data_output_collect( surf_def_h(0)%pt_surface,                        &
    2135                                                   surf_def_h(1)%pt_surface,                        &
    2136                                                   surf_lsm_h%pt_surface, surf_usm_h%pt_surface,    &
    2137                                                   surf_def_v(0)%pt_surface,                        &
    2138                                                   surf_lsm_v(0)%pt_surface,                        &
    2139                                                   surf_usm_v(0)%pt_surface,                        &
    2140                                                   surf_def_v(1)%pt_surface,                        &
    2141                                                   surf_lsm_v(1)%pt_surface,                        &
    2142                                                   surf_usm_v(1)%pt_surface,                        &
    2143                                                   surf_def_v(2)%pt_surface,                        &
    2144                                                   surf_lsm_v(2)%pt_surface,                        &
    2145                                                   surf_usm_v(2)%pt_surface,                        &
    2146                                                   surf_def_v(3)%pt_surface,                        &
    2147                                                   surf_lsm_v(3)%pt_surface,                        &
    2148                                                   surf_usm_v(3)%pt_surface )
     2099                CALL surface_data_output_collect(                                                 &
     2100                    surf_def_h(0)%pt_surface, surf_lsm_h(0)%pt_surface, surf_usm_h(0)%pt_surface, &
     2101                    surf_def_h(1)%pt_surface, surf_lsm_h(1)%pt_surface, surf_usm_h(1)%pt_surface, &
     2102                    surf_def_v(0)%pt_surface, surf_lsm_v(0)%pt_surface, surf_usm_v(0)%pt_surface, &
     2103                    surf_def_v(1)%pt_surface, surf_lsm_v(1)%pt_surface, surf_usm_v(1)%pt_surface, &
     2104                    surf_def_v(2)%pt_surface, surf_lsm_v(2)%pt_surface, surf_usm_v(2)%pt_surface, &
     2105                    surf_def_v(3)%pt_surface, surf_lsm_v(3)%pt_surface, surf_usm_v(3)%pt_surface )
    21492106             ELSE
    21502107!
     
    21592116!--          Output of instantaneous data
    21602117             IF ( av == 0 )  THEN
    2161                 CALL surface_data_output_collect( surf_def_h(0)%vpt_surface,                       &
    2162                                                   surf_def_h(1)%vpt_surface,                       &
    2163                                                   surf_lsm_h%vpt_surface, surf_usm_h%vpt_surface,  &
    2164                                                   surf_def_v(0)%vpt_surface,                       &
    2165                                                   surf_lsm_v(0)%vpt_surface,                       &
    2166                                                   surf_usm_v(0)%vpt_surface,                       &
    2167                                                   surf_def_v(1)%vpt_surface,                       &
    2168                                                   surf_lsm_v(1)%vpt_surface,                       &
    2169                                                   surf_usm_v(1)%vpt_surface,                       &
    2170                                                   surf_def_v(2)%vpt_surface,                       &
    2171                                                   surf_lsm_v(2)%vpt_surface,                       &
    2172                                                   surf_usm_v(2)%vpt_surface,                       &
    2173                                                   surf_def_v(3)%vpt_surface,                       &
    2174                                                   surf_lsm_v(3)%vpt_surface,                       &
    2175                                                   surf_usm_v(3)%vpt_surface)
     2118                CALL surface_data_output_collect(                                                  &
     2119                  surf_def_h(0)%vpt_surface, surf_lsm_h(0)%vpt_surface, surf_usm_h(0)%vpt_surface, &
     2120                  surf_def_h(1)%vpt_surface, surf_lsm_h(1)%vpt_surface, surf_usm_h(1)%vpt_surface, &
     2121                  surf_def_v(0)%vpt_surface, surf_lsm_v(0)%vpt_surface, surf_usm_v(0)%vpt_surface, &
     2122                  surf_def_v(1)%vpt_surface, surf_lsm_v(1)%vpt_surface, surf_usm_v(1)%vpt_surface, &
     2123                  surf_def_v(2)%vpt_surface, surf_lsm_v(2)%vpt_surface, surf_usm_v(2)%vpt_surface, &
     2124                  surf_def_v(3)%vpt_surface, surf_lsm_v(3)%vpt_surface, surf_usm_v(3)%vpt_surface )
    21762125             ELSE
    21772126!
     
    21862135!--          Output of instantaneous data
    21872136             IF ( av == 0 )  THEN
    2188                 CALL surface_data_output_collect( surf_def_h(0)%rad_net, surf_def_h(1)%rad_net,    &
    2189                                                   surf_lsm_h%rad_net, surf_usm_h%rad_net,          &
    2190                                                   surf_def_v(0)%rad_net, surf_lsm_v(0)%rad_net,    &
    2191                                                   surf_usm_v(0)%rad_net, surf_def_v(1)%rad_net,    &
    2192                                                   surf_lsm_v(1)%rad_net, surf_usm_v(1)%rad_net,    &
    2193                                                   surf_def_v(2)%rad_net, surf_lsm_v(2)%rad_net,    &
    2194                                                   surf_usm_v(2)%rad_net, surf_def_v(3)%rad_net,    &
    2195                                                   surf_lsm_v(3)%rad_net, surf_usm_v(3)%rad_net )
     2137                CALL surface_data_output_collect(                                        &
     2138                    surf_def_h(0)%rad_net, surf_lsm_h(0)%rad_net, surf_usm_h(0)%rad_net, &
     2139                    surf_def_h(1)%rad_net, surf_lsm_h(1)%rad_net, surf_usm_h(1)%rad_net, &
     2140                    surf_def_v(0)%rad_net, surf_lsm_v(0)%rad_net, surf_usm_v(0)%rad_net, &
     2141                    surf_def_v(1)%rad_net, surf_lsm_v(1)%rad_net, surf_usm_v(1)%rad_net, &
     2142                    surf_def_v(2)%rad_net, surf_lsm_v(2)%rad_net, surf_usm_v(2)%rad_net, &
     2143                    surf_def_v(3)%rad_net, surf_lsm_v(3)%rad_net, surf_usm_v(3)%rad_net )
    21962144             ELSE
    21972145!
     
    22062154!--          Output of instantaneous data
    22072155             IF ( av == 0 )  THEN
    2208                 CALL surface_data_output_collect( surf_def_h(0)%rad_lw_in,                         &
    2209                                                   surf_def_h(1)%rad_lw_in, surf_lsm_h%rad_lw_in,   &
    2210                                                   surf_usm_h%rad_lw_in, surf_def_v(0)%rad_lw_in,   &
    2211                                                   surf_lsm_v(0)%rad_lw_in,                         &
    2212                                                   surf_usm_v(0)%rad_lw_in,                         &
    2213                                                   surf_def_v(1)%rad_lw_in,                         &
    2214                                                   surf_lsm_v(1)%rad_lw_in,                         &
    2215                                                   surf_usm_v(1)%rad_lw_in,                         &
    2216                                                   surf_def_v(2)%rad_lw_in,                         &
    2217                                                   surf_lsm_v(2)%rad_lw_in,                         &
    2218                                                   surf_usm_v(2)%rad_lw_in,                         &
    2219                                                   surf_def_v(3)%rad_lw_in,                         &
    2220                                                   surf_lsm_v(3)%rad_lw_in,                         &
    2221                                                   surf_usm_v(3)%rad_lw_in )
     2156                CALL surface_data_output_collect(                                              &
     2157                    surf_def_h(0)%rad_lw_in, surf_lsm_h(0)%rad_lw_in, surf_usm_h(0)%rad_lw_in, &
     2158                    surf_def_h(1)%rad_lw_in, surf_lsm_h(1)%rad_lw_in, surf_usm_h(1)%rad_lw_in, &
     2159                    surf_def_v(0)%rad_lw_in, surf_lsm_v(0)%rad_lw_in, surf_usm_v(0)%rad_lw_in, &
     2160                    surf_def_v(1)%rad_lw_in, surf_lsm_v(1)%rad_lw_in, surf_usm_v(1)%rad_lw_in, &
     2161                    surf_def_v(2)%rad_lw_in, surf_lsm_v(2)%rad_lw_in, surf_usm_v(2)%rad_lw_in, &
     2162                    surf_def_v(3)%rad_lw_in, surf_lsm_v(3)%rad_lw_in, surf_usm_v(3)%rad_lw_in )
    22222163             ELSE
    22232164!
     
    22322173!--          Output of instantaneous data
    22332174             IF ( av == 0 )  THEN
    2234                 CALL surface_data_output_collect( surf_def_h(0)%rad_lw_out,                        &
    2235                                                   surf_def_h(1)%rad_lw_out, surf_lsm_h%rad_lw_out, &
    2236                                                   surf_usm_h%rad_lw_out, surf_def_v(0)%rad_lw_out, &
    2237                                                   surf_lsm_v(0)%rad_lw_out,                        &
    2238                                                   surf_usm_v(0)%rad_lw_out,                        &
    2239                                                   surf_def_v(1)%rad_lw_out,                        &
    2240                                                   surf_lsm_v(1)%rad_lw_out,                        &
    2241                                                   surf_usm_v(1)%rad_lw_out,                        &
    2242                                                   surf_def_v(2)%rad_lw_out,                        &
    2243                                                   surf_lsm_v(2)%rad_lw_out,                        &
    2244                                                   surf_usm_v(2)%rad_lw_out,                        &
    2245                                                   surf_def_v(3)%rad_lw_out,                        &
    2246                                                   surf_lsm_v(3)%rad_lw_out,                        &
    2247                                                   surf_usm_v(3)%rad_lw_out )
     2175                CALL surface_data_output_collect(                                                 &
     2176                    surf_def_h(0)%rad_lw_out, surf_lsm_h(0)%rad_lw_out, surf_usm_h(0)%rad_lw_out, &
     2177                    surf_def_h(1)%rad_lw_out, surf_lsm_h(1)%rad_lw_out, surf_usm_h(1)%rad_lw_out, &
     2178                    surf_def_v(0)%rad_lw_out, surf_lsm_v(0)%rad_lw_out, surf_usm_v(0)%rad_lw_out, &
     2179                    surf_def_v(1)%rad_lw_out, surf_lsm_v(1)%rad_lw_out, surf_usm_v(1)%rad_lw_out, &
     2180                    surf_def_v(2)%rad_lw_out, surf_lsm_v(2)%rad_lw_out, surf_usm_v(2)%rad_lw_out, &
     2181                    surf_def_v(3)%rad_lw_out, surf_lsm_v(3)%rad_lw_out, surf_usm_v(3)%rad_lw_out )
    22482182             ELSE
    22492183!
     
    22582192!--          Output of instantaneous data
    22592193             IF ( av == 0 )  THEN
    2260                 CALL surface_data_output_collect( surf_def_h(0)%rad_sw_in,                         &
    2261                                                   surf_def_h(1)%rad_sw_in, surf_lsm_h%rad_sw_in,   &
    2262                                                   surf_usm_h%rad_sw_in, surf_def_v(0)%rad_sw_in,   &
    2263                                                   surf_lsm_v(0)%rad_sw_in,                         &
    2264                                                   surf_usm_v(0)%rad_sw_in,                         &
    2265                                                   surf_def_v(1)%rad_sw_in,                         &
    2266                                                   surf_lsm_v(1)%rad_sw_in,                         &
    2267                                                   surf_usm_v(1)%rad_sw_in,                         &
    2268                                                   surf_def_v(2)%rad_sw_in,                         &
    2269                                                   surf_lsm_v(2)%rad_sw_in,                         &
    2270                                                   surf_usm_v(2)%rad_sw_in,                         &
    2271                                                   surf_def_v(3)%rad_sw_in,                         &
    2272                                                   surf_lsm_v(3)%rad_sw_in,                         &
    2273                                                   surf_usm_v(3)%rad_sw_in )
     2194                CALL surface_data_output_collect(                                              &
     2195                    surf_def_h(0)%rad_sw_in, surf_lsm_h(0)%rad_sw_in, surf_usm_h(0)%rad_sw_in, &
     2196                    surf_def_h(1)%rad_sw_in, surf_lsm_h(1)%rad_sw_in, surf_usm_h(1)%rad_sw_in, &
     2197                    surf_def_v(0)%rad_sw_in, surf_lsm_v(0)%rad_sw_in, surf_usm_v(0)%rad_sw_in, &
     2198                    surf_def_v(1)%rad_sw_in, surf_lsm_v(1)%rad_sw_in, surf_usm_v(1)%rad_sw_in, &
     2199                    surf_def_v(2)%rad_sw_in, surf_lsm_v(2)%rad_sw_in, surf_usm_v(2)%rad_sw_in, &
     2200                    surf_def_v(3)%rad_sw_in, surf_lsm_v(3)%rad_sw_in, surf_usm_v(3)%rad_sw_in )
    22742201             ELSE
    22752202!
     
    22842211!--          Output of instantaneous data
    22852212             IF ( av == 0 )  THEN
    2286                 CALL surface_data_output_collect( surf_def_h(0)%rad_sw_out,                        &
    2287                                                   surf_def_h(1)%rad_sw_out, surf_lsm_h%rad_sw_out, &
    2288                                                   surf_usm_h%rad_sw_out, surf_def_v(0)%rad_sw_out, &
    2289                                                   surf_lsm_v(0)%rad_sw_out,                        &
    2290                                                   surf_usm_v(0)%rad_sw_out,                        &
    2291                                                   surf_def_v(1)%rad_sw_out,                        &
    2292                                                   surf_lsm_v(1)%rad_sw_out,                        &
    2293                                                   surf_usm_v(1)%rad_sw_out,                        &
    2294                                                   surf_def_v(2)%rad_sw_out,                        &
    2295                                                   surf_lsm_v(2)%rad_sw_out,                        &
    2296                                                   surf_usm_v(2)%rad_sw_out,                        &
    2297                                                   surf_def_v(3)%rad_sw_out,                        &
    2298                                                   surf_lsm_v(3)%rad_sw_out,                        &
    2299                                                   surf_usm_v(3)%rad_sw_out )
     2213                CALL surface_data_output_collect(                                                    &
     2214                    surf_def_h(0)%rad_sw_out, surf_lsm_h(0)%rad_sw_out, surf_usm_h(0)%rad_sw_out,    &
     2215                    surf_def_h(1)%rad_sw_out, surf_lsm_h(1)%rad_sw_out, surf_usm_h(1)%rad_sw_out,    &
     2216                    surf_def_v(0)%rad_sw_out, surf_lsm_v(0)%rad_sw_out, surf_usm_v(0)%rad_sw_out,    &
     2217                    surf_def_v(1)%rad_sw_out, surf_lsm_v(1)%rad_sw_out, surf_usm_v(1)%rad_sw_out,    &
     2218                    surf_def_v(2)%rad_sw_out, surf_lsm_v(2)%rad_sw_out, surf_usm_v(2)%rad_sw_out,    &
     2219                    surf_def_v(3)%rad_sw_out, surf_lsm_v(3)%rad_sw_out, surf_usm_v(3)%rad_sw_out )
    23002220             ELSE
    23012221!
     
    23132233!--             Sum up ground / wall heat flux. Note, for urban surfaces the wall heat flux is
    23142234!--             aggregated from the different green, window and wall tiles.
    2315                 DO  m = 1, surf_usm_h%ns
    2316                    surf_usm_h%ghf(m) = surf_usm_h%frac(m,ind_veg_wall) * surf_usm_h%wghf_eb(m) +   &
    2317                                        surf_usm_h%frac(m,ind_pav_green) *                          &
    2318                                        surf_usm_h%wghf_eb_green(m) +                               &
    2319                                        surf_usm_h%frac(m,ind_wat_win) *                            &
    2320                                        surf_usm_h%wghf_eb_window(m)
     2235                DO  l = 0, 1
     2236                   DO  m = 1, surf_usm_h(l)%ns
     2237                      surf_usm_h(l)%ghf(m) = surf_usm_h(l)%frac(m,ind_veg_wall) *                 &
     2238                                          surf_usm_h(l)%wghf_eb(m) +                              &
     2239                                          surf_usm_h(l)%frac(m,ind_pav_green) *                   &
     2240                                          surf_usm_h(l)%wghf_eb_green(m) +                        &
     2241                                          surf_usm_h(l)%frac(m,ind_wat_win) *                     &
     2242                                          surf_usm_h(l)%wghf_eb_window(m)
     2243                   ENDDO
    23212244                ENDDO
    23222245                DO  l = 0, 3
     
    23312254                ENDDO
    23322255
    2333                 CALL surface_data_output_collect( surf_def_h(0)%ghf, surf_def_h(1)%ghf,            &
    2334                                                   surf_lsm_h%ghf, surf_usm_h%ghf,                  &
    2335                                                   surf_def_v(0)%ghf, surf_lsm_v(0)%ghf,            &
    2336                                                   surf_usm_v(0)%ghf, surf_def_v(1)%ghf,            &
    2337                                                   surf_lsm_v(1)%ghf, surf_usm_v(1)%ghf,            &
    2338                                                   surf_def_v(2)%ghf, surf_lsm_v(2)%ghf,            &
    2339                                                   surf_usm_v(2)%ghf, surf_def_v(3)%ghf,            &
    2340                                                   surf_lsm_v(3)%ghf, surf_usm_v(3)%ghf )
     2256                CALL surface_data_output_collect(                                     &
     2257                          surf_def_h(0)%ghf, surf_lsm_h(0)%ghf, surf_usm_h(0)%ghf,    &
     2258                          surf_def_h(1)%ghf, surf_lsm_h(1)%ghf, surf_usm_h(1)%ghf,    &
     2259                          surf_def_v(0)%ghf, surf_lsm_v(0)%ghf, surf_usm_v(0)%ghf,    &
     2260                          surf_def_v(1)%ghf, surf_lsm_v(1)%ghf, surf_usm_v(1)%ghf,    &
     2261                          surf_def_v(2)%ghf, surf_lsm_v(2)%ghf, surf_usm_v(2)%ghf,    &
     2262                          surf_def_v(3)%ghf, surf_lsm_v(3)%ghf, surf_usm_v(3)%ghf )
    23412263             ELSE
    23422264!
     
    23512273!--          Output of instantaneous data
    23522274             IF ( av == 0 )  THEN
    2353                 CALL surface_data_output_collect( surf_def_h(0)%r_a, surf_def_h(1)%r_a,            &
    2354                                                   surf_lsm_h%r_a, surf_usm_h%r_a,                  &
    2355                                                   surf_def_v(0)%r_a, surf_lsm_v(0)%r_a,            &
    2356                                                   surf_usm_v(0)%r_a, surf_def_v(1)%r_a,            &
    2357                                                   surf_lsm_v(1)%r_a, surf_usm_v(1)%r_a,            &
    2358                                                   surf_def_v(2)%r_a, surf_lsm_v(2)%r_a,            &
    2359                                                   surf_usm_v(2)%r_a, surf_def_v(3)%r_a,            &
    2360                                                   surf_lsm_v(3)%r_a, surf_usm_v(3)%r_a )
     2275                CALL surface_data_output_collect(                                     &
     2276                          surf_def_h(0)%r_a, surf_lsm_h(0)%r_a, surf_usm_h(0)%r_a,    &
     2277                          surf_def_h(1)%r_a, surf_lsm_h(1)%r_a, surf_usm_h(1)%r_a,    &
     2278                          surf_def_v(0)%r_a, surf_lsm_v(0)%r_a, surf_usm_v(0)%r_a,    &
     2279                          surf_def_v(1)%r_a, surf_lsm_v(1)%r_a, surf_usm_v(1)%r_a,    &
     2280                          surf_def_v(2)%r_a, surf_lsm_v(2)%r_a, surf_usm_v(2)%r_a,    &
     2281                          surf_def_v(3)%r_a, surf_lsm_v(3)%r_a, surf_usm_v(3)%r_a )
    23612282             ELSE
    23622283!
     
    23712292!--          Output of instantaneous data
    23722293             IF ( av == 0 )  THEN
    2373                 CALL surface_data_output_collect( surf_def_h(0)%r_soil, surf_def_h(1)%r_soil,      &
    2374                                                   surf_lsm_h%r_soil, surf_usm_h%r_soil,            &
    2375                                                   surf_def_v(0)%r_soil, surf_lsm_v(0)%r_soil,      &
    2376                                                   surf_usm_v(0)%r_soil, surf_def_v(1)%r_soil,      &
    2377                                                   surf_lsm_v(1)%r_soil, surf_usm_v(1)%r_soil,      &
    2378                                                   surf_def_v(2)%r_soil, surf_lsm_v(2)%r_soil,      &
    2379                                                   surf_usm_v(2)%r_soil, surf_def_v(3)%r_soil,      &
    2380                                                   surf_lsm_v(3)%r_soil, surf_usm_v(3)%r_soil )
     2294                CALL surface_data_output_collect(                                              &
     2295                          surf_def_h(0)%r_soil, surf_lsm_h(0)%r_soil, surf_usm_h(0)%r_soil,    &
     2296                          surf_def_h(1)%r_soil, surf_lsm_h(1)%r_soil, surf_usm_h(1)%r_soil,    &
     2297                          surf_def_v(0)%r_soil, surf_lsm_v(0)%r_soil, surf_usm_v(0)%r_soil,    &
     2298                          surf_def_v(1)%r_soil, surf_lsm_v(1)%r_soil, surf_usm_v(1)%r_soil,    &
     2299                          surf_def_v(2)%r_soil, surf_lsm_v(2)%r_soil, surf_usm_v(2)%r_soil,    &
     2300                          surf_def_v(3)%r_soil, surf_lsm_v(3)%r_soil, surf_usm_v(3)%r_soil )
    23812301             ELSE
    23822302!
     
    23912311!--          Output of instantaneous data
    23922312             IF ( av == 0 )  THEN
    2393                 CALL surface_data_output_collect( surf_def_h(0)%r_canopy, surf_def_h(1)%r_canopy,  &
    2394                                                   surf_lsm_h%r_canopy, surf_usm_h%r_canopy,        &
    2395                                                   surf_def_v(0)%r_canopy, surf_lsm_v(0)%r_canopy,  &
    2396                                                   surf_usm_v(0)%r_canopy, surf_def_v(1)%r_canopy,  &
    2397                                                   surf_lsm_v(1)%r_canopy, surf_usm_v(1)%r_canopy,  &
    2398                                                   surf_def_v(2)%r_canopy, surf_lsm_v(2)%r_canopy,  &
    2399                                                   surf_usm_v(2)%r_canopy, surf_def_v(3)%r_canopy,  &
    2400                                                   surf_lsm_v(3)%r_canopy, surf_usm_v(3)%r_canopy )
     2313                CALL surface_data_output_collect(                                                 &
     2314                          surf_def_h(0)%r_canopy, surf_lsm_h(0)%r_canopy, surf_usm_h(0)%r_canopy, &
     2315                          surf_def_h(1)%r_canopy, surf_lsm_h(1)%r_canopy, surf_usm_h(1)%r_canopy, &
     2316                          surf_def_v(0)%r_canopy, surf_lsm_v(0)%r_canopy, surf_usm_v(0)%r_canopy, &
     2317                          surf_def_v(1)%r_canopy, surf_lsm_v(1)%r_canopy, surf_usm_v(1)%r_canopy, &
     2318                          surf_def_v(2)%r_canopy, surf_lsm_v(2)%r_canopy, surf_usm_v(2)%r_canopy, &
     2319                          surf_def_v(3)%r_canopy, surf_lsm_v(3)%r_canopy, surf_usm_v(3)%r_canopy )
    24012320             ELSE
    24022321!
     
    24112330!--          Output of instantaneous data
    24122331             IF ( av == 0 )  THEN
    2413                 CALL surface_data_output_collect( surf_def_h(0)%r_s, surf_def_h(1)%r_s,            &
    2414                                                   surf_lsm_h%r_s, surf_usm_h%r_s,                  &
    2415                                                   surf_def_v(0)%r_s, surf_lsm_v(0)%r_s,            &
    2416                                                   surf_usm_v(0)%r_s, surf_def_v(1)%r_s,            &
    2417                                                   surf_lsm_v(1)%r_s, surf_usm_v(1)%r_s,            &
    2418                                                   surf_def_v(2)%r_s, surf_lsm_v(2)%r_s,            &
    2419                                                   surf_usm_v(2)%r_s, surf_def_v(3)%r_s,            &
    2420                                                   surf_lsm_v(3)%r_s, surf_usm_v(3)%r_s )
     2332                CALL surface_data_output_collect(                                     &
     2333                          surf_def_h(0)%r_s, surf_lsm_h(0)%r_s, surf_usm_h(0)%r_s,    &
     2334                          surf_def_h(1)%r_s, surf_lsm_h(1)%r_s, surf_usm_h(1)%r_s,    &
     2335                          surf_def_v(0)%r_s, surf_lsm_v(0)%r_s, surf_usm_v(0)%r_s,    &
     2336                          surf_def_v(1)%r_s, surf_lsm_v(1)%r_s, surf_usm_v(1)%r_s,    &
     2337                          surf_def_v(2)%r_s, surf_lsm_v(2)%r_s, surf_usm_v(2)%r_s,    &
     2338                          surf_def_v(3)%r_s, surf_lsm_v(3)%r_s, surf_usm_v(3)%r_s )
    24212339             ELSE
    24222340!
     
    24312349!--          Output of instantaneous data
    24322350             IF ( av == 0 )  THEN
    2433                 CALL surface_data_output_collect( surf_def_h(0)%rad_sw_dir,                        &
    2434                                                   surf_def_h(1)%rad_sw_dir, surf_lsm_h%rad_sw_dir, &
    2435                                                   surf_usm_h%rad_sw_dir, surf_def_v(0)%rad_sw_dir, &
    2436                                                   surf_lsm_v(0)%rad_sw_dir,                        &
    2437                                                   surf_usm_v(0)%rad_sw_dir,                        &
    2438                                                   surf_def_v(1)%rad_sw_dir,                        &
    2439                                                   surf_lsm_v(1)%rad_sw_dir,                        &
    2440                                                   surf_usm_v(1)%rad_sw_dir,                        &
    2441                                                   surf_def_v(2)%rad_sw_dir,                        &
    2442                                                   surf_lsm_v(2)%rad_sw_dir,                        &
    2443                                                   surf_usm_v(2)%rad_sw_dir,                        &
    2444                                                   surf_def_v(3)%rad_sw_dir,                        &
    2445                                                   surf_lsm_v(3)%rad_sw_dir,                        &
    2446                                                   surf_usm_v(3)%rad_sw_dir )
     2351                CALL surface_data_output_collect(                                                 &
     2352                    surf_def_h(0)%rad_sw_dir, surf_lsm_h(0)%rad_sw_dir, surf_usm_h(0)%rad_sw_dir, &
     2353                    surf_def_h(1)%rad_sw_dir, surf_lsm_h(1)%rad_sw_dir, surf_usm_h(1)%rad_sw_dir, &
     2354                    surf_def_v(0)%rad_sw_dir, surf_lsm_v(0)%rad_sw_dir, surf_usm_v(0)%rad_sw_dir, &
     2355                    surf_def_v(1)%rad_sw_dir, surf_lsm_v(1)%rad_sw_dir, surf_usm_v(1)%rad_sw_dir, &
     2356                    surf_def_v(2)%rad_sw_dir, surf_lsm_v(2)%rad_sw_dir, surf_usm_v(2)%rad_sw_dir, &
     2357                    surf_def_v(3)%rad_sw_dir, surf_lsm_v(3)%rad_sw_dir, surf_usm_v(3)%rad_sw_dir )
    24472358             ELSE
    24482359!
     
    24572368!--          Output of instantaneous data
    24582369             IF ( av == 0 )  THEN
    2459                 CALL surface_data_output_collect( surf_def_h(0)%rad_sw_dif,                        &
    2460                                                   surf_def_h(1)%rad_sw_dif, surf_lsm_h%rad_sw_dif, &
    2461                                                   surf_usm_h%rad_sw_dif, surf_def_v(0)%rad_sw_dif, &
    2462                                                   surf_lsm_v(0)%rad_sw_dif,                        &
    2463                                                   surf_usm_v(0)%rad_sw_dif,                        &
    2464                                                   surf_def_v(1)%rad_sw_dif,                        &
    2465                                                   surf_lsm_v(1)%rad_sw_dif,                        &
    2466                                                   surf_usm_v(1)%rad_sw_dif,                        &
    2467                                                   surf_def_v(2)%rad_sw_dif,                        &
    2468                                                   surf_lsm_v(2)%rad_sw_dif,                        &
    2469                                                   surf_usm_v(2)%rad_sw_dif,                        &
    2470                                                   surf_def_v(3)%rad_sw_dif,                        &
    2471                                                   surf_lsm_v(3)%rad_sw_dif,                        &
    2472                                                   surf_usm_v(3)%rad_sw_dif )
     2370                CALL surface_data_output_collect(                                                 &
     2371                    surf_def_h(0)%rad_sw_dif, surf_lsm_h(0)%rad_sw_dif, surf_usm_h(0)%rad_sw_dif, &
     2372                    surf_def_h(1)%rad_sw_dif, surf_lsm_h(1)%rad_sw_dif, surf_usm_h(1)%rad_sw_dif, &
     2373                    surf_def_v(0)%rad_sw_dif, surf_lsm_v(0)%rad_sw_dif, surf_usm_v(0)%rad_sw_dif, &
     2374                    surf_def_v(1)%rad_sw_dif, surf_lsm_v(1)%rad_sw_dif, surf_usm_v(1)%rad_sw_dif, &
     2375                    surf_def_v(2)%rad_sw_dif, surf_lsm_v(2)%rad_sw_dif, surf_usm_v(2)%rad_sw_dif, &
     2376                    surf_def_v(3)%rad_sw_dif, surf_lsm_v(3)%rad_sw_dif, surf_usm_v(3)%rad_sw_dif )
    24732377             ELSE
    24742378!
     
    24832387!--          Output of instantaneous data
    24842388             IF ( av == 0 )  THEN
    2485                 CALL surface_data_output_collect( surf_def_h(0)%rad_sw_ref,                        &
    2486                                                   surf_def_h(1)%rad_sw_ref, surf_lsm_h%rad_sw_ref, &
    2487                                                   surf_usm_h%rad_sw_ref, surf_def_v(0)%rad_sw_ref, &
    2488                                                   surf_lsm_v(0)%rad_sw_ref,                        &
    2489                                                   surf_usm_v(0)%rad_sw_ref,                        &
    2490                                                   surf_def_v(1)%rad_sw_ref,                        &
    2491                                                   surf_lsm_v(1)%rad_sw_ref,                        &
    2492                                                   surf_usm_v(1)%rad_sw_ref,                        &
    2493                                                   surf_def_v(2)%rad_sw_ref,                        &
    2494                                                   surf_lsm_v(2)%rad_sw_ref,                        &
    2495                                                   surf_usm_v(2)%rad_sw_ref,                        &
    2496                                                   surf_def_v(3)%rad_sw_ref,                        &
    2497                                                   surf_lsm_v(3)%rad_sw_ref,                        &
    2498                                                   surf_usm_v(3)%rad_sw_ref )
     2389                CALL surface_data_output_collect(                                                 &
     2390                    surf_def_h(0)%rad_sw_ref, surf_lsm_h(0)%rad_sw_ref, surf_usm_h(0)%rad_sw_ref, &
     2391                    surf_def_h(1)%rad_sw_ref, surf_lsm_h(1)%rad_sw_ref, surf_usm_h(1)%rad_sw_ref, &
     2392                    surf_def_v(0)%rad_sw_ref, surf_lsm_v(0)%rad_sw_ref, surf_usm_v(0)%rad_sw_ref, &
     2393                    surf_def_v(1)%rad_sw_ref, surf_lsm_v(1)%rad_sw_ref, surf_usm_v(1)%rad_sw_ref, &
     2394                    surf_def_v(2)%rad_sw_ref, surf_lsm_v(2)%rad_sw_ref, surf_usm_v(2)%rad_sw_ref, &
     2395                    surf_def_v(3)%rad_sw_ref, surf_lsm_v(3)%rad_sw_ref, surf_usm_v(3)%rad_sw_ref )
    24992396             ELSE
    25002397!
     
    25092406!--          Output of instantaneous data
    25102407             IF ( av == 0 )  THEN
    2511                 CALL surface_data_output_collect( surf_def_h(0)%rad_sw_res,                        &
    2512                                                   surf_def_h(1)%rad_sw_res, surf_lsm_h%rad_sw_res, &
    2513                                                   surf_usm_h%rad_sw_res, surf_def_v(0)%rad_sw_res, &
    2514                                                   surf_lsm_v(0)%rad_sw_res,                        &
    2515                                                   surf_usm_v(0)%rad_sw_res,                        &
    2516                                                   surf_def_v(1)%rad_sw_res,                        &
    2517                                                   surf_lsm_v(1)%rad_sw_res,                        &
    2518                                                   surf_usm_v(1)%rad_sw_res,                        &
    2519                                                   surf_def_v(2)%rad_sw_res,                        &
    2520                                                   surf_lsm_v(2)%rad_sw_res,                        &
    2521                                                   surf_usm_v(2)%rad_sw_res,                        &
    2522                                                   surf_def_v(3)%rad_sw_res,                        &
    2523                                                   surf_lsm_v(3)%rad_sw_res,                        &
    2524                                                   surf_usm_v(3)%rad_sw_res )
     2408                CALL surface_data_output_collect(                                                 &
     2409                    surf_def_h(0)%rad_sw_res, surf_lsm_h(0)%rad_sw_res, surf_usm_h(0)%rad_sw_res, &
     2410                    surf_def_h(1)%rad_sw_res, surf_lsm_h(1)%rad_sw_res, surf_usm_h(1)%rad_sw_res, &
     2411                    surf_def_v(0)%rad_sw_res, surf_lsm_v(0)%rad_sw_res, surf_usm_v(0)%rad_sw_res, &
     2412                    surf_def_v(1)%rad_sw_res, surf_lsm_v(1)%rad_sw_res, surf_usm_v(1)%rad_sw_res, &
     2413                    surf_def_v(2)%rad_sw_res, surf_lsm_v(2)%rad_sw_res, surf_usm_v(2)%rad_sw_res, &
     2414                    surf_def_v(3)%rad_sw_res, surf_lsm_v(3)%rad_sw_res, surf_usm_v(3)%rad_sw_res )
    25252415             ELSE
    25262416!
     
    25352425!--          Output of instantaneous data
    25362426             IF ( av == 0 )  THEN
    2537                 CALL surface_data_output_collect( surf_def_h(0)%rad_lw_dif,                        &
    2538                                                   surf_def_h(1)%rad_lw_dif, surf_lsm_h%rad_lw_dif, &
    2539                                                   surf_usm_h%rad_lw_dif, surf_def_v(0)%rad_lw_dif, &
    2540                                                   surf_lsm_v(0)%rad_lw_dif,                        &
    2541                                                   surf_usm_v(0)%rad_lw_dif,                        &
    2542                                                   surf_def_v(1)%rad_lw_dif,                        &
    2543                                                   surf_lsm_v(1)%rad_lw_dif,                        &
    2544                                                   surf_usm_v(1)%rad_lw_dif,                        &
    2545                                                   surf_def_v(2)%rad_lw_dif,                        &
    2546                                                   surf_lsm_v(2)%rad_lw_dif,                        &
    2547                                                   surf_usm_v(2)%rad_lw_dif,                        &
    2548                                                   surf_def_v(3)%rad_lw_dif,                        &
    2549                                                   surf_lsm_v(3)%rad_lw_dif,                        &
    2550                                                   surf_usm_v(3)%rad_lw_dif )
     2427                CALL surface_data_output_collect(                                                 &
     2428                    surf_def_h(0)%rad_lw_dif, surf_lsm_h(0)%rad_lw_dif, surf_usm_h(0)%rad_lw_dif, &
     2429                    surf_def_h(1)%rad_lw_dif, surf_lsm_h(1)%rad_lw_dif, surf_usm_h(1)%rad_lw_dif, &
     2430                    surf_def_v(0)%rad_lw_dif, surf_lsm_v(0)%rad_lw_dif, surf_usm_v(0)%rad_lw_dif, &
     2431                    surf_def_v(1)%rad_lw_dif, surf_lsm_v(1)%rad_lw_dif, surf_usm_v(1)%rad_lw_dif, &
     2432                    surf_def_v(2)%rad_lw_dif, surf_lsm_v(2)%rad_lw_dif, surf_usm_v(2)%rad_lw_dif, &
     2433                    surf_def_v(3)%rad_lw_dif, surf_lsm_v(3)%rad_lw_dif, surf_usm_v(3)%rad_lw_dif )
    25512434             ELSE
    25522435!
     
    25612444!--          Output of instantaneous data
    25622445             IF ( av == 0 )  THEN
    2563                 CALL surface_data_output_collect( surf_def_h(0)%rad_lw_ref,                        &
    2564                                                   surf_def_h(1)%rad_lw_ref, surf_lsm_h%rad_lw_ref, &
    2565                                                   surf_usm_h%rad_lw_ref, surf_def_v(0)%rad_lw_ref, &
    2566                                                   surf_lsm_v(0)%rad_lw_ref,                        &
    2567                                                   surf_usm_v(0)%rad_lw_ref,                        &
    2568                                                   surf_def_v(1)%rad_lw_ref,                        &
    2569                                                   surf_lsm_v(1)%rad_lw_ref,                        &
    2570                                                   surf_usm_v(1)%rad_lw_ref,                        &
    2571                                                   surf_def_v(2)%rad_lw_ref,                        &
    2572                                                   surf_lsm_v(2)%rad_lw_ref,                        &
    2573                                                   surf_usm_v(2)%rad_lw_ref,                        &
    2574                                                   surf_def_v(3)%rad_lw_ref,                        &
    2575                                                   surf_lsm_v(3)%rad_lw_ref,                        &
    2576                                                   surf_usm_v(3)%rad_lw_ref )
     2446                CALL surface_data_output_collect(                                                 &
     2447                    surf_def_h(0)%rad_lw_ref, surf_lsm_h(0)%rad_lw_ref, surf_usm_h(0)%rad_lw_ref, &
     2448                    surf_def_h(1)%rad_lw_ref, surf_lsm_h(1)%rad_lw_ref, surf_usm_h(1)%rad_lw_ref, &
     2449                    surf_def_v(0)%rad_lw_ref, surf_lsm_v(0)%rad_lw_ref, surf_usm_v(0)%rad_lw_ref, &
     2450                    surf_def_v(1)%rad_lw_ref, surf_lsm_v(1)%rad_lw_ref, surf_usm_v(1)%rad_lw_ref, &
     2451                    surf_def_v(2)%rad_lw_ref, surf_lsm_v(2)%rad_lw_ref, surf_usm_v(2)%rad_lw_ref, &
     2452                    surf_def_v(3)%rad_lw_ref, surf_lsm_v(3)%rad_lw_ref, surf_usm_v(3)%rad_lw_ref )
    25772453             ELSE
    25782454!
     
    25872463!--          Output of instantaneous data
    25882464             IF ( av == 0 )  THEN
    2589                 CALL surface_data_output_collect( surf_def_h(0)%rad_lw_res,                        &
    2590                                                   surf_def_h(1)%rad_lw_res, surf_lsm_h%rad_lw_res, &
    2591                                                   surf_usm_h%rad_lw_res, surf_def_v(0)%rad_lw_res, &
    2592                                                   surf_lsm_v(0)%rad_lw_res,                        &
    2593                                                   surf_usm_v(0)%rad_lw_res,                        &
    2594                                                   surf_def_v(1)%rad_lw_res,                        &
    2595                                                   surf_lsm_v(1)%rad_lw_res,                        &
    2596                                                   surf_usm_v(1)%rad_lw_res,                        &
    2597                                                   surf_def_v(2)%rad_lw_res,                        &
    2598                                                   surf_lsm_v(2)%rad_lw_res,                        &
    2599                                                   surf_usm_v(2)%rad_lw_res,                        &
    2600                                                   surf_def_v(3)%rad_lw_res,                        &
    2601                                                   surf_lsm_v(3)%rad_lw_res,                        &
    2602                                                   surf_usm_v(3)%rad_lw_res )
     2465                CALL surface_data_output_collect(                                                 &
     2466                    surf_def_h(0)%rad_lw_res, surf_lsm_h(0)%rad_lw_res, surf_usm_h(0)%rad_lw_res, &
     2467                    surf_def_h(1)%rad_lw_res, surf_lsm_h(1)%rad_lw_res, surf_usm_h(1)%rad_lw_res, &
     2468                    surf_def_v(0)%rad_lw_res, surf_lsm_v(0)%rad_lw_res, surf_usm_v(0)%rad_lw_res, &
     2469                    surf_def_v(1)%rad_lw_res, surf_lsm_v(1)%rad_lw_res, surf_usm_v(1)%rad_lw_res, &
     2470                    surf_def_v(2)%rad_lw_res, surf_lsm_v(2)%rad_lw_res, surf_usm_v(2)%rad_lw_res, &
     2471                    surf_def_v(3)%rad_lw_res, surf_lsm_v(3)%rad_lw_res, surf_usm_v(3)%rad_lw_res )
    26032472             ELSE
    26042473!
     
    26132482!--          Output of instantaneous data
    26142483             IF ( av == 0 )  THEN
    2615                 CALL surface_data_output_collect( surf_def_h(0)%uvw_abs,                           &
    2616                                                   surf_def_h(1)%uvw_abs, surf_lsm_h%uvw_abs,       &
    2617                                                   surf_usm_h%uvw_abs, surf_def_v(0)%uvw_abs,       &
    2618                                                   surf_lsm_v(0)%uvw_abs,                           &
    2619                                                   surf_usm_v(0)%uvw_abs,                           &
    2620                                                   surf_def_v(1)%uvw_abs,                           &
    2621                                                   surf_lsm_v(1)%uvw_abs,                           &
    2622                                                   surf_usm_v(1)%uvw_abs,                           &
    2623                                                   surf_def_v(2)%uvw_abs,                           &
    2624                                                   surf_lsm_v(2)%uvw_abs,                           &
    2625                                                   surf_usm_v(2)%uvw_abs,                           &
    2626                                                   surf_def_v(3)%uvw_abs,                           &
    2627                                                   surf_lsm_v(3)%uvw_abs,                           &
    2628                                                   surf_usm_v(3)%uvw_abs )
     2484                CALL surface_data_output_collect(                                                 &
     2485                          surf_def_h(0)%uvw_abs, surf_lsm_h(0)%uvw_abs, surf_usm_h(0)%uvw_abs,    &
     2486                          surf_def_h(1)%uvw_abs, surf_lsm_h(1)%uvw_abs, surf_usm_h(1)%uvw_abs,    &
     2487                          surf_def_v(0)%uvw_abs, surf_lsm_v(0)%uvw_abs, surf_usm_v(0)%uvw_abs,    &
     2488                          surf_def_v(1)%uvw_abs, surf_lsm_v(1)%uvw_abs, surf_usm_v(1)%uvw_abs,    &
     2489                          surf_def_v(2)%uvw_abs, surf_lsm_v(2)%uvw_abs, surf_usm_v(2)%uvw_abs,    &
     2490                          surf_def_v(3)%uvw_abs, surf_lsm_v(3)%uvw_abs, surf_usm_v(3)%uvw_abs )
    26292491             ELSE
    26302492!
     
    26402502!--          Output of instantaneous data
    26412503             IF ( av == 0 )  THEN
    2642                 CALL surface_data_output_collect( surf_def_h(0)%waste_heat,                        &
    2643                                                   surf_def_h(1)%waste_heat, surf_lsm_h%waste_heat, &
    2644                                                   surf_usm_h%waste_heat, surf_def_v(0)%waste_heat, &
    2645                                                   surf_lsm_v(0)%waste_heat,                        &
    2646                                                   surf_usm_v(0)%waste_heat,                        &
    2647                                                   surf_def_v(1)%waste_heat,                        &
    2648                                                   surf_lsm_v(1)%waste_heat,                        &
    2649                                                   surf_usm_v(1)%waste_heat,                        &
    2650                                                   surf_def_v(2)%waste_heat,                        &
    2651                                                   surf_lsm_v(2)%waste_heat,                        &
    2652                                                   surf_usm_v(2)%waste_heat,                        &
    2653                                                   surf_def_v(3)%waste_heat,                        &
    2654                                                   surf_lsm_v(3)%waste_heat,                        &
    2655                                                   surf_usm_v(3)%waste_heat )
     2504                CALL surface_data_output_collect(                                                 &
     2505                    surf_def_h(0)%waste_heat, surf_lsm_h(0)%waste_heat, surf_usm_h(0)%waste_heat, &
     2506                    surf_def_h(1)%waste_heat, surf_lsm_h(1)%waste_heat, surf_usm_h(1)%waste_heat, &
     2507                    surf_def_v(0)%waste_heat, surf_lsm_v(0)%waste_heat, surf_usm_v(0)%waste_heat, &
     2508                    surf_def_v(1)%waste_heat, surf_lsm_v(1)%waste_heat, surf_usm_v(1)%waste_heat, &
     2509                    surf_def_v(2)%waste_heat, surf_lsm_v(2)%waste_heat, surf_usm_v(2)%waste_heat, &
     2510                    surf_def_v(3)%waste_heat, surf_lsm_v(3)%waste_heat, surf_usm_v(3)%waste_heat )
    26562511             ELSE
    26572512!
     
    26672522!--          Output of instantaneous data
    26682523             IF ( av == 0 )  THEN
    2669                 CALL surface_data_output_collect( surf_def_h(0)%iwghf_eb, surf_def_h(1)%iwghf_eb,  &
    2670                                                   surf_lsm_h%iwghf_eb, surf_usm_h%iwghf_eb,        &
    2671                                                   surf_def_v(0)%iwghf_eb, surf_lsm_v(0)%iwghf_eb,  &
    2672                                                   surf_usm_v(0)%iwghf_eb, surf_def_v(1)%iwghf_eb,  &
    2673                                                   surf_lsm_v(1)%iwghf_eb, surf_usm_v(1)%iwghf_eb,  &
    2674                                                   surf_def_v(2)%iwghf_eb, surf_lsm_v(2)%iwghf_eb,  &
    2675                                                   surf_usm_v(2)%iwghf_eb, surf_def_v(3)%iwghf_eb,  &
    2676                                                   surf_lsm_v(3)%iwghf_eb, surf_usm_v(3)%iwghf_eb )
     2524                CALL surface_data_output_collect(                                                 &
     2525                          surf_def_h(0)%iwghf_eb, surf_lsm_h(0)%iwghf_eb, surf_usm_h(0)%iwghf_eb, &
     2526                          surf_def_h(1)%iwghf_eb, surf_lsm_h(1)%iwghf_eb, surf_usm_h(1)%iwghf_eb, &
     2527                          surf_def_v(0)%iwghf_eb, surf_lsm_v(0)%iwghf_eb, surf_usm_v(0)%iwghf_eb, &
     2528                          surf_def_v(1)%iwghf_eb, surf_lsm_v(1)%iwghf_eb, surf_usm_v(1)%iwghf_eb, &
     2529                          surf_def_v(2)%iwghf_eb, surf_lsm_v(2)%iwghf_eb, surf_usm_v(2)%iwghf_eb, &
     2530                          surf_def_v(3)%iwghf_eb, surf_lsm_v(3)%iwghf_eb, surf_usm_v(3)%iwghf_eb )
    26772531             ELSE
    26782532!
     
    26882542!--          Output of instantaneous data
    26892543             IF ( av == 0 )  THEN
    2690                 CALL surface_data_output_collect( surf_def_h(0)%albedo, surf_def_h(1)%albedo,      &
    2691                                                   surf_lsm_h%albedo, surf_usm_h%albedo,            &
    2692                                                   surf_def_v(0)%albedo, surf_lsm_v(0)%albedo,      &
    2693                                                   surf_usm_v(0)%albedo, surf_def_v(1)%albedo,      &
    2694                                                   surf_lsm_v(1)%albedo, surf_usm_v(1)%albedo,      &
    2695                                                   surf_def_v(2)%albedo, surf_lsm_v(2)%albedo,      &
    2696                                                   surf_usm_v(2)%albedo, surf_def_v(3)%albedo,      &
    2697                                                   surf_lsm_v(3)%albedo, surf_usm_v(3)%albedo )
     2544                CALL surface_data_output_collect(                                              &
     2545                          surf_def_h(0)%albedo, surf_lsm_h(0)%albedo, surf_usm_h(0)%albedo,    &
     2546                          surf_def_h(1)%albedo, surf_lsm_h(1)%albedo, surf_usm_h(1)%albedo,    &
     2547                          surf_def_v(0)%albedo, surf_lsm_v(0)%albedo, surf_usm_v(0)%albedo,    &
     2548                          surf_def_v(1)%albedo, surf_lsm_v(1)%albedo, surf_usm_v(1)%albedo,    &
     2549                          surf_def_v(2)%albedo, surf_lsm_v(2)%albedo, surf_usm_v(2)%albedo,    &
     2550                          surf_def_v(3)%albedo, surf_lsm_v(3)%albedo, surf_usm_v(3)%albedo )
    26982551             ELSE
    26992552!
     
    27092562!--          Output of instantaneous data
    27102563             IF ( av == 0 )  THEN
    2711                 CALL surface_data_output_collect( surf_def_h(0)%emissivity,                        &
    2712                                                   surf_def_h(1)%emissivity, surf_lsm_h%emissivity, &
    2713                                                   surf_usm_h%emissivity, surf_def_v(0)%emissivity, &
    2714                                                   surf_lsm_v(0)%emissivity,                        &
    2715                                                   surf_usm_v(0)%emissivity,                        &
    2716                                                   surf_def_v(1)%emissivity,                        &
    2717                                                   surf_lsm_v(1)%emissivity,                        &
    2718                                                   surf_usm_v(1)%emissivity,                        &
    2719                                                   surf_def_v(2)%emissivity,                        &
    2720                                                   surf_lsm_v(2)%emissivity,                        &
    2721                                                   surf_usm_v(2)%emissivity,                        &
    2722                                                   surf_def_v(3)%emissivity,                        &
    2723                                                   surf_lsm_v(3)%emissivity,                        &
    2724                                                   surf_usm_v(3)%emissivity )
     2564                CALL surface_data_output_collect(                                                 &
     2565                    surf_def_h(0)%emissivity, surf_lsm_h(0)%emissivity, surf_usm_h(0)%emissivity, &
     2566                    surf_def_h(1)%emissivity, surf_lsm_h(1)%emissivity, surf_usm_h(1)%emissivity, &
     2567                    surf_def_v(0)%emissivity, surf_lsm_v(0)%emissivity, surf_usm_v(0)%emissivity, &
     2568                    surf_def_v(1)%emissivity, surf_lsm_v(1)%emissivity, surf_usm_v(1)%emissivity, &
     2569                    surf_def_v(2)%emissivity, surf_lsm_v(2)%emissivity, surf_usm_v(2)%emissivity, &
     2570                    surf_def_v(3)%emissivity, surf_lsm_v(3)%emissivity, surf_usm_v(3)%emissivity )
    27252571             ELSE
    27262572!
     
    28012647
    28022648          CASE ( 'us' )
    2803              CALL surface_data_output_sum_up( surf_def_h(0)%us, surf_def_h(1)%us, surf_lsm_h%us,   &
    2804                                               surf_usm_h%us, surf_def_v(0)%us, surf_lsm_v(0)%us,   &
    2805                                               surf_usm_v(0)%us, surf_def_v(1)%us,                  &
    2806                                               surf_lsm_v(1)%us, surf_usm_v(1)%us,                  &
    2807                                               surf_def_v(2)%us, surf_lsm_v(2)%us,                  &
    2808                                               surf_usm_v(2)%us, surf_def_v(3)%us,                  &
    2809                                              surf_lsm_v(3)%us, surf_usm_v(3)%us, n_out )
     2649             CALL surface_data_output_sum_up(                                                     &
     2650                     surf_def_h(0)%us, surf_lsm_h(0)%us, surf_usm_h(0)%us,                        &
     2651                     surf_def_h(1)%us, surf_lsm_h(1)%us, surf_usm_h(1)%us,                        &
     2652                     surf_def_v(0)%us, surf_lsm_v(0)%us, surf_usm_v(0)%us,                        &
     2653                     surf_def_v(1)%us, surf_lsm_v(1)%us, surf_usm_v(1)%us,                        &
     2654                     surf_def_v(2)%us, surf_lsm_v(2)%us, surf_usm_v(2)%us,                        &
     2655                     surf_def_v(3)%us, surf_lsm_v(3)%us, surf_usm_v(3)%us, n_out )
    28102656
    28112657          CASE ( 'ts' )
    2812              CALL surface_data_output_sum_up( surf_def_h(0)%ts, surf_def_h(1)%ts, surf_lsm_h%ts,   &
    2813                                               surf_usm_h%ts, surf_def_v(0)%ts, surf_lsm_v(0)%ts,   &
    2814                                               surf_usm_v(0)%ts, surf_def_v(1)%ts,                  &
    2815                                               surf_lsm_v(1)%ts, surf_usm_v(1)%ts,                  &
    2816                                               surf_def_v(2)%ts, surf_lsm_v(2)%ts,                  &
    2817                                               surf_usm_v(2)%ts, surf_def_v(3)%ts,                  &
    2818                                              surf_lsm_v(3)%ts, surf_usm_v(3)%ts, n_out )
     2658             CALL surface_data_output_sum_up(                                                     &
     2659                     surf_def_h(0)%ts, surf_lsm_h(0)%ts, surf_usm_h(0)%ts,                        &
     2660                     surf_def_h(1)%ts, surf_lsm_h(1)%ts, surf_usm_h(1)%ts,                        &
     2661                     surf_def_v(0)%ts, surf_lsm_v(0)%ts, surf_usm_v(0)%ts,                        &
     2662                     surf_def_v(1)%ts, surf_lsm_v(1)%ts, surf_usm_v(1)%ts,                        &
     2663                     surf_def_v(2)%ts, surf_lsm_v(2)%ts, surf_usm_v(2)%ts,                        &
     2664                     surf_def_v(3)%ts, surf_lsm_v(3)%ts, surf_usm_v(3)%ts, n_out )
    28192665
    28202666          CASE ( 'qs' )
    2821              CALL surface_data_output_sum_up( surf_def_h(0)%qs, surf_def_h(1)%qs, surf_lsm_h%qs,   &
    2822                                               surf_usm_h%qs, surf_def_v(0)%qs, surf_lsm_v(0)%qs,   &
    2823                                               surf_usm_v(0)%qs, surf_def_v(1)%qs,                  &
    2824                                               surf_lsm_v(1)%qs, surf_usm_v(1)%qs,                  &
    2825                                               surf_def_v(2)%qs, surf_lsm_v(2)%qs,                  &
    2826                                               surf_usm_v(2)%qs, surf_def_v(3)%qs,                  &
    2827                                              surf_lsm_v(3)%qs, surf_usm_v(3)%qs, n_out )
     2667             CALL surface_data_output_sum_up(                                                     &
     2668                     surf_def_h(0)%qs, surf_lsm_h(0)%qs, surf_usm_h(0)%qs,                        &
     2669                     surf_def_h(1)%qs, surf_lsm_h(1)%qs, surf_usm_h(1)%qs,                        &
     2670                     surf_def_v(0)%qs, surf_lsm_v(0)%qs, surf_usm_v(0)%qs,                        &
     2671                     surf_def_v(1)%qs, surf_lsm_v(1)%qs, surf_usm_v(1)%qs,                        &
     2672                     surf_def_v(2)%qs, surf_lsm_v(2)%qs, surf_usm_v(2)%qs,                        &
     2673                     surf_def_v(3)%qs, surf_lsm_v(3)%qs, surf_usm_v(3)%qs, n_out )
    28282674
    28292675          CASE ( 'ss' )
    2830              CALL surface_data_output_sum_up( surf_def_h(0)%ss, surf_def_h(1)%ss, surf_lsm_h%ss,   &
    2831                                               surf_usm_h%ss, surf_def_v(0)%ss, surf_lsm_v(0)%ss,   &
    2832                                               surf_usm_v(0)%ss, surf_def_v(1)%ss,                  &
    2833                                               surf_lsm_v(1)%ss, surf_usm_v(1)%ss,                  &
    2834                                               surf_def_v(2)%ss, surf_lsm_v(2)%ss,                  &
    2835                                               surf_usm_v(2)%ss, surf_def_v(3)%ss,                  &
    2836                                              surf_lsm_v(3)%ss, surf_usm_v(3)%ss, n_out )
     2676             CALL surface_data_output_sum_up(                                                     &
     2677                     surf_def_h(0)%ss, surf_lsm_h(0)%ss, surf_usm_h(0)%ss,                        &
     2678                     surf_def_h(1)%ss, surf_lsm_h(1)%ss, surf_usm_h(1)%ss,                        &
     2679                     surf_def_v(0)%ss, surf_lsm_v(0)%ss, surf_usm_v(0)%ss,                        &
     2680                     surf_def_v(1)%ss, surf_lsm_v(1)%ss, surf_usm_v(1)%ss,                        &
     2681                     surf_def_v(2)%ss, surf_lsm_v(2)%ss, surf_usm_v(2)%ss,                        &
     2682                     surf_def_v(3)%ss, surf_lsm_v(3)%ss, surf_usm_v(3)%ss, n_out )
    28372683
    28382684          CASE ( 'qcs' )
    2839              CALL surface_data_output_sum_up( surf_def_h(0)%qcs, surf_def_h(1)%qcs,                &
    2840                                               surf_lsm_h%qcs, surf_usm_h%qcs, surf_def_v(0)%qcs,   &
    2841                                               surf_lsm_v(0)%qcs, surf_usm_v(0)%qcs,                &
    2842                                               surf_def_v(1)%qcs, surf_lsm_v(1)%qcs,                &
    2843                                               surf_usm_v(1)%qcs, surf_def_v(2)%qcs,                &
    2844                                               surf_lsm_v(2)%qcs, surf_usm_v(2)%qcs,                &
    2845                                               surf_def_v(3)%qcs, surf_lsm_v(3)%qcs,                &
    2846                                               surf_usm_v(3)%qcs, n_out )
     2685             CALL surface_data_output_sum_up(                                                     &
     2686                     surf_def_h(0)%qcs, surf_lsm_h(0)%qcs, surf_usm_h(0)%qcs,                     &
     2687                     surf_def_h(1)%qcs, surf_lsm_h(1)%qcs, surf_usm_h(1)%qcs,                     &
     2688                     surf_def_v(0)%qcs, surf_lsm_v(0)%qcs, surf_usm_v(0)%qcs,                     &
     2689                     surf_def_v(1)%qcs, surf_lsm_v(1)%qcs, surf_usm_v(1)%qcs,                     &
     2690                     surf_def_v(2)%qcs, surf_lsm_v(2)%qcs, surf_usm_v(2)%qcs,                     &
     2691                     surf_def_v(3)%qcs, surf_lsm_v(3)%qcs, surf_usm_v(3)%qcs, n_out )
    28472692
    28482693          CASE ( 'ncs' )
    2849              CALL surface_data_output_sum_up( surf_def_h(0)%ncs, surf_def_h(1)%ncs, surf_lsm_h%ncs,&
    2850                                               surf_usm_h%ncs, surf_def_v(0)%ncs,                   &
    2851                                               surf_lsm_v(0)%ncs, surf_usm_v(0)%ncs,                &
    2852                                               surf_def_v(1)%ncs, surf_lsm_v(1)%ncs,                &
    2853                                               surf_usm_v(1)%ncs, surf_def_v(2)%ncs,                &
    2854                                               surf_lsm_v(2)%ncs, surf_usm_v(2)%ncs,                &
    2855                                               surf_def_v(3)%ncs, surf_lsm_v(3)%ncs,                &
    2856                                               surf_usm_v(3)%ncs, n_out )
     2694             CALL surface_data_output_sum_up(                                                     &
     2695                     surf_def_h(0)%ncs, surf_lsm_h(0)%ncs, surf_usm_h(0)%ncs,                     &
     2696                     surf_def_h(1)%ncs, surf_lsm_h(1)%ncs, surf_usm_h(1)%ncs,                     &
     2697                     surf_def_v(0)%ncs, surf_lsm_v(0)%ncs, surf_usm_v(0)%ncs,                     &
     2698                     surf_def_v(1)%ncs, surf_lsm_v(1)%ncs, surf_usm_v(1)%ncs,                     &
     2699                     surf_def_v(2)%ncs, surf_lsm_v(2)%ncs, surf_usm_v(2)%ncs,                     &
     2700                     surf_def_v(3)%ncs, surf_lsm_v(3)%ncs, surf_usm_v(3)%ncs, n_out )
    28572701
    28582702          CASE ( 'qis' )
    2859              CALL surface_data_output_sum_up( surf_def_h(0)%qis, surf_def_h(1)%qis,                &
    2860                                               surf_lsm_h%qis, surf_usm_h%qis, surf_def_v(0)%qis,   &
    2861                                               surf_lsm_v(0)%qis, surf_usm_v(0)%qis,                &
    2862                                               surf_def_v(1)%qis, surf_lsm_v(1)%qis,                &
    2863                                               surf_usm_v(1)%qis, surf_def_v(2)%qis,                &
    2864                                               surf_lsm_v(2)%qis, surf_usm_v(2)%qis,                &
    2865                                               surf_def_v(3)%qis, surf_lsm_v(3)%qis,                &
    2866                                               surf_usm_v(3)%qrs, n_out )
     2703             CALL surface_data_output_sum_up(                                                     &
     2704                     surf_def_h(0)%qis, surf_lsm_h(0)%qis, surf_usm_h(0)%qis,                     &
     2705                     surf_def_h(1)%qis, surf_lsm_h(1)%qis, surf_usm_h(1)%qis,                     &
     2706                     surf_def_v(0)%qis, surf_lsm_v(0)%qis, surf_usm_v(0)%qis,                     &
     2707                     surf_def_v(1)%qis, surf_lsm_v(1)%qis, surf_usm_v(1)%qis,                     &
     2708                     surf_def_v(2)%qis, surf_lsm_v(2)%qis, surf_usm_v(2)%qis,                     &
     2709                     surf_def_v(3)%qis, surf_lsm_v(3)%qis, surf_usm_v(3)%qis, n_out )
    28672710
    28682711          CASE ( 'nis' )
    2869              CALL surface_data_output_sum_up( surf_def_h(0)%nis, surf_def_h(1)%nis,                &
    2870                                               surf_lsm_h%nis, surf_usm_h%nis, surf_def_v(0)%nis,   &
    2871                                               surf_lsm_v(0)%nis, surf_usm_v(0)%nis,                &
    2872                                               surf_def_v(1)%nis, surf_lsm_v(1)%nis,                &
    2873                                               surf_usm_v(1)%nis, surf_def_v(2)%nis,                &
    2874                                               surf_lsm_v(2)%nis, surf_usm_v(2)%nis,                &
    2875                                               surf_def_v(3)%nis, surf_lsm_v(3)%nis,                &
    2876                                               surf_usm_v(3)%nis, n_out )
     2712             CALL surface_data_output_sum_up(                                                     &
     2713                     surf_def_h(0)%nis, surf_lsm_h(0)%nis, surf_usm_h(0)%nis,                     &
     2714                     surf_def_h(1)%nis, surf_lsm_h(1)%nis, surf_usm_h(1)%nis,                     &
     2715                     surf_def_v(0)%nis, surf_lsm_v(0)%nis, surf_usm_v(0)%nis,                     &
     2716                     surf_def_v(1)%nis, surf_lsm_v(1)%nis, surf_usm_v(1)%nis,                     &
     2717                     surf_def_v(2)%nis, surf_lsm_v(2)%nis, surf_usm_v(2)%nis,                     &
     2718                     surf_def_v(3)%nis, surf_lsm_v(3)%nis, surf_usm_v(3)%nis, n_out )
    28772719
    28782720          CASE ( 'qrs' )
    2879              CALL surface_data_output_sum_up( surf_def_h(0)%qrs, surf_def_h(1)%qrs,                &
    2880                                               surf_lsm_h%qrs, surf_usm_h%qrs, surf_def_v(0)%qrs,   &
    2881                                               surf_lsm_v(0)%qrs, surf_usm_v(0)%qrs,                &
    2882                                               surf_def_v(1)%qrs, surf_lsm_v(1)%qrs,                &
    2883                                               surf_usm_v(1)%qrs, surf_def_v(2)%qrs,                &
    2884                                               surf_lsm_v(2)%qrs, surf_usm_v(2)%qrs,                &
    2885                                               surf_def_v(3)%qrs, surf_lsm_v(3)%qrs,                &
    2886                                               surf_usm_v(3)%qrs, n_out )
     2721             CALL surface_data_output_sum_up(                                                     &
     2722                     surf_def_h(0)%qrs, surf_lsm_h(0)%qrs, surf_usm_h(0)%qrs,                     &
     2723                     surf_def_h(1)%qrs, surf_lsm_h(1)%qrs, surf_usm_h(1)%qrs,                     &
     2724                     surf_def_v(0)%qrs, surf_lsm_v(0)%qrs, surf_usm_v(0)%qrs,                     &
     2725                     surf_def_v(1)%qrs, surf_lsm_v(1)%qrs, surf_usm_v(1)%qrs,                     &
     2726                     surf_def_v(2)%qrs, surf_lsm_v(2)%qrs, surf_usm_v(2)%qrs,                     &
     2727                     surf_def_v(3)%qrs, surf_lsm_v(3)%qrs, surf_usm_v(3)%qrs, n_out )
    28872728
    28882729          CASE ( 'nrs' )
    2889              CALL surface_data_output_sum_up( surf_def_h(0)%nrs, surf_def_h(1)%nrs,                &
    2890                                               surf_lsm_h%nrs, surf_usm_h%nrs, surf_def_v(0)%nrs,   &
    2891                                               surf_lsm_v(0)%nrs, surf_usm_v(0)%nrs,                &
    2892                                               surf_def_v(1)%nrs, surf_lsm_v(1)%nrs,                &
    2893                                               surf_usm_v(1)%nrs, surf_def_v(2)%nrs,                &
    2894                                               surf_lsm_v(2)%nrs, surf_usm_v(2)%nrs,                &
    2895                                               surf_def_v(3)%nrs, surf_lsm_v(3)%nrs,                &
    2896                                               surf_usm_v(3)%nrs, n_out )
     2730             CALL surface_data_output_sum_up(                                                     &
     2731                     surf_def_h(0)%nrs, surf_lsm_h(0)%nrs, surf_usm_h(0)%nrs,                     &
     2732                     surf_def_h(1)%nrs, surf_lsm_h(1)%nrs, surf_usm_h(1)%nrs,                     &
     2733                     surf_def_v(0)%nrs, surf_lsm_v(0)%nrs, surf_usm_v(0)%nrs,                     &
     2734                     surf_def_v(1)%nrs, surf_lsm_v(1)%nrs, surf_usm_v(1)%nrs,                     &
     2735                     surf_def_v(2)%nrs, surf_lsm_v(2)%nrs, surf_usm_v(2)%nrs,                     &
     2736                     surf_def_v(3)%nrs, surf_lsm_v(3)%nrs, surf_usm_v(3)%nrs, n_out )
    28972737
    28982738          CASE ( 'ol' )
    2899              CALL surface_data_output_sum_up( surf_def_h(0)%ol, surf_def_h(1)%ol, surf_lsm_h%ol,   &
    2900                                               surf_usm_h%ol, surf_def_v(0)%ol, surf_lsm_v(0)%ol,   &
    2901                                               surf_usm_v(0)%ol, surf_def_v(1)%ol,                  &
    2902                                               surf_lsm_v(1)%ol, surf_usm_v(1)%ol,                  &
    2903                                               surf_def_v(2)%ol, surf_lsm_v(2)%ol,                  &
    2904                                               surf_usm_v(2)%ol, surf_def_v(3)%ol,                  &
    2905                                              surf_lsm_v(3)%ol, surf_usm_v(3)%ol, n_out )
     2739             CALL surface_data_output_sum_up(                                                     &
     2740                     surf_def_h(0)%ol, surf_lsm_h(0)%ol, surf_usm_h(0)%ol,                        &
     2741                     surf_def_h(1)%ol, surf_lsm_h(1)%ol, surf_usm_h(1)%ol,                        &
     2742                     surf_def_v(0)%ol, surf_lsm_v(0)%ol, surf_usm_v(0)%ol,                        &
     2743                     surf_def_v(1)%ol, surf_lsm_v(1)%ol, surf_usm_v(1)%ol,                        &
     2744                     surf_def_v(2)%ol, surf_lsm_v(2)%ol, surf_usm_v(2)%ol,                        &
     2745                     surf_def_v(3)%ol, surf_lsm_v(3)%ol, surf_usm_v(3)%ol, n_out )
    29062746
    29072747          CASE ( 'z0' )
    2908              CALL surface_data_output_sum_up( surf_def_h(0)%z0, surf_def_h(1)%z0, surf_lsm_h%z0,   &
    2909                                               surf_usm_h%z0, surf_def_v(0)%z0, surf_lsm_v(0)%z0,   &
    2910                                               surf_usm_v(0)%z0, surf_def_v(1)%z0,                  &
    2911                                               surf_lsm_v(1)%z0, surf_usm_v(1)%z0,                  &
    2912                                               surf_def_v(2)%z0, surf_lsm_v(2)%z0,                  &
    2913                                               surf_usm_v(2)%z0, surf_def_v(3)%z0,                  &
    2914                                              surf_lsm_v(3)%z0, surf_usm_v(3)%z0, n_out )
     2748             CALL surface_data_output_sum_up(                                                     &
     2749                     surf_def_h(0)%z0, surf_lsm_h(0)%z0, surf_usm_h(0)%z0,                        &
     2750                     surf_def_h(1)%z0, surf_lsm_h(1)%z0, surf_usm_h(1)%z0,                        &
     2751                     surf_def_v(0)%z0, surf_lsm_v(0)%z0, surf_usm_v(0)%z0,                        &
     2752                     surf_def_v(1)%z0, surf_lsm_v(1)%z0, surf_usm_v(1)%z0,                        &
     2753                     surf_def_v(2)%z0, surf_lsm_v(2)%z0, surf_usm_v(2)%z0,                        &
     2754                     surf_def_v(3)%z0, surf_lsm_v(3)%z0, surf_usm_v(3)%z0, n_out )
    29152755
    29162756          CASE ( 'z0h' )
    2917              CALL surface_data_output_sum_up( surf_def_h(0)%z0h, surf_def_h(1)%z0h,                &
    2918                                               surf_lsm_h%z0h, surf_usm_h%z0h, surf_def_v(0)%z0h,   &
    2919                                               surf_lsm_v(0)%z0h, surf_usm_v(0)%z0h,                &
    2920                                               surf_def_v(1)%z0h, surf_lsm_v(1)%z0h,                &
    2921                                               surf_usm_v(1)%z0h, surf_def_v(2)%z0h,                &
    2922                                               surf_lsm_v(2)%z0h, surf_usm_v(2)%z0h,                &
    2923                                               surf_def_v(3)%z0h, surf_lsm_v(3)%z0h,                &
    2924                                               surf_usm_v(3)%z0h, n_out )
     2757             CALL surface_data_output_sum_up(                                                     &
     2758                     surf_def_h(0)%z0h, surf_lsm_h(0)%z0h, surf_usm_h(0)%z0h,                     &
     2759                     surf_def_h(1)%z0h, surf_lsm_h(1)%z0h, surf_usm_h(1)%z0h,                     &
     2760                     surf_def_v(0)%z0h, surf_lsm_v(0)%z0h, surf_usm_v(0)%z0h,                     &
     2761                     surf_def_v(1)%z0h, surf_lsm_v(1)%z0h, surf_usm_v(1)%z0h,                     &
     2762                     surf_def_v(2)%z0h, surf_lsm_v(2)%z0h, surf_usm_v(2)%z0h,                     &
     2763                     surf_def_v(3)%z0h, surf_lsm_v(3)%z0h, surf_usm_v(3)%z0h, n_out )
    29252764
    29262765          CASE ( 'z0q' )
    2927              CALL surface_data_output_sum_up( surf_def_h(0)%z0q, surf_def_h(1)%z0q,                &
    2928                                               surf_lsm_h%z0q, surf_usm_h%z0q, surf_def_v(0)%z0q,   &
    2929                                               surf_lsm_v(0)%z0q, surf_usm_v(0)%z0q,                &
    2930                                               surf_def_v(1)%z0q, surf_lsm_v(1)%z0q,                &
    2931                                               surf_usm_v(1)%z0q, surf_def_v(2)%z0q,                &
    2932                                               surf_lsm_v(2)%z0q, surf_usm_v(2)%z0q,                &
    2933                                               surf_def_v(3)%z0q, surf_lsm_v(3)%z0q,                &
    2934                                               surf_usm_v(3)%z0q, n_out )
     2766             CALL surface_data_output_sum_up(                                                     &
     2767                     surf_def_h(0)%z0q, surf_lsm_h(0)%z0q, surf_usm_h(0)%z0q,                     &
     2768                     surf_def_h(1)%z0q, surf_lsm_h(1)%z0q, surf_usm_h(1)%z0q,                     &
     2769                     surf_def_v(0)%z0q, surf_lsm_v(0)%z0q, surf_usm_v(0)%z0q,                     &
     2770                     surf_def_v(1)%z0q, surf_lsm_v(1)%z0q, surf_usm_v(1)%z0q,                     &
     2771                     surf_def_v(2)%z0q, surf_lsm_v(2)%z0q, surf_usm_v(2)%z0q,                     &
     2772                     surf_def_v(3)%z0q, surf_lsm_v(3)%z0q, surf_usm_v(3)%z0q, n_out )
    29352773
    29362774          CASE ( 'theta1' )
    2937              CALL surface_data_output_sum_up( surf_def_h(0)%pt1, surf_def_h(1)%pt1,                &
    2938                                               surf_lsm_h%pt1, surf_usm_h%pt1, surf_def_v(0)%pt1,   &
    2939                                               surf_lsm_v(0)%pt1, surf_usm_v(0)%pt1,                &
    2940                                               surf_def_v(1)%pt1, surf_lsm_v(1)%pt1,                &
    2941                                               surf_usm_v(1)%pt1, surf_def_v(2)%pt1,                &
    2942                                               surf_lsm_v(2)%pt1, surf_usm_v(2)%pt1,                &
    2943                                               surf_def_v(3)%pt1, surf_lsm_v(3)%pt1,                &
    2944                                               surf_usm_v(3)%pt1, n_out )
     2775             CALL surface_data_output_sum_up(                                                     &
     2776                     surf_def_h(0)%pt1, surf_lsm_h(0)%pt1, surf_usm_h(0)%pt1,                     &
     2777                     surf_def_h(1)%pt1, surf_lsm_h(1)%pt1, surf_usm_h(1)%pt1,                     &
     2778                     surf_def_v(0)%pt1, surf_lsm_v(0)%pt1, surf_usm_v(0)%pt1,                     &
     2779                     surf_def_v(1)%pt1, surf_lsm_v(1)%pt1, surf_usm_v(1)%pt1,                     &
     2780                     surf_def_v(2)%pt1, surf_lsm_v(2)%pt1, surf_usm_v(2)%pt1,                     &
     2781                     surf_def_v(3)%pt1, surf_lsm_v(3)%pt1, surf_usm_v(3)%pt1, n_out )
    29452782
    29462783          CASE ( 'qv1' )
    2947              CALL surface_data_output_sum_up( surf_def_h(0)%qv1, surf_def_h(1)%qv1,                &
    2948                                               surf_lsm_h%qv1, surf_usm_h%qv1, surf_def_v(0)%qv1,   &
    2949                                               surf_lsm_v(0)%qv1, surf_usm_v(0)%qv1,                &
    2950                                               surf_def_v(1)%qv1, surf_lsm_v(1)%qv1,                &
    2951                                               surf_usm_v(1)%qv1, surf_def_v(2)%qv1,                &
    2952                                               surf_lsm_v(2)%qv1, surf_usm_v(2)%qv1,                &
    2953                                               surf_def_v(3)%qv1, surf_lsm_v(3)%qv1,                &
    2954                                               surf_usm_v(3)%qv1, n_out )
     2784             CALL surface_data_output_sum_up(                                                     &
     2785                     surf_def_h(0)%qv1, surf_lsm_h(0)%qv1, surf_usm_h(0)%qv1,                     &
     2786                     surf_def_h(1)%qv1, surf_lsm_h(1)%qv1, surf_usm_h(1)%qv1,                     &
     2787                     surf_def_v(0)%qv1, surf_lsm_v(0)%qv1, surf_usm_v(0)%qv1,                     &
     2788                     surf_def_v(1)%qv1, surf_lsm_v(1)%qv1, surf_usm_v(1)%qv1,                     &
     2789                     surf_def_v(2)%qv1, surf_lsm_v(2)%qv1, surf_usm_v(2)%qv1,                     &
     2790                     surf_def_v(3)%qv1, surf_lsm_v(3)%qv1, surf_usm_v(3)%qv1, n_out )
    29552791
    29562792          CASE ( 'thetav1' )
    2957              CALL surface_data_output_sum_up( surf_def_h(0)%vpt1, surf_def_h(1)%vpt1,              &
    2958                                               surf_lsm_h%vpt1, surf_usm_h%vpt1,                    &
    2959                                               surf_def_v(0)%vpt1, surf_lsm_v(0)%vpt1,              &
    2960                                               surf_usm_v(0)%vpt1, surf_def_v(1)%vpt1,              &
    2961                                               surf_lsm_v(1)%vpt1, surf_usm_v(1)%vpt1,              &
    2962                                               surf_def_v(2)%vpt1, surf_lsm_v(2)%vpt1,              &
    2963                                               surf_usm_v(2)%vpt1, surf_def_v(3)%vpt1,              &
    2964                                               surf_lsm_v(3)%vpt1, surf_usm_v(3)%vpt1, n_out )
     2793             CALL surface_data_output_sum_up(                                                     &
     2794                     surf_def_h(0)%vpt1, surf_lsm_h(0)%vpt1, surf_usm_h(0)%vpt1,                  &
     2795                     surf_def_h(1)%vpt1, surf_lsm_h(1)%vpt1, surf_usm_h(1)%vpt1,                  &
     2796                     surf_def_v(0)%vpt1, surf_lsm_v(0)%vpt1, surf_usm_v(0)%vpt1,                  &
     2797                     surf_def_v(1)%vpt1, surf_lsm_v(1)%vpt1, surf_usm_v(1)%vpt1,                  &
     2798                     surf_def_v(2)%vpt1, surf_lsm_v(2)%vpt1, surf_usm_v(2)%vpt1,                  &
     2799                     surf_def_v(3)%vpt1, surf_lsm_v(3)%vpt1, surf_usm_v(3)%vpt1, n_out )
    29652800
    29662801          CASE ( 'usws' )
    2967              CALL surface_data_output_sum_up( surf_def_h(0)%usws, surf_def_h(1)%usws,              &
    2968                                               surf_lsm_h%usws, surf_usm_h%usws,                    &
    2969                                               surf_def_v(0)%usws, surf_lsm_v(0)%usws,              &
    2970                                               surf_usm_v(0)%usws, surf_def_v(1)%usws,              &
    2971                                               surf_lsm_v(1)%usws, surf_usm_v(1)%usws,              &
    2972                                               surf_def_v(2)%usws, surf_lsm_v(2)%usws,              &
    2973                                               surf_usm_v(2)%usws, surf_def_v(3)%usws,              &
    2974                                               surf_lsm_v(3)%usws, surf_usm_v(3)%usws, n_out,       &
    2975                                               momentumflux_output_conversion )
     2802             CALL surface_data_output_sum_up(                                                     &
     2803                     surf_def_h(0)%usws, surf_lsm_h(0)%usws, surf_usm_h(0)%usws,                  &
     2804                     surf_def_h(1)%usws, surf_lsm_h(1)%usws, surf_usm_h(1)%usws,                  &
     2805                     surf_def_v(0)%usws, surf_lsm_v(0)%usws, surf_usm_v(0)%usws,                  &
     2806                     surf_def_v(1)%usws, surf_lsm_v(1)%usws, surf_usm_v(1)%usws,                  &
     2807                     surf_def_v(2)%usws, surf_lsm_v(2)%usws, surf_usm_v(2)%usws,                  &
     2808                     surf_def_v(3)%usws, surf_lsm_v(3)%usws, surf_usm_v(3)%usws, n_out,           &
     2809                     momentumflux_output_conversion )
    29762810
    29772811          CASE ( 'vsws' )
    2978              CALL surface_data_output_sum_up( surf_def_h(0)%vsws, surf_def_h(1)%vsws,              &
    2979                                               surf_lsm_h%vsws, surf_usm_h%vsws,                    &
    2980                                               surf_def_v(0)%vsws, surf_lsm_v(0)%vsws,              &
    2981                                               surf_usm_v(0)%vsws, surf_def_v(1)%vsws,              &
    2982                                               surf_lsm_v(1)%vsws, surf_usm_v(1)%vsws,              &
    2983                                               surf_def_v(2)%vsws, surf_lsm_v(2)%vsws,              &
    2984                                               surf_usm_v(2)%vsws, surf_def_v(3)%vsws,              &
    2985                                               surf_lsm_v(3)%vsws, surf_usm_v(3)%vsws, n_out,       &
    2986                                               momentumflux_output_conversion )
     2812             CALL surface_data_output_sum_up(                                                     &
     2813                     surf_def_h(0)%vsws, surf_lsm_h(0)%vsws, surf_usm_h(0)%vsws,                  &
     2814                     surf_def_h(1)%vsws, surf_lsm_h(1)%vsws, surf_usm_h(1)%vsws,                  &
     2815                     surf_def_v(0)%vsws, surf_lsm_v(0)%vsws, surf_usm_v(0)%vsws,                  &
     2816                     surf_def_v(1)%vsws, surf_lsm_v(1)%vsws, surf_usm_v(1)%vsws,                  &
     2817                     surf_def_v(2)%vsws, surf_lsm_v(2)%vsws, surf_usm_v(2)%vsws,                  &
     2818                     surf_def_v(3)%vsws, surf_lsm_v(3)%vsws, surf_usm_v(3)%vsws, n_out,           &
     2819                     momentumflux_output_conversion )
    29872820
    29882821          CASE ( 'shf' )
    2989              CALL surface_data_output_sum_up( surf_def_h(0)%shf, surf_def_h(1)%shf,                &
    2990                                               surf_lsm_h%shf, surf_usm_h%shf, surf_def_v(0)%shf,   &
    2991                                               surf_lsm_v(0)%shf, surf_usm_v(0)%shf,                &
    2992                                               surf_def_v(1)%shf, surf_lsm_v(1)%shf,                &
    2993                                               surf_usm_v(1)%shf, surf_def_v(2)%shf,                &
    2994                                               surf_lsm_v(2)%shf, surf_usm_v(2)%shf,                &
    2995                                               surf_def_v(3)%shf, surf_lsm_v(3)%shf,                &
    2996                                               surf_usm_v(3)%shf, n_out, heatflux_output_conversion )
     2822             CALL surface_data_output_sum_up(                                                     &
     2823                     surf_def_h(0)%shf, surf_lsm_h(0)%shf, surf_usm_h(0)%shf,                     &
     2824                     surf_def_h(1)%shf, surf_lsm_h(1)%shf, surf_usm_h(1)%shf,                     &
     2825                     surf_def_v(0)%shf, surf_lsm_v(0)%shf, surf_usm_v(0)%shf,                     &
     2826                     surf_def_v(1)%shf, surf_lsm_v(1)%shf, surf_usm_v(1)%shf,                     &
     2827                     surf_def_v(2)%shf, surf_lsm_v(2)%shf, surf_usm_v(2)%shf,                     &
     2828                     surf_def_v(3)%shf, surf_lsm_v(3)%shf, surf_usm_v(3)%shf, n_out,              &
     2829                     heatflux_output_conversion )
    29972830
    29982831          CASE ( 'qsws' )
    2999              CALL surface_data_output_sum_up( surf_def_h(0)%qsws, surf_def_h(1)%qsws,              &
    3000                                               surf_lsm_h%qsws, surf_usm_h%qsws,                    &
    3001                                               surf_def_v(0)%qsws, surf_lsm_v(0)%qsws,              &
    3002                                               surf_usm_v(0)%qsws, surf_def_v(1)%qsws,              &
    3003                                               surf_lsm_v(1)%qsws, surf_usm_v(1)%qsws,              &
    3004                                               surf_def_v(2)%qsws, surf_lsm_v(2)%qsws,              &
    3005                                               surf_usm_v(2)%qsws, surf_def_v(3)%qsws,              &
    3006                                               surf_lsm_v(3)%qsws, surf_usm_v(3)%qsws, n_out,       &
    3007                                               waterflux_output_conversion )
     2832             CALL surface_data_output_sum_up(                                                     &
     2833                     surf_def_h(0)%qsws, surf_lsm_h(0)%qsws, surf_usm_h(0)%qsws,                  &
     2834                     surf_def_h(1)%qsws, surf_lsm_h(1)%qsws, surf_usm_h(1)%qsws,                  &
     2835                     surf_def_v(0)%qsws, surf_lsm_v(0)%qsws, surf_usm_v(0)%qsws,                  &
     2836                     surf_def_v(1)%qsws, surf_lsm_v(1)%qsws, surf_usm_v(1)%qsws,                  &
     2837                     surf_def_v(2)%qsws, surf_lsm_v(2)%qsws, surf_usm_v(2)%qsws,                  &
     2838                     surf_def_v(3)%qsws, surf_lsm_v(3)%qsws, surf_usm_v(3)%qsws, n_out,           &
     2839                     waterflux_output_conversion )
    30082840
    30092841          CASE ( 'ssws' )
    3010              CALL surface_data_output_sum_up( surf_def_h(0)%ssws, surf_def_h(1)%ssws,              &
    3011                                               surf_lsm_h%ssws, surf_usm_h%ssws,                    &
    3012                                               surf_def_v(0)%ssws, surf_lsm_v(0)%ssws,              &
    3013                                               surf_usm_v(0)%ssws, surf_def_v(1)%ssws,              &
    3014                                               surf_lsm_v(1)%ssws, surf_usm_v(1)%ssws,              &
    3015                                               surf_def_v(2)%ssws, surf_lsm_v(2)%ssws,              &
    3016                                               surf_usm_v(2)%ssws, surf_def_v(3)%ssws,              &
    3017                                               surf_lsm_v(3)%ssws, surf_usm_v(3)%ssws, n_out )
     2842             CALL surface_data_output_sum_up(                                                     &
     2843                     surf_def_h(0)%ssws, surf_lsm_h(0)%ssws, surf_usm_h(0)%ssws,                  &
     2844                     surf_def_h(1)%ssws, surf_lsm_h(1)%ssws, surf_usm_h(1)%ssws,                  &
     2845                     surf_def_v(0)%ssws, surf_lsm_v(0)%ssws, surf_usm_v(0)%ssws,                  &
     2846                     surf_def_v(1)%ssws, surf_lsm_v(1)%ssws, surf_usm_v(1)%ssws,                  &
     2847                     surf_def_v(2)%ssws, surf_lsm_v(2)%ssws, surf_usm_v(2)%ssws,                  &
     2848                     surf_def_v(3)%ssws, surf_lsm_v(3)%ssws, surf_usm_v(3)%ssws, n_out )
    30182849
    30192850          CASE ( 'qcsws' )
    3020              CALL surface_data_output_sum_up( surf_def_h(0)%qcsws, surf_def_h(1)%qcsws,            &
    3021                                               surf_lsm_h%qcsws, surf_usm_h%qcsws,                  &
    3022                                               surf_def_v(0)%qcsws, surf_lsm_v(0)%qcsws,            &
    3023                                               surf_usm_v(0)%qcsws, surf_def_v(1)%qcsws,            &
    3024                                               surf_lsm_v(1)%qcsws, surf_usm_v(1)%qcsws,            &
    3025                                               surf_def_v(2)%qcsws, surf_lsm_v(2)%qcsws,            &
    3026                                               surf_usm_v(2)%qcsws, surf_def_v(3)%qcsws,            &
    3027                                               surf_lsm_v(3)%qcsws, surf_usm_v(3)%qcsws, n_out )
     2851             CALL surface_data_output_sum_up(                                                     &
     2852                     surf_def_h(0)%qcsws, surf_lsm_h(0)%qcsws, surf_usm_h(0)%qcsws,               &
     2853                     surf_def_h(1)%qcsws, surf_lsm_h(1)%qcsws, surf_usm_h(1)%qcsws,               &
     2854                     surf_def_v(0)%qcsws, surf_lsm_v(0)%qcsws, surf_usm_v(0)%qcsws,               &
     2855                     surf_def_v(1)%qcsws, surf_lsm_v(1)%qcsws, surf_usm_v(1)%qcsws,               &
     2856                     surf_def_v(2)%qcsws, surf_lsm_v(2)%qcsws, surf_usm_v(2)%qcsws,               &
     2857                     surf_def_v(3)%qcsws, surf_lsm_v(3)%qcsws, surf_usm_v(3)%qcsws, n_out )
    30282858
    30292859          CASE ( 'ncsws' )
    3030              CALL surface_data_output_sum_up( surf_def_h(0)%ncsws, surf_def_h(1)%ncsws,            &
    3031                                               surf_lsm_h%ncsws, surf_usm_h%ncsws,                  &
    3032                                               surf_def_v(0)%ncsws, surf_lsm_v(0)%ncsws,            &
    3033                                               surf_usm_v(0)%ncsws, surf_def_v(1)%ncsws,            &
    3034                                               surf_lsm_v(1)%ncsws, surf_usm_v(1)%ncsws,            &
    3035                                               surf_def_v(2)%ncsws, surf_lsm_v(2)%ncsws,            &
    3036                                               surf_usm_v(2)%ncsws, surf_def_v(3)%ncsws,            &
    3037                                               surf_lsm_v(3)%ncsws, surf_usm_v(3)%ncsws, n_out )
     2860             CALL surface_data_output_sum_up(                                                     &
     2861                     surf_def_h(0)%ncsws, surf_lsm_h(0)%ncsws, surf_usm_h(0)%ncsws,               &
     2862                     surf_def_h(1)%ncsws, surf_lsm_h(1)%ncsws, surf_usm_h(1)%ncsws,               &
     2863                     surf_def_v(0)%ncsws, surf_lsm_v(0)%ncsws, surf_usm_v(0)%ncsws,               &
     2864                     surf_def_v(1)%ncsws, surf_lsm_v(1)%ncsws, surf_usm_v(1)%ncsws,               &
     2865                     surf_def_v(2)%ncsws, surf_lsm_v(2)%ncsws, surf_usm_v(2)%ncsws,               &
     2866                     surf_def_v(3)%ncsws, surf_lsm_v(3)%ncsws, surf_usm_v(3)%ncsws, n_out )
    30382867
    30392868          CASE ( 'qisws' )
    3040              CALL surface_data_output_sum_up( surf_def_h(0)%qisws, surf_def_h(1)%qisws,            &
    3041                                               surf_lsm_h%qisws, surf_usm_h%qisws,                  &
    3042                                               surf_def_v(0)%qisws, surf_lsm_v(0)%qisws,            &
    3043                                               surf_usm_v(0)%qisws, surf_def_v(1)%qisws,            &
    3044                                               surf_lsm_v(1)%qisws, surf_usm_v(1)%qisws,            &
    3045                                               surf_def_v(2)%qisws, surf_lsm_v(2)%qisws,            &
    3046                                               surf_usm_v(2)%qisws, surf_def_v(3)%qisws,            &
    3047                                               surf_lsm_v(3)%qisws, surf_usm_v(3)%qisws, n_out )
     2869             CALL surface_data_output_sum_up(                                                     &
     2870                     surf_def_h(0)%qisws, surf_lsm_h(0)%qisws, surf_usm_h(0)%qisws,               &
     2871                     surf_def_h(1)%qisws, surf_lsm_h(1)%qisws, surf_usm_h(1)%qisws,               &
     2872                     surf_def_v(0)%qisws, surf_lsm_v(0)%qisws, surf_usm_v(0)%qisws,               &
     2873                     surf_def_v(1)%qisws, surf_lsm_v(1)%qisws, surf_usm_v(1)%qisws,               &
     2874                     surf_def_v(2)%qisws, surf_lsm_v(2)%qisws, surf_usm_v(2)%qisws,               &
     2875                     surf_def_v(3)%qisws, surf_lsm_v(3)%qisws, surf_usm_v(3)%qisws, n_out )
    30482876
    30492877          CASE ( 'nisws' )
    3050              CALL surface_data_output_sum_up( surf_def_h(0)%nisws, surf_def_h(1)%nisws,            &
    3051                                               surf_lsm_h%nisws, surf_usm_h%nisws,                  &
    3052                                               surf_def_v(0)%nisws, surf_lsm_v(0)%nisws,            &
    3053                                               surf_usm_v(0)%nisws, surf_def_v(1)%nisws,            &
    3054                                               surf_lsm_v(1)%nisws, surf_usm_v(1)%nisws,            &
    3055                                               surf_def_v(2)%nisws, surf_lsm_v(2)%nisws,            &
    3056                                               surf_usm_v(2)%nisws, surf_def_v(3)%nisws,            &
    3057                                               surf_lsm_v(3)%nisws, surf_usm_v(3)%nisws, n_out )
     2878             CALL surface_data_output_sum_up(                                                     &
     2879                     surf_def_h(0)%nisws, surf_lsm_h(0)%nisws, surf_usm_h(0)%nisws,               &
     2880                     surf_def_h(1)%nisws, surf_lsm_h(1)%nisws, surf_usm_h(1)%nisws,               &
     2881                     surf_def_v(0)%nisws, surf_lsm_v(0)%nisws, surf_usm_v(0)%nisws,               &
     2882                     surf_def_v(1)%nisws, surf_lsm_v(1)%nisws, surf_usm_v(1)%nisws,               &
     2883                     surf_def_v(2)%nisws, surf_lsm_v(2)%nisws, surf_usm_v(2)%nisws,               &
     2884                     surf_def_v(3)%nisws, surf_lsm_v(3)%nisws, surf_usm_v(3)%nisws, n_out )
    30582885
    30592886          CASE ( 'qrsws' )
    3060              CALL surface_data_output_sum_up( surf_def_h(0)%qrsws, surf_def_h(1)%qrsws,            &
    3061                                               surf_lsm_h%qrsws, surf_usm_h%qrsws,                  &
    3062                                               surf_def_v(0)%qrsws, surf_lsm_v(0)%qrsws,            &
    3063                                               surf_usm_v(0)%qrsws, surf_def_v(1)%qrsws,            &
    3064                                               surf_lsm_v(1)%qrsws, surf_usm_v(1)%qrsws,            &
    3065                                               surf_def_v(2)%qrsws, surf_lsm_v(2)%qrsws,            &
    3066                                               surf_usm_v(2)%qrsws, surf_def_v(3)%qrsws,            &
    3067                                               surf_lsm_v(3)%qrsws, surf_usm_v(3)%qrsws, n_out )
     2887             CALL surface_data_output_sum_up(                                                     &
     2888                     surf_def_h(0)%qrsws, surf_lsm_h(0)%qrsws, surf_usm_h(0)%qrsws,               &
     2889                     surf_def_h(1)%qrsws, surf_lsm_h(1)%qrsws, surf_usm_h(1)%qrsws,               &
     2890                     surf_def_v(0)%qrsws, surf_lsm_v(0)%qrsws, surf_usm_v(0)%qrsws,               &
     2891                     surf_def_v(1)%qrsws, surf_lsm_v(1)%qrsws, surf_usm_v(1)%qrsws,               &
     2892                     surf_def_v(2)%qrsws, surf_lsm_v(2)%qrsws, surf_usm_v(2)%qrsws,               &
     2893                     surf_def_v(3)%qrsws, surf_lsm_v(3)%qrsws, surf_usm_v(3)%qrsws, n_out )
    30682894
    30692895          CASE ( 'nrsws' )
    3070              CALL surface_data_output_sum_up( surf_def_h(0)%nrsws, surf_def_h(1)%nrsws,            &
    3071                                               surf_lsm_h%nrsws, surf_usm_h%nrsws,                  &
    3072                                               surf_def_v(0)%nrsws, surf_lsm_v(0)%nrsws,            &
    3073                                               surf_usm_v(0)%nrsws, surf_def_v(1)%nrsws,            &
    3074                                               surf_lsm_v(1)%nrsws, surf_usm_v(1)%nrsws,            &
    3075                                               surf_def_v(2)%nrsws, surf_lsm_v(2)%nrsws,            &
    3076                                               surf_usm_v(2)%nrsws, surf_def_v(3)%nrsws,            &
    3077                                               surf_lsm_v(3)%nrsws, surf_usm_v(3)%nrsws, n_out )
     2896             CALL surface_data_output_sum_up(                                                     &
     2897                     surf_def_h(0)%nrsws, surf_lsm_h(0)%nrsws, surf_usm_h(0)%nrsws,               &
     2898                     surf_def_h(1)%nrsws, surf_lsm_h(1)%nrsws, surf_usm_h(1)%nrsws,               &
     2899                     surf_def_v(0)%nrsws, surf_lsm_v(0)%nrsws, surf_usm_v(0)%nrsws,               &
     2900                     surf_def_v(1)%nrsws, surf_lsm_v(1)%nrsws, surf_usm_v(1)%nrsws,               &
     2901                     surf_def_v(2)%nrsws, surf_lsm_v(2)%nrsws, surf_usm_v(2)%nrsws,               &
     2902                     surf_def_v(3)%nrsws, surf_lsm_v(3)%nrsws, surf_usm_v(3)%nrsws, n_out )
    30782903
    30792904          CASE ( 'sasws' )
    3080              CALL surface_data_output_sum_up( surf_def_h(0)%sasws, surf_def_h(1)%sasws,            &
    3081                                               surf_lsm_h%sasws, surf_usm_h%sasws,                  &
    3082                                               surf_def_v(0)%sasws, surf_lsm_v(0)%sasws,            &
    3083                                               surf_usm_v(0)%sasws, surf_def_v(1)%sasws,            &
    3084                                               surf_lsm_v(1)%sasws, surf_usm_v(1)%sasws,            &
    3085                                               surf_def_v(2)%sasws, surf_lsm_v(2)%sasws,            &
    3086                                               surf_usm_v(2)%sasws, surf_def_v(3)%sasws,            &
    3087                                               surf_lsm_v(3)%sasws, surf_usm_v(3)%sasws, n_out )
     2905             CALL surface_data_output_sum_up(                                                     &
     2906                     surf_def_h(0)%sasws, surf_lsm_h(0)%sasws, surf_usm_h(0)%sasws,               &
     2907                     surf_def_h(1)%sasws, surf_lsm_h(1)%sasws, surf_usm_h(1)%sasws,               &
     2908                     surf_def_v(0)%sasws, surf_lsm_v(0)%sasws, surf_usm_v(0)%sasws,               &
     2909                     surf_def_v(1)%sasws, surf_lsm_v(1)%sasws, surf_usm_v(1)%sasws,               &
     2910                     surf_def_v(2)%sasws, surf_lsm_v(2)%sasws, surf_usm_v(2)%sasws,               &
     2911                     surf_def_v(3)%sasws, surf_lsm_v(3)%sasws, surf_usm_v(3)%sasws, n_out )
    30882912
    30892913          CASE ( 'q_surface' )
    3090              CALL surface_data_output_sum_up( surf_def_h(0)%q_surface, surf_def_h(1)%q_surface,    &
    3091                                               surf_lsm_h%q_surface, surf_usm_h%q_surface,          &
    3092                                               surf_def_v(0)%q_surface, surf_lsm_v(0)%q_surface,    &
    3093                                               surf_usm_v(0)%q_surface, surf_def_v(1)%q_surface,    &
    3094                                               surf_lsm_v(1)%q_surface, surf_usm_v(1)%q_surface,    &
    3095                                               surf_def_v(2)%q_surface, surf_lsm_v(2)%q_surface,    &
    3096                                               surf_usm_v(2)%q_surface, surf_def_v(3)%q_surface,    &
    3097                                               surf_lsm_v(3)%q_surface, surf_usm_v(3)%q_surface,    &
    3098                                               n_out )
    3099 
     2914             CALL surface_data_output_sum_up(                                                    &
     2915                     surf_def_h(0)%q_surface, surf_lsm_h(0)%q_surface, surf_usm_h(0)%q_surface,  &
     2916                     surf_def_h(1)%q_surface, surf_lsm_h(1)%q_surface, surf_usm_h(1)%q_surface,  &
     2917                     surf_def_v(0)%q_surface, surf_lsm_v(0)%q_surface, surf_usm_v(0)%q_surface,  &
     2918                     surf_def_v(1)%q_surface, surf_lsm_v(1)%q_surface, surf_usm_v(1)%q_surface,  &
     2919                     surf_def_v(2)%q_surface, surf_lsm_v(2)%q_surface, surf_usm_v(2)%q_surface,  &
     2920                     surf_def_v(3)%q_surface, surf_lsm_v(3)%q_surface, surf_usm_v(3)%q_surface,  &
     2921                     n_out )
    31002922
    31012923          CASE ( 'theta_surface' )
    3102              CALL surface_data_output_sum_up( surf_def_h(0)%pt_surface, surf_def_h(1)%pt_surface,  &
    3103                                               surf_lsm_h%pt_surface, surf_usm_h%pt_surface,        &
    3104                                               surf_def_v(0)%pt_surface, surf_lsm_v(0)%pt_surface,  &
    3105                                               surf_usm_v(0)%pt_surface, surf_def_v(1)%pt_surface,  &
    3106                                               surf_lsm_v(1)%pt_surface, surf_usm_v(1)%pt_surface,  &
    3107                                               surf_def_v(2)%pt_surface, surf_lsm_v(2)%pt_surface,  &
    3108                                               surf_usm_v(2)%pt_surface, surf_def_v(3)%pt_surface,  &
    3109                                               surf_lsm_v(3)%pt_surface, surf_usm_v(3)%pt_surface,  &
    3110                                               n_out )
     2924             CALL surface_data_output_sum_up(                                                    &
     2925                  surf_def_h(0)%pt_surface, surf_lsm_h(0)%pt_surface, surf_usm_h(0)%pt_surface,  &
     2926                  surf_def_h(1)%pt_surface, surf_lsm_h(1)%pt_surface, surf_usm_h(1)%pt_surface,  &
     2927                  surf_def_v(0)%pt_surface, surf_lsm_v(0)%pt_surface, surf_usm_v(0)%pt_surface,  &
     2928                  surf_def_v(1)%pt_surface, surf_lsm_v(1)%pt_surface, surf_usm_v(1)%pt_surface,  &
     2929                  surf_def_v(2)%pt_surface, surf_lsm_v(2)%pt_surface, surf_usm_v(2)%pt_surface,  &
     2930                  surf_def_v(3)%pt_surface, surf_lsm_v(3)%pt_surface, surf_usm_v(3)%pt_surface,  &
     2931                  n_out )
    31112932
    31122933          CASE ( 'thetav_surface' )
    3113              CALL surface_data_output_sum_up( surf_def_h(0)%vpt_surface,                           &
    3114                                               surf_def_h(1)%vpt_surface, surf_lsm_h%vpt_surface,   &
    3115                                               surf_usm_h%vpt_surface, surf_def_v(0)%vpt_surface,   &
    3116                                               surf_lsm_v(0)%vpt_surface,                           &
    3117                                               surf_usm_v(0)%vpt_surface,                           &
    3118                                               surf_def_v(1)%vpt_surface,                           &
    3119                                               surf_lsm_v(1)%vpt_surface,                           &
    3120                                               surf_usm_v(1)%vpt_surface,                           &
    3121                                               surf_def_v(2)%vpt_surface,                           &
    3122                                               surf_lsm_v(2)%vpt_surface,                           &
    3123                                               surf_usm_v(2)%vpt_surface,                           &
    3124                                               surf_def_v(3)%vpt_surface,                           &
    3125                                               surf_lsm_v(3)%vpt_surface,                           &
    3126                                               surf_usm_v(3)%vpt_surface, n_out )
     2934             CALL surface_data_output_sum_up(                                                    &
     2935                surf_def_h(0)%vpt_surface, surf_lsm_h(0)%vpt_surface, surf_usm_h(0)%vpt_surface, &
     2936                surf_def_h(1)%vpt_surface, surf_lsm_h(1)%vpt_surface, surf_usm_h(1)%vpt_surface, &
     2937                surf_def_v(0)%vpt_surface, surf_lsm_v(0)%vpt_surface, surf_usm_v(0)%vpt_surface, &
     2938                surf_def_v(1)%vpt_surface, surf_lsm_v(1)%vpt_surface, surf_usm_v(1)%vpt_surface, &
     2939                surf_def_v(2)%vpt_surface, surf_lsm_v(2)%vpt_surface, surf_usm_v(2)%vpt_surface, &
     2940                surf_def_v(3)%vpt_surface, surf_lsm_v(3)%vpt_surface, surf_usm_v(3)%pt_surface,  &
     2941                n_out )
    31272942
    31282943          CASE ( 'rad_net' )
    3129              CALL surface_data_output_sum_up( surf_def_h(0)%rad_net, surf_def_h(1)%rad_net,        &
    3130                                               surf_lsm_h%rad_net, surf_usm_h%rad_net,              &
    3131                                               surf_def_v(0)%rad_net, surf_lsm_v(0)%rad_net,        &
    3132                                               surf_usm_v(0)%rad_net, surf_def_v(1)%rad_net,        &
    3133                                              surf_lsm_v(1)%rad_net, surf_usm_v(1)%rad_net,        &
    3134                                               surf_def_v(2)%rad_net, surf_lsm_v(2)%rad_net,        &
    3135                                               surf_usm_v(2)%rad_net, surf_def_v(3)%rad_net,        &
    3136                                               surf_lsm_v(3)%rad_net, surf_usm_v(3)%rad_net, n_out )
     2944             CALL surface_data_output_sum_up(                                                    &
     2945                     surf_def_h(0)%rad_net, surf_lsm_h(0)%rad_net, surf_usm_h(0)%rad_net,        &
     2946                     surf_def_h(1)%rad_net, surf_lsm_h(1)%rad_net, surf_usm_h(1)%rad_net,        &
     2947                     surf_def_v(0)%rad_net, surf_lsm_v(0)%rad_net, surf_usm_v(0)%rad_net,        &
     2948                     surf_def_v(1)%rad_net, surf_lsm_v(1)%rad_net, surf_usm_v(1)%rad_net,        &
     2949                     surf_def_v(2)%rad_net, surf_lsm_v(2)%rad_net, surf_usm_v(2)%rad_net,        &
     2950                     surf_def_v(3)%rad_net, surf_lsm_v(3)%rad_net, surf_usm_v(3)%rad_net,        &
     2951                     n_out )
    31372952
    31382953          CASE ( 'rad_lw_in' )
    3139              CALL surface_data_output_sum_up( surf_def_h(0)%rad_lw_in, surf_def_h(1)%rad_lw_in,    &
    3140                                               surf_lsm_h%rad_lw_in, surf_usm_h%rad_lw_in,          &
    3141                                               surf_def_v(0)%rad_lw_in, surf_lsm_v(0)%rad_lw_in,    &
    3142                                               surf_usm_v(0)%rad_lw_in, surf_def_v(1)%rad_lw_in,    &
    3143                                               surf_lsm_v(1)%rad_lw_in, surf_usm_v(1)%rad_lw_in,    &
    3144                                               surf_def_v(2)%rad_lw_in, surf_lsm_v(2)%rad_lw_in,    &
    3145                                               surf_usm_v(2)%rad_lw_in, surf_def_v(3)%rad_lw_in,    &
    3146                                               surf_lsm_v(3)%rad_lw_in, surf_usm_v(3)%rad_lw_in,    &
    3147                                               n_out )
     2954             CALL surface_data_output_sum_up(                                                    &
     2955                  surf_def_h(0)%rad_lw_in, surf_lsm_h(0)%rad_lw_in, surf_usm_h(0)%rad_lw_in,     &
     2956                  surf_def_h(1)%rad_lw_in, surf_lsm_h(1)%rad_lw_in, surf_usm_h(1)%rad_lw_in,     &
     2957                  surf_def_v(0)%rad_lw_in, surf_lsm_v(0)%rad_lw_in, surf_usm_v(0)%rad_lw_in,     &
     2958                  surf_def_v(1)%rad_lw_in, surf_lsm_v(1)%rad_lw_in, surf_usm_v(1)%rad_lw_in,     &
     2959                  surf_def_v(2)%rad_lw_in, surf_lsm_v(2)%rad_lw_in, surf_usm_v(2)%rad_lw_in,     &
     2960                  surf_def_v(3)%rad_lw_in, surf_lsm_v(3)%rad_lw_in, surf_usm_v(3)%rad_lw_in,     &
     2961                  n_out )
    31482962
    31492963          CASE ( 'rad_lw_out' )
    3150              CALL surface_data_output_sum_up( surf_def_h(0)%rad_lw_out, surf_def_h(1)%rad_lw_out,  &
    3151                                               surf_lsm_h%rad_lw_out, surf_usm_h%rad_lw_out,        &
    3152                                               surf_def_v(0)%rad_lw_out, surf_lsm_v(0)%rad_lw_out,  &
    3153                                               surf_usm_v(0)%rad_lw_out, surf_def_v(1)%rad_lw_out,  &
    3154                                               surf_lsm_v(1)%rad_lw_out, surf_usm_v(1)%rad_lw_out,  &
    3155                                               surf_def_v(2)%rad_lw_out, surf_lsm_v(2)%rad_lw_out,  &
    3156                                               surf_usm_v(2)%rad_lw_out, surf_def_v(3)%rad_lw_out,  &
    3157                                               surf_lsm_v(3)%rad_lw_out, surf_usm_v(3)%rad_lw_out,  &
    3158                                               n_out )
     2964             CALL surface_data_output_sum_up(                                                    &
     2965                  surf_def_h(0)%rad_lw_out, surf_lsm_h(0)%rad_lw_out, surf_usm_h(0)%rad_lw_out,  &
     2966                  surf_def_h(1)%rad_lw_out, surf_lsm_h(1)%rad_lw_out, surf_usm_h(1)%rad_lw_out,  &
     2967                  surf_def_v(0)%rad_lw_out, surf_lsm_v(0)%rad_lw_out, surf_usm_v(0)%rad_lw_out,  &
     2968                  surf_def_v(1)%rad_lw_out, surf_lsm_v(1)%rad_lw_out, surf_usm_v(1)%rad_lw_out,  &
     2969                  surf_def_v(2)%rad_lw_out, surf_lsm_v(2)%rad_lw_out, surf_usm_v(2)%rad_lw_out,  &
     2970                  surf_def_v(3)%rad_lw_out, surf_lsm_v(3)%rad_lw_out, surf_usm_v(3)%rad_lw_out,  &
     2971                  n_out )
    31592972
    31602973          CASE ( 'rad_sw_in' )
    3161              CALL surface_data_output_sum_up( surf_def_h(0)%rad_sw_in, surf_def_h(1)%rad_sw_in,    &
    3162                                               surf_lsm_h%rad_sw_in, surf_usm_h%rad_sw_in,          &
    3163                                               surf_def_v(0)%rad_sw_in, surf_lsm_v(0)%rad_sw_in,    &
    3164                                               surf_usm_v(0)%rad_sw_in, surf_def_v(1)%rad_sw_in,    &
    3165                                               surf_lsm_v(1)%rad_sw_in, surf_usm_v(1)%rad_sw_in,    &
    3166                                               surf_def_v(2)%rad_sw_in, surf_lsm_v(2)%rad_sw_in,    &
    3167                                               surf_usm_v(2)%rad_sw_in, surf_def_v(3)%rad_sw_in,    &
    3168                                               surf_lsm_v(3)%rad_sw_in, surf_usm_v(3)%rad_sw_in,    &
    3169                                               n_out )
     2974             CALL surface_data_output_sum_up(                                                    &
     2975                  surf_def_h(0)%rad_sw_in, surf_lsm_h(0)%rad_sw_in, surf_usm_h(0)%rad_sw_in,     &
     2976                  surf_def_h(1)%rad_sw_in, surf_lsm_h(1)%rad_sw_in, surf_usm_h(1)%rad_sw_in,     &
     2977                  surf_def_v(0)%rad_sw_in, surf_lsm_v(0)%rad_sw_in, surf_usm_v(0)%rad_sw_in,     &
     2978                  surf_def_v(1)%rad_sw_in, surf_lsm_v(1)%rad_sw_in, surf_usm_v(1)%rad_sw_in,     &
     2979                  surf_def_v(2)%rad_sw_in, surf_lsm_v(2)%rad_sw_in, surf_usm_v(2)%rad_sw_in,     &
     2980                  surf_def_v(3)%rad_sw_in, surf_lsm_v(3)%rad_sw_in, surf_usm_v(3)%rad_sw_in,     &
     2981                  n_out )
    31702982
    31712983          CASE ( 'rad_sw_out' )
    3172              CALL surface_data_output_sum_up( surf_def_h(0)%rad_sw_out, surf_def_h(1)%rad_sw_out,  &
    3173                                               surf_lsm_h%rad_sw_out, surf_usm_h%rad_sw_out,        &
    3174                                               surf_def_v(0)%rad_sw_out, surf_lsm_v(0)%rad_sw_out,  &
    3175                                               surf_usm_v(0)%rad_sw_out, surf_def_v(1)%rad_sw_out,  &
    3176                                               surf_lsm_v(1)%rad_sw_out, surf_usm_v(1)%rad_sw_out,  &
    3177                                               surf_def_v(2)%rad_sw_out, surf_lsm_v(2)%rad_sw_out,  &
    3178                                               surf_usm_v(2)%rad_sw_out, surf_def_v(3)%rad_sw_out,  &
    3179                                               surf_lsm_v(3)%rad_sw_out, surf_usm_v(3)%rad_sw_out,  &
    3180                                               n_out )
     2984             CALL surface_data_output_sum_up(                                                    &
     2985                  surf_def_h(0)%rad_sw_out, surf_lsm_h(0)%rad_sw_out, surf_usm_h(0)%rad_sw_out,  &
     2986                  surf_def_h(1)%rad_sw_out, surf_lsm_h(1)%rad_sw_out, surf_usm_h(1)%rad_sw_out,  &
     2987                  surf_def_v(0)%rad_sw_out, surf_lsm_v(0)%rad_sw_out, surf_usm_v(0)%rad_sw_out,  &
     2988                  surf_def_v(1)%rad_sw_out, surf_lsm_v(1)%rad_sw_out, surf_usm_v(1)%rad_sw_out,  &
     2989                  surf_def_v(2)%rad_sw_out, surf_lsm_v(2)%rad_sw_out, surf_usm_v(2)%rad_sw_out,  &
     2990                  surf_def_v(3)%rad_sw_out, surf_lsm_v(3)%rad_sw_out, surf_usm_v(3)%rad_sw_out,  &
     2991                  n_out )
    31812992
    31822993          CASE ( 'ghf' )
     
    31842995!--          Sum up ground / wall heat flux. Note, for urban surfaces the wall heat flux is
    31852996!--          aggregated from the different green, window and wall tiles.
    3186              DO  m = 1, surf_usm_h%ns
    3187                 surf_usm_h%ghf(m) = surf_usm_h%frac(m,ind_veg_wall) * surf_usm_h%wghf_eb(m) +      &
    3188                                     surf_usm_h%frac(m,ind_pav_green) *                             &
    3189                                     surf_usm_h%wghf_eb_green(m) + surf_usm_h%frac(m,ind_wat_win) * &
    3190                                     surf_usm_h%wghf_eb_window(m)
     2997             DO  l = 0, 1
     2998                DO  m = 1, surf_usm_h(l)%ns
     2999                   surf_usm_h(l)%ghf(m) = surf_usm_h(l)%frac(m,ind_veg_wall) *                    &
     3000                                       surf_usm_h(l)%wghf_eb(m) +                                 &
     3001                                       surf_usm_h(l)%frac(m,ind_pav_green) *                      &
     3002                                       surf_usm_h(l)%wghf_eb_green(m) +                           &
     3003                                       surf_usm_h(l)%frac(m,ind_wat_win) *                        &
     3004                                       surf_usm_h(l)%wghf_eb_window(m)
     3005                ENDDO
    31913006             ENDDO
    31923007             DO  l = 0, 3
     
    32013016             ENDDO
    32023017
    3203              CALL surface_data_output_sum_up( surf_def_h(0)%ghf, surf_def_h(1)%ghf,                &
    3204                                               surf_lsm_h%ghf, surf_usm_h%ghf, surf_def_v(0)%ghf,   &
    3205                                               surf_lsm_v(0)%ghf, surf_usm_v(0)%ghf,                &
    3206                                               surf_def_v(1)%ghf, surf_lsm_v(1)%ghf,                &
    3207                                               surf_usm_v(1)%ghf, surf_def_v(2)%ghf,                &
    3208                                               surf_lsm_v(2)%ghf, surf_usm_v(2)%ghf,                &
    3209                                               surf_def_v(3)%ghf, surf_lsm_v(3)%ghf,                &
    3210                                               surf_usm_v(3)%ghf, n_out )
     3018             CALL surface_data_output_sum_up(                                                     &
     3019                     surf_def_h(0)%ghf, surf_lsm_h(0)%ghf, surf_usm_h(0)%ghf,                     &
     3020                     surf_def_h(1)%ghf, surf_lsm_h(1)%ghf, surf_usm_h(1)%ghf,                     &
     3021                     surf_def_v(0)%ghf, surf_lsm_v(0)%ghf, surf_usm_v(0)%ghf,                     &
     3022                     surf_def_v(1)%ghf, surf_lsm_v(1)%ghf, surf_usm_v(1)%ghf,                     &
     3023                     surf_def_v(2)%ghf, surf_lsm_v(2)%ghf, surf_usm_v(2)%ghf,                     &
     3024                     surf_def_v(3)%ghf, surf_lsm_v(3)%ghf, surf_usm_v(3)%ghf, n_out )
    32113025
    32123026          CASE ( 'r_a' )
    3213              CALL surface_data_output_sum_up( surf_def_h(0)%r_a, surf_def_h(1)%r_a,                &
    3214                                               surf_lsm_h%r_a, surf_usm_h%r_a,                      &
    3215                                               surf_def_v(0)%r_a, surf_lsm_v(0)%r_a,                &
    3216                                               surf_usm_v(0)%r_a, surf_def_v(1)%r_a,                &
    3217                                               surf_lsm_v(1)%r_a, surf_usm_v(1)%r_a,                &
    3218                                               surf_def_v(2)%r_a, surf_lsm_v(2)%r_a,                &
    3219                                               surf_usm_v(2)%r_a, surf_def_v(3)%r_a,                &
    3220                                               surf_lsm_v(3)%r_a, surf_usm_v(3)%r_a, n_out )
     3027             CALL surface_data_output_sum_up(                                                     &
     3028                     surf_def_h(0)%r_a, surf_lsm_h(0)%r_a, surf_usm_h(0)%r_a,                     &
     3029                     surf_def_h(1)%r_a, surf_lsm_h(1)%r_a, surf_usm_h(1)%r_a,                     &
     3030                     surf_def_v(0)%r_a, surf_lsm_v(0)%r_a, surf_usm_v(0)%r_a,                     &
     3031                     surf_def_v(1)%r_a, surf_lsm_v(1)%r_a, surf_usm_v(1)%r_a,                     &
     3032                     surf_def_v(2)%r_a, surf_lsm_v(2)%r_a, surf_usm_v(2)%r_a,                     &
     3033                     surf_def_v(3)%r_a, surf_lsm_v(3)%r_a, surf_usm_v(3)%r_a, n_out )
    32213034
    32223035          CASE ( 'r_soil' )
    3223              CALL surface_data_output_sum_up( surf_def_h(0)%r_soil, surf_def_h(1)%r_soil,          &
    3224                                               surf_lsm_h%r_soil, surf_usm_h%r_soil,                &
    3225                                               surf_def_v(0)%r_soil, surf_lsm_v(0)%r_soil,          &
    3226                                               surf_usm_v(0)%r_soil, surf_def_v(1)%r_soil,          &
    3227                                               surf_lsm_v(1)%r_soil, surf_usm_v(1)%r_soil,          &
    3228                                               surf_def_v(2)%r_soil, surf_lsm_v(2)%r_soil,          &
    3229                                               surf_usm_v(2)%r_soil, surf_def_v(3)%r_soil,          &
    3230                                               surf_lsm_v(3)%r_soil, surf_usm_v(3)%r_soil, n_out )
     3036             CALL surface_data_output_sum_up(                                                     &
     3037                     surf_def_h(0)%r_soil, surf_lsm_h(0)%r_soil, surf_usm_h(0)%r_soil,            &
     3038                     surf_def_h(1)%r_soil, surf_lsm_h(1)%r_soil, surf_usm_h(1)%r_soil,            &
     3039                     surf_def_v(0)%r_soil, surf_lsm_v(0)%r_soil, surf_usm_v(0)%r_soil,            &
     3040                     surf_def_v(1)%r_soil, surf_lsm_v(1)%r_soil, surf_usm_v(1)%r_soil,            &
     3041                     surf_def_v(2)%r_soil, surf_lsm_v(2)%r_soil, surf_usm_v(2)%r_soil,            &
     3042                     surf_def_v(3)%r_soil, surf_lsm_v(3)%r_soil, surf_usm_v(3)%r_soil, n_out )
    32313043
    32323044          CASE ( 'r_canopy' )
    3233              CALL surface_data_output_sum_up( surf_def_h(0)%r_canopy, surf_def_h(1)%r_canopy,      &
    3234                                               surf_lsm_h%r_canopy, surf_usm_h%r_canopy,            &
    3235                                               surf_def_v(0)%r_canopy, surf_lsm_v(0)%r_canopy,      &
    3236                                               surf_usm_v(0)%r_canopy, surf_def_v(1)%r_canopy,      &
    3237                                               surf_lsm_v(1)%r_canopy, surf_usm_v(1)%r_canopy,      &
    3238                                               surf_def_v(2)%r_canopy, surf_lsm_v(2)%r_canopy,      &
    3239                                               surf_usm_v(2)%r_canopy, surf_def_v(3)%r_canopy,      &
    3240                                               surf_lsm_v(3)%r_canopy, surf_usm_v(3)%r_canopy,      &
    3241                                               n_out )
     3045             CALL surface_data_output_sum_up(                                                     &
     3046                     surf_def_h(0)%r_canopy, surf_lsm_h(0)%r_canopy, surf_usm_h(0)%r_canopy,      &
     3047                     surf_def_h(1)%r_canopy, surf_lsm_h(1)%r_canopy, surf_usm_h(1)%r_canopy,      &
     3048                     surf_def_v(0)%r_canopy, surf_lsm_v(0)%r_canopy, surf_usm_v(0)%r_canopy,      &
     3049                     surf_def_v(1)%r_canopy, surf_lsm_v(1)%r_canopy, surf_usm_v(1)%r_canopy,      &
     3050                     surf_def_v(2)%r_canopy, surf_lsm_v(2)%r_canopy, surf_usm_v(2)%r_canopy,      &
     3051                     surf_def_v(3)%r_canopy, surf_lsm_v(3)%r_canopy, surf_usm_v(3)%r_canopy,      &
     3052                     n_out )
    32423053
    32433054          CASE ( 'r_s' )
    3244              CALL surface_data_output_sum_up( surf_def_h(0)%r_s, surf_def_h(1)%r_s,                &
    3245                                               surf_lsm_h%r_s, surf_usm_h%r_s, surf_def_v(0)%r_s,   &
    3246                                               surf_lsm_v(0)%r_s, surf_usm_v(0)%r_s,                &
    3247                                               surf_def_v(1)%r_s, surf_lsm_v(1)%r_s,                &
    3248                                               surf_usm_v(1)%r_s, surf_def_v(2)%r_s,                &
    3249                                               surf_lsm_v(2)%r_s, surf_usm_v(2)%r_s,                &
    3250                                               surf_def_v(3)%r_s, surf_lsm_v(3)%r_s,                &
    3251                                               surf_usm_v(3)%r_s, n_out )
     3055             CALL surface_data_output_sum_up(                                                     &
     3056                     surf_def_h(0)%r_s, surf_lsm_h(0)%r_s, surf_usm_h(0)%r_s,                     &
     3057                     surf_def_h(1)%r_s, surf_lsm_h(1)%r_s, surf_usm_h(1)%r_s,                     &
     3058                     surf_def_v(0)%r_s, surf_lsm_v(0)%r_s, surf_usm_v(0)%r_s,                     &
     3059                     surf_def_v(1)%r_s, surf_lsm_v(1)%r_s, surf_usm_v(1)%r_s,                     &
     3060                     surf_def_v(2)%r_s, surf_lsm_v(2)%r_s, surf_usm_v(2)%r_s,                     &
     3061                     surf_def_v(3)%r_s, surf_lsm_v(3)%r_s, surf_usm_v(3)%r_s, n_out )
    32523062
    32533063
    32543064          CASE ( 'rad_sw_dir' )
    3255              CALL surface_data_output_sum_up( surf_def_h(0)%rad_sw_dir, surf_def_h(1)%rad_sw_dir,  &
    3256                                               surf_lsm_h%rad_sw_dir, surf_usm_h%rad_sw_dir,        &
    3257                                               surf_def_v(0)%rad_sw_dir, surf_lsm_v(0)%rad_sw_dir,  &
    3258                                               surf_usm_v(0)%rad_sw_dir, surf_def_v(1)%rad_sw_dir,  &
    3259                                               surf_lsm_v(1)%rad_sw_dir, surf_usm_v(1)%rad_sw_dir,  &
    3260                                               surf_def_v(2)%rad_sw_dir, surf_lsm_v(2)%rad_sw_dir,  &
    3261                                               surf_usm_v(2)%rad_sw_dir, surf_def_v(3)%rad_sw_dir,  &
    3262                                               surf_lsm_v(3)%rad_sw_dir, surf_usm_v(3)%rad_sw_dir,  &
    3263                                               n_out )
     3065             CALL surface_data_output_sum_up(                                                    &
     3066                  surf_def_h(0)%rad_sw_dir, surf_lsm_h(0)%rad_sw_dir, surf_usm_h(0)%rad_sw_dir,  &
     3067                  surf_def_h(1)%rad_sw_dir, surf_lsm_h(1)%rad_sw_dir, surf_usm_h(1)%rad_sw_dir,  &
     3068                  surf_def_v(0)%rad_sw_dir, surf_lsm_v(0)%rad_sw_dir, surf_usm_v(0)%rad_sw_dir,  &
     3069                  surf_def_v(1)%rad_sw_dir, surf_lsm_v(1)%rad_sw_dir, surf_usm_v(1)%rad_sw_dir,  &
     3070                  surf_def_v(2)%rad_sw_dir, surf_lsm_v(2)%rad_sw_dir, surf_usm_v(2)%rad_sw_dir,  &
     3071                  surf_def_v(3)%rad_sw_dir, surf_lsm_v(3)%rad_sw_dir, surf_usm_v(3)%rad_sw_dir,  &
     3072                  n_out )
    32643073          CASE ( 'rad_sw_dif' )
    3265              CALL surface_data_output_sum_up( surf_def_h(0)%rad_sw_dif, surf_def_h(1)%rad_sw_dif,  &
    3266                                               surf_lsm_h%rad_sw_dif, surf_usm_h%rad_sw_dif,        &
    3267                                               surf_def_v(0)%rad_sw_dif, surf_lsm_v(0)%rad_sw_dif,  &
    3268                                               surf_usm_v(0)%rad_sw_dif, surf_def_v(1)%rad_sw_dif,  &
    3269                                               surf_lsm_v(1)%rad_sw_dif, surf_usm_v(1)%rad_sw_dif,  &
    3270                                               surf_def_v(2)%rad_sw_dif, surf_lsm_v(2)%rad_sw_dif,  &
    3271                                               surf_usm_v(2)%rad_sw_dif, surf_def_v(3)%rad_sw_dif,  &
    3272                                               surf_lsm_v(3)%rad_sw_dif, surf_usm_v(3)%rad_sw_dif,  &
    3273                                               n_out )
     3074             CALL surface_data_output_sum_up(                                                    &
     3075                  surf_def_h(0)%rad_sw_dif, surf_lsm_h(0)%rad_sw_dif, surf_usm_h(0)%rad_sw_dif,  &
     3076                  surf_def_h(1)%rad_sw_dif, surf_lsm_h(1)%rad_sw_dif, surf_usm_h(1)%rad_sw_dif,  &
     3077                  surf_def_v(0)%rad_sw_dif, surf_lsm_v(0)%rad_sw_dif, surf_usm_v(0)%rad_sw_dif,  &
     3078                  surf_def_v(1)%rad_sw_dif, surf_lsm_v(1)%rad_sw_dif, surf_usm_v(1)%rad_sw_dif,  &
     3079                  surf_def_v(2)%rad_sw_dif, surf_lsm_v(2)%rad_sw_dif, surf_usm_v(2)%rad_sw_dif,  &
     3080                  surf_def_v(3)%rad_sw_dif, surf_lsm_v(3)%rad_sw_dif, surf_usm_v(3)%rad_sw_dif,  &
     3081                  n_out )
    32743082
    32753083          CASE ( 'rad_sw_ref' )
    3276              CALL surface_data_output_sum_up( surf_def_h(0)%rad_sw_ref, surf_def_h(1)%rad_sw_ref,  &
    3277                                               surf_lsm_h%rad_sw_ref, surf_usm_h%rad_sw_ref,        &
    3278                                               surf_def_v(0)%rad_sw_ref, surf_lsm_v(0)%rad_sw_ref,  &
    3279                                               surf_usm_v(0)%rad_sw_ref, surf_def_v(1)%rad_sw_ref,  &
    3280                                               surf_lsm_v(1)%rad_sw_ref, surf_usm_v(1)%rad_sw_ref,  &
    3281                                               surf_def_v(2)%rad_sw_ref, surf_lsm_v(2)%rad_sw_ref,  &
    3282                                               surf_usm_v(2)%rad_sw_ref, surf_def_v(3)%rad_sw_ref,  &
    3283                                               surf_lsm_v(3)%rad_sw_ref, surf_usm_v(3)%rad_sw_ref,  &
    3284                                               n_out )
     3084             CALL surface_data_output_sum_up(                                                    &
     3085                  surf_def_h(0)%rad_sw_ref, surf_lsm_h(0)%rad_sw_ref, surf_usm_h(0)%rad_sw_ref,  &
     3086                  surf_def_h(1)%rad_sw_ref, surf_lsm_h(1)%rad_sw_ref, surf_usm_h(1)%rad_sw_ref,  &
     3087                  surf_def_v(0)%rad_sw_ref, surf_lsm_v(0)%rad_sw_ref, surf_usm_v(0)%rad_sw_ref,  &
     3088                  surf_def_v(1)%rad_sw_ref, surf_lsm_v(1)%rad_sw_ref, surf_usm_v(1)%rad_sw_ref,  &
     3089                  surf_def_v(2)%rad_sw_ref, surf_lsm_v(2)%rad_sw_ref, surf_usm_v(2)%rad_sw_ref,  &
     3090                  surf_def_v(3)%rad_sw_ref, surf_lsm_v(3)%rad_sw_ref, surf_usm_v(3)%rad_sw_ref,  &
     3091                  n_out )
    32853092
    32863093          CASE ( 'rad_sw_res' )
    3287              CALL surface_data_output_sum_up( surf_def_h(0)%rad_sw_res, surf_def_h(1)%rad_sw_res,  &
    3288                                               surf_lsm_h%rad_sw_res, surf_usm_h%rad_sw_res,        &
    3289                                               surf_def_v(0)%rad_sw_res, surf_lsm_v(0)%rad_sw_res,  &
    3290                                               surf_usm_v(0)%rad_sw_res, surf_def_v(1)%rad_sw_res,  &
    3291                                               surf_lsm_v(1)%rad_sw_res, surf_usm_v(1)%rad_sw_res,  &
    3292                                               surf_def_v(2)%rad_sw_res, surf_lsm_v(2)%rad_sw_res,  &
    3293                                               surf_usm_v(2)%rad_sw_res, surf_def_v(3)%rad_sw_res,  &
    3294                                               surf_lsm_v(3)%rad_sw_res, surf_usm_v(3)%rad_sw_res,  &
    3295                                               n_out )
     3094             CALL surface_data_output_sum_up(                                                    &
     3095                  surf_def_h(0)%rad_sw_res, surf_lsm_h(0)%rad_sw_res, surf_usm_h(0)%rad_sw_res,  &
     3096                  surf_def_h(1)%rad_sw_res, surf_lsm_h(1)%rad_sw_res, surf_usm_h(1)%rad_sw_res,  &
     3097                  surf_def_v(0)%rad_sw_res, surf_lsm_v(0)%rad_sw_res, surf_usm_v(0)%rad_sw_res,  &
     3098                  surf_def_v(1)%rad_sw_res, surf_lsm_v(1)%rad_sw_res, surf_usm_v(1)%rad_sw_res,  &
     3099                  surf_def_v(2)%rad_sw_res, surf_lsm_v(2)%rad_sw_res, surf_usm_v(2)%rad_sw_res,  &
     3100                  surf_def_v(3)%rad_sw_res, surf_lsm_v(3)%rad_sw_res, surf_usm_v(3)%rad_sw_res,  &
     3101                  n_out )
    32963102
    32973103          CASE ( 'rad_lw_dif' )
    3298              CALL surface_data_output_sum_up( surf_def_h(0)%rad_lw_dif, surf_def_h(1)%rad_lw_dif,  &
    3299                                               surf_lsm_h%rad_lw_dif, surf_usm_h%rad_lw_dif,        &
    3300                                               surf_def_v(0)%rad_lw_dif, surf_lsm_v(0)%rad_lw_dif,  &
    3301                                               surf_usm_v(0)%rad_lw_dif, surf_def_v(1)%rad_lw_dif,  &
    3302                                               surf_lsm_v(1)%rad_lw_dif, surf_usm_v(1)%rad_lw_dif,  &
    3303                                               surf_def_v(2)%rad_lw_dif, surf_lsm_v(2)%rad_lw_dif,  &
    3304                                               surf_usm_v(2)%rad_lw_dif, surf_def_v(3)%rad_lw_dif,  &
    3305                                               surf_lsm_v(3)%rad_lw_dif, surf_usm_v(3)%rad_lw_dif,  &
    3306                                               n_out )
     3104             CALL surface_data_output_sum_up(                                                    &
     3105                  surf_def_h(0)%rad_lw_dif, surf_lsm_h(0)%rad_lw_dif, surf_usm_h(0)%rad_lw_dif,  &
     3106                  surf_def_h(1)%rad_lw_dif, surf_lsm_h(1)%rad_lw_dif, surf_usm_h(1)%rad_lw_dif,  &
     3107                  surf_def_v(0)%rad_lw_dif, surf_lsm_v(0)%rad_lw_dif, surf_usm_v(0)%rad_lw_dif,  &
     3108                  surf_def_v(1)%rad_lw_dif, surf_lsm_v(1)%rad_lw_dif, surf_usm_v(1)%rad_lw_dif,  &
     3109                  surf_def_v(2)%rad_lw_dif, surf_lsm_v(2)%rad_lw_dif, surf_usm_v(2)%rad_lw_dif,  &
     3110                  surf_def_v(3)%rad_lw_dif, surf_lsm_v(3)%rad_lw_dif, surf_usm_v(3)%rad_lw_dif,  &
     3111                  n_out )
    33073112
    33083113          CASE ( 'rad_lw_ref' )
    3309              CALL surface_data_output_sum_up( surf_def_h(0)%rad_lw_ref, surf_def_h(1)%rad_lw_ref,  &
    3310                                               surf_lsm_h%rad_lw_ref, surf_usm_h%rad_lw_ref,        &
    3311                                               surf_def_v(0)%rad_lw_ref, surf_lsm_v(0)%rad_lw_ref,  &
    3312                                               surf_usm_v(0)%rad_lw_ref, surf_def_v(1)%rad_lw_ref,  &
    3313                                               surf_lsm_v(1)%rad_lw_ref, surf_usm_v(1)%rad_lw_ref,  &
    3314                                               surf_def_v(2)%rad_lw_ref, surf_lsm_v(2)%rad_lw_ref,  &
    3315                                               surf_usm_v(2)%rad_lw_ref, surf_def_v(3)%rad_lw_ref,  &
    3316                                               surf_lsm_v(3)%rad_lw_ref, surf_usm_v(3)%rad_lw_ref,  &
    3317                                               n_out )
     3114             CALL surface_data_output_sum_up(                                                    &
     3115                  surf_def_h(0)%rad_lw_ref, surf_lsm_h(0)%rad_lw_ref, surf_usm_h(0)%rad_lw_ref,  &
     3116                  surf_def_h(1)%rad_lw_ref, surf_lsm_h(1)%rad_lw_ref, surf_usm_h(1)%rad_lw_ref,  &
     3117                  surf_def_v(0)%rad_lw_ref, surf_lsm_v(0)%rad_lw_ref, surf_usm_v(0)%rad_lw_ref,  &
     3118                  surf_def_v(1)%rad_lw_ref, surf_lsm_v(1)%rad_lw_ref, surf_usm_v(1)%rad_lw_ref,  &
     3119                  surf_def_v(2)%rad_lw_ref, surf_lsm_v(2)%rad_lw_ref, surf_usm_v(2)%rad_lw_ref,  &
     3120                  surf_def_v(3)%rad_lw_ref, surf_lsm_v(3)%rad_lw_ref, surf_usm_v(3)%rad_lw_ref,  &
     3121                  n_out )
    33183122
    33193123          CASE ( 'rad_lw_res' )
    3320              CALL surface_data_output_sum_up( surf_def_h(0)%rad_lw_res, surf_def_h(1)%rad_lw_res,  &
    3321                                               surf_lsm_h%rad_lw_res, surf_usm_h%rad_lw_res,        &
    3322                                               surf_def_v(0)%rad_lw_res, surf_lsm_v(0)%rad_lw_res,  &
    3323                                               surf_usm_v(0)%rad_lw_res, surf_def_v(1)%rad_lw_res,  &
    3324                                               surf_lsm_v(1)%rad_lw_res, surf_usm_v(1)%rad_lw_res,  &
    3325                                               surf_def_v(2)%rad_lw_res, surf_lsm_v(2)%rad_lw_res,  &
    3326                                               surf_usm_v(2)%rad_lw_res, surf_def_v(3)%rad_lw_res,  &
    3327                                               surf_lsm_v(3)%rad_lw_res, surf_usm_v(3)%rad_lw_res,  &
    3328                                               n_out )
     3124             CALL surface_data_output_sum_up(                                                     &
     3125                  surf_def_h(0)%rad_lw_res, surf_lsm_h(0)%rad_lw_res, surf_usm_h(0)%rad_lw_res,  &
     3126                  surf_def_h(1)%rad_lw_res, surf_lsm_h(1)%rad_lw_res, surf_usm_h(1)%rad_lw_res,  &
     3127                  surf_def_v(0)%rad_lw_res, surf_lsm_v(0)%rad_lw_res, surf_usm_v(0)%rad_lw_res,  &
     3128                  surf_def_v(1)%rad_lw_res, surf_lsm_v(1)%rad_lw_res, surf_usm_v(1)%rad_lw_res,  &
     3129                  surf_def_v(2)%rad_lw_res, surf_lsm_v(2)%rad_lw_res, surf_usm_v(2)%rad_lw_res,  &
     3130                  surf_def_v(3)%rad_lw_res, surf_lsm_v(3)%rad_lw_res, surf_usm_v(3)%rad_lw_res,  &
     3131                  n_out )
    33293132
    33303133          CASE ( 'uvw1' )
    3331              CALL surface_data_output_sum_up( surf_def_h(0)%uvw_abs, surf_def_h(1)%uvw_abs,        &
    3332                                               surf_lsm_h%uvw_abs, surf_usm_h%uvw_abs,              &
    3333                                               surf_def_v(0)%uvw_abs, surf_lsm_v(0)%uvw_abs,        &
    3334                                               surf_usm_v(0)%uvw_abs, surf_def_v(1)%uvw_abs,        &
    3335                                               surf_lsm_v(1)%uvw_abs, surf_usm_v(1)%uvw_abs,        &
    3336                                               surf_def_v(2)%uvw_abs, surf_lsm_v(2)%uvw_abs,        &
    3337                                               surf_usm_v(2)%uvw_abs, surf_def_v(3)%uvw_abs,        &
    3338                                               surf_lsm_v(3)%uvw_abs, surf_usm_v(3)%uvw_abs, n_out )
     3134             CALL surface_data_output_sum_up(                                                    &
     3135                     surf_def_h(0)%uvw_abs, surf_lsm_h(0)%uvw_abs, surf_usm_h(0)%uvw_abs,        &
     3136                     surf_def_h(1)%uvw_abs, surf_lsm_h(1)%uvw_abs, surf_usm_h(1)%uvw_abs,        &
     3137                     surf_def_v(0)%uvw_abs, surf_lsm_v(0)%uvw_abs, surf_usm_v(0)%uvw_abs,        &
     3138                     surf_def_v(1)%uvw_abs, surf_lsm_v(1)%uvw_abs, surf_usm_v(1)%uvw_abs,        &
     3139                     surf_def_v(2)%uvw_abs, surf_lsm_v(2)%uvw_abs, surf_usm_v(2)%uvw_abs,        &
     3140                     surf_def_v(3)%uvw_abs, surf_lsm_v(3)%uvw_abs, surf_usm_v(3)%uvw_abs, n_out )
    33393141
    33403142          CASE ( 'waste_heat' )
    3341              CALL surface_data_output_sum_up( surf_def_h(0)%waste_heat, surf_def_h(1)%waste_heat,  &
    3342                                               surf_lsm_h%waste_heat, surf_usm_h%waste_heat,        &
    3343                                               surf_def_v(0)%waste_heat, surf_lsm_v(0)%waste_heat,  &
    3344                                               surf_usm_v(0)%waste_heat, surf_def_v(1)%waste_heat,  &
    3345                                               surf_lsm_v(1)%waste_heat, surf_usm_v(1)%waste_heat,  &
    3346                                               surf_def_v(2)%waste_heat, surf_lsm_v(2)%waste_heat,  &
    3347                                               surf_usm_v(2)%waste_heat, surf_def_v(3)%waste_heat,  &
    3348                                               surf_lsm_v(3)%waste_heat, surf_usm_v(3)%waste_heat,  &
    3349                                               n_out )
     3143             CALL surface_data_output_sum_up(                                                     &
     3144                     surf_def_h(0)%waste_heat, surf_lsm_h(0)%waste_heat, surf_usm_h(0)%waste_heat,&
     3145                     surf_def_h(1)%waste_heat, surf_lsm_h(1)%waste_heat, surf_usm_h(1)%waste_heat,&
     3146                     surf_def_v(0)%waste_heat, surf_lsm_v(0)%waste_heat, surf_usm_v(0)%waste_heat,&
     3147                     surf_def_v(1)%waste_heat, surf_lsm_v(1)%waste_heat, surf_usm_v(1)%waste_heat,&
     3148                     surf_def_v(2)%waste_heat, surf_lsm_v(2)%waste_heat, surf_usm_v(2)%waste_heat,&
     3149                     surf_def_v(3)%waste_heat, surf_lsm_v(3)%waste_heat, surf_usm_v(3)%waste_heat,&
     3150                     n_out )
    33503151
    33513152          CASE ( 'im_hf' )
    3352              CALL surface_data_output_sum_up( surf_def_h(0)%iwghf_eb, surf_def_h(1)%iwghf_eb,      &
    3353                                               surf_lsm_h%iwghf_eb, surf_usm_h%iwghf_eb,            &
    3354                                               surf_def_v(0)%iwghf_eb, surf_lsm_v(0)%iwghf_eb,      &
    3355                                               surf_usm_v(0)%iwghf_eb, surf_def_v(1)%iwghf_eb,      &
    3356                                              surf_lsm_v(1)%iwghf_eb, surf_usm_v(1)%iwghf_eb,      &
    3357                                               surf_def_v(2)%iwghf_eb, surf_lsm_v(2)%iwghf_eb,      &
    3358                                               surf_usm_v(2)%iwghf_eb, surf_def_v(3)%iwghf_eb,      &
    3359                                               surf_lsm_v(3)%iwghf_eb, surf_usm_v(3)%iwghf_eb, n_out )
     3153             CALL surface_data_output_sum_up(                                                     &
     3154                     surf_def_h(0)%iwghf_eb, surf_lsm_h(0)%iwghf_eb, surf_usm_h(0)%iwghf_eb,      &
     3155                     surf_def_h(1)%iwghf_eb, surf_lsm_h(1)%iwghf_eb, surf_usm_h(1)%iwghf_eb,      &
     3156                     surf_def_v(0)%iwghf_eb, surf_lsm_v(0)%iwghf_eb, surf_usm_v(0)%iwghf_eb,      &
     3157                     surf_def_v(1)%iwghf_eb, surf_lsm_v(1)%iwghf_eb, surf_usm_v(1)%iwghf_eb,      &
     3158                     surf_def_v(2)%iwghf_eb, surf_lsm_v(2)%iwghf_eb, surf_usm_v(2)%iwghf_eb,      &
     3159                     surf_def_v(3)%iwghf_eb, surf_lsm_v(3)%iwghf_eb, surf_usm_v(3)%iwghf_eb,      &
     3160                     n_out )
    33603161
    33613162          CASE ( 'albedo' )
    3362              CALL surface_data_output_sum_up( surf_def_h(0)%albedo, surf_def_h(1)%albedo,          &
    3363                                               surf_lsm_h%albedo, surf_usm_h%albedo,                &
    3364                                               surf_def_v(0)%albedo, surf_lsm_v(0)%albedo,          &
    3365                                               surf_usm_v(0)%albedo, surf_def_v(1)%albedo,          &
    3366                                               surf_lsm_v(1)%albedo, surf_usm_v(1)%albedo,          &
    3367                                               surf_def_v(2)%albedo, surf_lsm_v(2)%albedo,          &
    3368                                               surf_usm_v(2)%albedo, surf_def_v(3)%albedo,          &
    3369                                               surf_lsm_v(3)%albedo, surf_usm_v(3)%albedo, n_out )
     3163             CALL surface_data_output_sum_up(                                                     &
     3164                     surf_def_h(0)%albedo, surf_lsm_h(0)%albedo, surf_usm_h(0)%albedo,            &
     3165                     surf_def_h(1)%albedo, surf_lsm_h(1)%albedo, surf_usm_h(1)%albedo,            &
     3166                     surf_def_v(0)%albedo, surf_lsm_v(0)%albedo, surf_usm_v(0)%albedo,            &
     3167                     surf_def_v(1)%albedo, surf_lsm_v(1)%albedo, surf_usm_v(1)%albedo,            &
     3168                     surf_def_v(2)%albedo, surf_lsm_v(2)%albedo, surf_usm_v(2)%albedo,            &
     3169                     surf_def_v(3)%albedo, surf_lsm_v(3)%albedo, surf_usm_v(3)%albedo, n_out )
    33703170
    33713171
    33723172          CASE ( 'emissivity' )
    3373              CALL surface_data_output_sum_up( surf_def_h(0)%emissivity, surf_def_h(1)%emissivity,  &
    3374                                               surf_lsm_h%emissivity, surf_usm_h%emissivity,        &
    3375                                               surf_def_v(0)%emissivity, surf_lsm_v(0)%emissivity,  &
    3376                                               surf_usm_v(0)%emissivity, surf_def_v(1)%emissivity,  &
    3377                                               surf_lsm_v(1)%emissivity, surf_usm_v(1)%emissivity,  &
    3378                                               surf_def_v(2)%emissivity, surf_lsm_v(2)%emissivity,  &
    3379                                               surf_usm_v(2)%emissivity, surf_def_v(3)%emissivity,  &
    3380                                               surf_lsm_v(3)%emissivity, surf_usm_v(3)%emissivity,  &
    3381                                               n_out )
     3173             CALL surface_data_output_sum_up(                                                     &
     3174                     surf_def_h(0)%emissivity, surf_lsm_h(0)%emissivity, surf_usm_h(0)%emissivity,&
     3175                     surf_def_h(1)%emissivity, surf_lsm_h(1)%emissivity, surf_usm_h(1)%emissivity,&
     3176                     surf_def_v(0)%emissivity, surf_lsm_v(0)%emissivity, surf_usm_v(0)%emissivity,&
     3177                     surf_def_v(1)%emissivity, surf_lsm_v(1)%emissivity, surf_usm_v(1)%emissivity,&
     3178                     surf_def_v(2)%emissivity, surf_lsm_v(2)%emissivity, surf_usm_v(2)%emissivity,&
     3179                     surf_def_v(3)%emissivity, surf_lsm_v(3)%emissivity, surf_usm_v(3)%emissivity,&
     3180                     n_out )
    33823181
    33833182       END SELECT
     
    33923191!> Sum-up the surface data for average output variables.
    33933192!--------------------------------------------------------------------------------------------------!
    3394  SUBROUTINE surface_data_output_sum_up_1d( var_def_h0, var_def_h1, var_lsm_h, var_usm_h,           &
    3395                                            var_def_v0, var_lsm_v0, var_usm_v0, var_def_v1,         &
    3396                                            var_lsm_v1, var_usm_v1, var_def_v2, var_lsm_v2,         &
    3397                                            var_usm_v2, var_def_v3, var_lsm_v3, var_usm_v3, n_out,  &
    3398                                            fac )
     3193 SUBROUTINE surface_data_output_sum_up_1d(  var_def_h0, var_lsm_h0, var_usm_h0,        &
     3194                                            var_def_h1, var_lsm_h1, var_usm_h1,        &
     3195                                            var_def_v0, var_lsm_v0, var_usm_v0,        &
     3196                                            var_def_v1, var_lsm_v1, var_usm_v1,        &
     3197                                            var_def_v2, var_lsm_v2, var_usm_v2,        &
     3198                                            var_def_v3, var_lsm_v3, var_usm_v3,        &
     3199                                            n_out, fac )
    33993200
    34003201    IMPLICIT NONE
     
    34093210
    34103211    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_def_h0  !< output variable at upward-facing default-type surfaces
     3212    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_lsm_h0  !< output variable at upward-facing natural-type surfaces
     3213    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_usm_h0  !< output variable at upward-facing urban-type surfaces
    34113214    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_def_h1  !< output variable at downward-facing default-type surfaces
    3412     REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_lsm_h   !< output variable at upward-facing natural-type surfaces
    3413     REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_usm_h   !< output variable at upward-facing urban-type surfaces
     3215    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_lsm_h1  !< output variable at downward-facing natural-type surfaces
     3216    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_usm_h1  !< output variable at downward-facing urban-type surfaces
    34143217    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_def_v0  !< output variable at northward-facing default-type surfaces
    34153218    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_def_v1  !< output variable at southward-facing default-type surfaces
     
    34543257       n_surf = n_surf + surf_def_h(0)%ns
    34553258    ENDIF
     3259    IF ( ALLOCATED( var_lsm_h0 ) )  THEN
     3260       DO  m = 1, surf_lsm_h(0)%ns
     3261          n_surf                        = n_surf + 1
     3262          k                             = surf_lsm_h(0)%k(m)
     3263          surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out) + var_lsm_h0(m) *        &
     3264                                          conversion_factor(k)
     3265       ENDDO
     3266    ELSE
     3267       n_surf = n_surf + surf_lsm_h(0)%ns
     3268    ENDIF
     3269    IF ( ALLOCATED( var_usm_h0 ) )  THEN
     3270       DO  m = 1, surf_usm_h(0)%ns
     3271          n_surf                        = n_surf + 1
     3272          k                             = surf_usm_h(0)%k(m)
     3273          surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out) + var_usm_h0(m) *          &
     3274                                          conversion_factor(k)
     3275       ENDDO
     3276    ELSE
     3277       n_surf = n_surf + surf_usm_h(0)%ns
     3278    ENDIF
    34563279    IF ( ALLOCATED( var_def_h1 ) )  THEN
    34573280       DO  m = 1, surf_def_h(1)%ns
     
    34643287       n_surf = n_surf + surf_def_h(1)%ns
    34653288    ENDIF
    3466     IF ( ALLOCATED( var_lsm_h ) )  THEN
    3467        DO  m = 1, surf_lsm_h%ns
     3289    IF ( ALLOCATED( var_lsm_h1 ) )  THEN
     3290       DO  m = 1, surf_lsm_h(1)%ns
    34683291          n_surf                        = n_surf + 1
    3469           k                             = surf_lsm_h%k(m)
    3470           surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out) + var_lsm_h(m) *           &
     3292          k                             = surf_lsm_h(1)%k(m)
     3293          surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out) + var_lsm_h1(m) *         &
    34713294                                          conversion_factor(k)
    34723295       ENDDO
    34733296    ELSE
    3474        n_surf = n_surf + surf_lsm_h%ns
    3475     ENDIF
    3476     IF ( ALLOCATED( var_usm_h ) )  THEN
    3477        DO  m = 1, surf_usm_h%ns
     3297       n_surf = n_surf + surf_lsm_h(1)%ns
     3298    ENDIF
     3299    IF ( ALLOCATED( var_usm_h1 ) )  THEN
     3300       DO  m = 1, surf_usm_h(1)%ns
    34783301          n_surf                        = n_surf + 1
    3479           k                             = surf_usm_h%k(m)
    3480           surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out) + var_usm_h(m) *           &
     3302          k                             = surf_usm_h(1)%k(m)
     3303          surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out) + var_usm_h1(m) *          &
    34813304                                          conversion_factor(k)
    34823305       ENDDO
    34833306    ELSE
    3484        n_surf = n_surf + surf_usm_h%ns
     3307       n_surf = n_surf + surf_usm_h(1)%ns
    34853308    ENDIF
    34863309!
     
    36213444!> approach.
    36223445!--------------------------------------------------------------------------------------------------!
    3623  SUBROUTINE surface_data_output_sum_up_2d( var_def_h0, var_def_h1, var_lsm_h, var_usm_h,           &
    3624                                            var_def_v0, var_lsm_v0, var_usm_v0, var_def_v1,         &
    3625                                            var_lsm_v1, var_usm_v1, var_def_v2, var_lsm_v2,         &
    3626                                            var_usm_v2, var_def_v3, var_lsm_v3, var_usm_v3, n_out,  &
    3627                                            fac )
     3446 SUBROUTINE surface_data_output_sum_up_2d(  var_def_h0, var_lsm_h0, var_usm_h0,        &
     3447                                            var_def_h1, var_lsm_h1, var_usm_h1,        &
     3448                                            var_def_v0, var_lsm_v0, var_usm_v0,        &
     3449                                            var_def_v1, var_lsm_v1, var_usm_v1,        &
     3450                                            var_def_v2, var_lsm_v2, var_usm_v2,        &
     3451                                            var_def_v3, var_lsm_v3, var_usm_v3,        &
     3452                                            n_out, fac )
    36283453
    36293454    IMPLICIT NONE
     
    36383463
    36393464    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_def_h0  !< output variable at upward-facing default-type surfaces
     3465    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_lsm_h0  !< output variable at upward-facing natural-type surfaces
     3466    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_usm_h0  !< output variable at upward-facing urban-type surfaces
    36403467    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_def_h1  !< output variable at downward-facing default-type surfaces
    3641     REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_lsm_h   !< output variable at upward-facing natural-type surfaces
    3642     REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_usm_h   !< output variable at upward-facing urban-type surfaces
     3468    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_lsm_h1  !< output variable at downward-facing natural-type surfaces
     3469    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_usm_h1  !< output variable at downward-facing urban-type surfaces
    36433470    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_def_v0  !< output variable at northward-facing default-type surfaces
    36443471    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_def_v1  !< output variable at southward-facing default-type surfaces
     
    36953522       n_surf = n_surf + surf_def_h(1)%ns
    36963523    ENDIF
    3697     IF ( ALLOCATED( var_lsm_h ) )  THEN
    3698        DO  m = 1, surf_lsm_h%ns
     3524    IF ( ALLOCATED( var_lsm_h0 ) )  THEN
     3525       DO  m = 1, surf_lsm_h(0)%ns
    36993526          n_surf                        = n_surf + 1
    3700           k                             = surf_lsm_h%k(m)
     3527          k                             = surf_lsm_h(0)%k(m)
    37013528          surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)                            &
    3702                                         + SUM ( surf_lsm_h%frac(m,:) *                             &
    3703                                           var_lsm_h(m,:) ) * conversion_factor(k)
    3704        ENDDO
    3705     ELSE
    3706        n_surf = n_surf + surf_lsm_h%ns
    3707     ENDIF
    3708     IF ( ALLOCATED( var_usm_h ) )  THEN
    3709        DO  m = 1, surf_usm_h%ns
     3529                                        + SUM ( surf_lsm_h(0)%frac(m,:) *                          &
     3530                                          var_lsm_h0(m,:) ) * conversion_factor(k)
     3531       ENDDO
     3532    ELSE
     3533       n_surf = n_surf + surf_lsm_h(0)%ns
     3534    ENDIF
     3535    IF ( ALLOCATED( var_lsm_h1 ) )  THEN
     3536       DO  m = 1, surf_lsm_h(1)%ns
    37103537          n_surf                        = n_surf + 1
    3711           k                             = surf_usm_h%k(m)
     3538          k                             = surf_lsm_h(1)%k(m)
    37123539          surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)                            &
    3713                                         + SUM ( surf_usm_h%frac(m,:) *                             &
    3714                                           var_usm_h(m,:) ) * conversion_factor(k)
    3715        ENDDO
    3716     ELSE
    3717        n_surf = n_surf + surf_usm_h%ns
     3540                                        + SUM ( surf_lsm_h(1)%frac(m,:) *                          &
     3541                                          var_lsm_h1(m,:) ) * conversion_factor(k)
     3542       ENDDO
     3543    ELSE
     3544       n_surf = n_surf + surf_lsm_h(1)%ns
     3545    ENDIF
     3546    IF ( ALLOCATED( var_usm_h0 ) )  THEN
     3547       DO  m = 1, surf_usm_h(0)%ns
     3548          n_surf                        = n_surf + 1
     3549          k                             = surf_usm_h(0)%k(m)
     3550          surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)                            &
     3551                                        + SUM ( surf_usm_h(0)%frac(m,:) *                          &
     3552                                          var_usm_h0(m,:) ) * conversion_factor(k)
     3553       ENDDO
     3554    ELSE
     3555       n_surf = n_surf + surf_usm_h(0)%ns
     3556    ENDIF
     3557    IF ( ALLOCATED( var_usm_h1 ) )  THEN
     3558       DO  m = 1, surf_usm_h(1)%ns
     3559          n_surf                        = n_surf + 1
     3560          k                             = surf_usm_h(1)%k(m)
     3561          surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)                            &
     3562                                        + SUM ( surf_usm_h(1)%frac(m,:) *                          &
     3563                                          var_usm_h1(m,:) ) * conversion_factor(k)
     3564       ENDDO
     3565    ELSE
     3566       n_surf = n_surf + surf_usm_h(1)%ns
    37183567    ENDIF
    37193568!
     
    38653714!> Collect the surface data from different types and different orientation.
    38663715!--------------------------------------------------------------------------------------------------!
    3867  SUBROUTINE surface_data_output_collect_1d( var_def_h0, var_def_h1, var_lsm_h, var_usm_h,          &
    3868                                            var_def_v0, var_lsm_v0, var_usm_v0, var_def_v1,         &
    3869                                            var_lsm_v1, var_usm_v1, var_def_v2, var_lsm_v2,         &
    3870                                            var_usm_v2, var_def_v3, var_lsm_v3, var_usm_v3, fac )
     3716 SUBROUTINE surface_data_output_collect_1d( var_def_h0, var_lsm_h0, var_usm_h0,        &
     3717                                            var_def_h1, var_lsm_h1, var_usm_h1,        &
     3718                                            var_def_v0, var_lsm_v0, var_usm_v0,        &
     3719                                            var_def_v1, var_lsm_v1, var_usm_v1,        &
     3720                                            var_def_v2, var_lsm_v2, var_usm_v2,        &
     3721                                            var_def_v3, var_lsm_v3, var_usm_v3, fac )
    38713722
    38723723    IMPLICIT NONE
     
    38813732    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_def_h0  !< output variable at upward-facing default-type surfaces
    38823733    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_def_h1  !< output variable at downward-facing default-type surfaces
    3883     REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_lsm_h   !< output variable at upward-facing natural-type surfaces
    3884     REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_usm_h   !< output variable at upward-facing urban-type surfaces
     3734    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_lsm_h0  !< output variable at upward-facing natural-type surfaces
     3735    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_lsm_h1  !< output variable at downward-facing natural-type surfaces
     3736    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_usm_h0  !< output variable at upward-facing urban-type surfaces
     3737    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_usm_h1  !< output variable at downward-facing urban-type surfaces
    38853738    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_def_v0  !< output variable at northward-facing default-type surfaces
    38863739    REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_def_v1  !< output variable at southward-facing default-type surfaces
     
    39323785       n_surf = n_surf + surf_def_h(1)%ns
    39333786    ENDIF
    3934     IF ( ALLOCATED( var_lsm_h ) )  THEN
    3935        DO  m = 1, surf_lsm_h%ns
     3787    IF ( ALLOCATED( var_lsm_h0 ) )  THEN
     3788       DO  m = 1, surf_lsm_h(0)%ns
    39363789          n_surf                   = n_surf + 1
    3937           k                        = surf_lsm_h%k(m)
    3938           surfaces%var_out(n_surf) = var_lsm_h(m) * conversion_factor(k)
    3939        ENDDO
    3940     ELSE
    3941        n_surf = n_surf + surf_lsm_h%ns
    3942     ENDIF
    3943     IF ( ALLOCATED( var_usm_h ) )  THEN
    3944        DO  m = 1, surf_usm_h%ns
     3790          k                        = surf_lsm_h(0)%k(m)
     3791          surfaces%var_out(n_surf) = var_lsm_h0(m) * conversion_factor(k)
     3792       ENDDO
     3793    ELSE
     3794       n_surf = n_surf + surf_lsm_h(0)%ns
     3795    ENDIF
     3796    IF ( ALLOCATED( var_lsm_h1 ) )  THEN
     3797       DO  m = 1, surf_lsm_h(1)%ns
    39453798          n_surf                   = n_surf + 1
    3946           k                        = surf_usm_h%k(m)
    3947           surfaces%var_out(n_surf) = var_usm_h(m) * conversion_factor(k)
    3948        ENDDO
    3949     ELSE
    3950        n_surf = n_surf + surf_usm_h%ns
     3799          k                        = surf_lsm_h(1)%k(m)
     3800          surfaces%var_out(n_surf) = var_lsm_h1(m) * conversion_factor(k)
     3801       ENDDO
     3802    ELSE
     3803       n_surf = n_surf + surf_lsm_h(1)%ns
     3804    ENDIF
     3805    IF ( ALLOCATED( var_usm_h0 ) )  THEN
     3806       DO  m = 1, surf_usm_h(0)%ns
     3807          n_surf                   = n_surf + 1
     3808          k                        = surf_usm_h(0)%k(m)
     3809          surfaces%var_out(n_surf) = var_usm_h0(m) * conversion_factor(k)
     3810       ENDDO
     3811    ELSE
     3812       n_surf = n_surf + surf_usm_h(0)%ns
     3813    ENDIF
     3814    IF ( ALLOCATED( var_usm_h1 ) )  THEN
     3815       DO  m = 1, surf_usm_h(1)%ns
     3816          n_surf                   = n_surf + 1
     3817          k                        = surf_usm_h(1)%k(m)
     3818          surfaces%var_out(n_surf) = var_usm_h1(m) * conversion_factor(k)
     3819       ENDDO
     3820    ELSE
     3821       n_surf = n_surf + surf_usm_h(1)%ns
    39513822    ENDIF
    39523823!
     
    40753946!> defined using tile approach.
    40763947!--------------------------------------------------------------------------------------------------!
    4077  SUBROUTINE surface_data_output_collect_2d( var_def_h0, var_def_h1, var_lsm_h, var_usm_h,          &
    4078                                             var_def_v0, var_lsm_v0, var_usm_v0, var_def_v1,        &
    4079                                             var_lsm_v1, var_usm_v1, var_def_v2, var_lsm_v2,        &
    4080                                             var_usm_v2, var_def_v3, var_lsm_v3, var_usm_v3, fac )
     3948 SUBROUTINE surface_data_output_collect_2d( var_def_h0, var_lsm_h0, var_usm_h0,       &
     3949                                            var_def_h1, var_lsm_h1, var_usm_h1,       &
     3950                                            var_def_v0, var_lsm_v0, var_usm_v0,       &
     3951                                            var_def_v1, var_lsm_v1, var_usm_v1,       &
     3952                                            var_def_v2, var_lsm_v2, var_usm_v2,       &
     3953                                            var_def_v3, var_lsm_v3, var_usm_v3, fac )
    40813954
    40823955    IMPLICIT NONE
     
    40913964    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_def_h0  !< output variable at upward-facing default-type surfaces
    40923965    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_def_h1  !< output variable at downward-facing default-type surfaces
    4093     REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_lsm_h   !< output variable at upward-facing natural-type surfaces
    4094     REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_usm_h   !< output variable at upward-facing urban-type surfaces
     3966    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_lsm_h0  !< output variable at upward-facing natural-type surfaces
     3967    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_lsm_h1  !< output variable at downward-facing natural-type surfaces
     3968    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_usm_h0  !< output variable at upward-facing urban-type surfaces
     3969    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_usm_h1  !< output variable at downward-facing urban-type surfaces
    40953970    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_def_v0  !< output variable at northward-facing default-type surfaces
    40963971    REAL(wp), DIMENSION(:,:), ALLOCATABLE, INTENT(IN) ::  var_def_v1  !< output variable at southward-facing default-type surfaces
     
    41384013          n_surf                   = n_surf + 1
    41394014          k                        = surf_def_h(1)%k(m)
    4140           surfaces%var_out(n_surf) = SUM ( surf_def_h(1)%frac(m,:) * var_def_h1(m,:) ) *           &
     4015          surfaces%var_out(n_surf) = SUM ( surf_def_h(1)%frac(m,:) * var_def_h1(m,:) ) *          &
    41414016                                     conversion_factor(k)
    41424017       ENDDO
     
    41444019       n_surf = n_surf + surf_def_h(1)%ns
    41454020    ENDIF
    4146     IF ( ALLOCATED( var_lsm_h ) )  THEN
    4147        DO  m = 1, surf_lsm_h%ns
     4021    IF ( ALLOCATED( var_lsm_h0 ) )  THEN
     4022       DO  m = 1, surf_lsm_h(0)%ns
    41484023          n_surf                   = n_surf + 1
    4149           k                        = surf_lsm_h%k(m)
    4150           surfaces%var_out(n_surf) = SUM ( surf_lsm_h%frac(m,:) * var_lsm_h(m,:) ) *               &
     4024          k                        = surf_lsm_h(0)%k(m)
     4025          surfaces%var_out(n_surf) = SUM ( surf_lsm_h(0)%frac(m,:) * var_lsm_h0(m,:) ) *          &
    41514026                                     conversion_factor(k)
    41524027       ENDDO
    41534028    ELSE
    4154        n_surf = n_surf + surf_lsm_h%ns
    4155     ENDIF
    4156     IF ( ALLOCATED( var_usm_h ) )  THEN
    4157        DO  m = 1, surf_usm_h%ns
     4029       n_surf = n_surf + surf_lsm_h(0)%ns
     4030    ENDIF
     4031    IF ( ALLOCATED( var_lsm_h1 ) )  THEN
     4032       DO  m = 1, surf_lsm_h(1)%ns
    41584033          n_surf                   = n_surf + 1
    4159           k                        = surf_usm_h%k(m)
    4160           surfaces%var_out(n_surf) = SUM ( surf_usm_h%frac(m,:) * var_usm_h(m,:) )                 &
     4034          k                        = surf_lsm_h(1)%k(m)
     4035          surfaces%var_out(n_surf) = SUM ( surf_lsm_h(1)%frac(m,:) * var_lsm_h1(m,:) ) *         &
     4036                                     conversion_factor(k)
     4037       ENDDO
     4038    ELSE
     4039       n_surf = n_surf + surf_lsm_h(0)%ns
     4040    ENDIF
     4041    IF ( ALLOCATED( var_usm_h0 ) )  THEN
     4042       DO  m = 1, surf_usm_h(0)%ns
     4043          n_surf                   = n_surf + 1
     4044          k                        = surf_usm_h(0)%k(m)
     4045          surfaces%var_out(n_surf) = SUM ( surf_usm_h(0)%frac(m,:) * var_usm_h0(m,:) )            &
    41614046                                     * conversion_factor(k)
    41624047       ENDDO
    41634048    ELSE
    4164        n_surf = n_surf + surf_usm_h%ns
     4049       n_surf = n_surf + surf_usm_h(0)%ns
     4050    ENDIF
     4051    IF ( ALLOCATED( var_usm_h1 ) )  THEN
     4052       DO  m = 1, surf_usm_h(1)%ns
     4053          n_surf                   = n_surf + 1
     4054          k                        = surf_usm_h(1)%k(m)
     4055          surfaces%var_out(n_surf) = SUM ( surf_usm_h(1)%frac(m,:) * var_usm_h1(m,:) )            &
     4056                                     * conversion_factor(k)
     4057       ENDDO
     4058    ELSE
     4059       n_surf = n_surf + surf_usm_h(1)%ns
    41654060    ENDIF
    41664061!
     
    47234618                num_surf(j,i)         = num_surf(j,i) + 1
    47244619             ENDDO
    4725           ENDDO
    4726           DO  m = 1, surf_lsm_h%ns
    4727              i = surf_lsm_h%i(m)
    4728              j = surf_lsm_h%j(m)
    4729              n                     = n + 1
    4730              surfaces%var_av(n,nv) = surf_in(start_index(j,i)+num_surf(j,i))
    4731              num_surf(j,i)         = num_surf(j,i) + 1
    4732           ENDDO
    4733           DO  m = 1, surf_usm_h%ns
    4734              i = surf_usm_h%i(m)
    4735              j = surf_usm_h%j(m)
    4736              n                     = n + 1
    4737              surfaces%var_av(n,nv) = surf_in(start_index(j,i)+num_surf(j,i))
    4738              num_surf(j,i)         = num_surf(j,i) + 1
     4620             DO  m = 1, surf_lsm_h(l)%ns
     4621                i = surf_lsm_h(l)%i(m)
     4622                j = surf_lsm_h(l)%j(m)
     4623                n                     = n + 1
     4624                surfaces%var_av(n,nv) = surf_in(start_index(j,i)+num_surf(j,i))
     4625                num_surf(j,i)         = num_surf(j,i) + 1
     4626             ENDDO
     4627             DO  m = 1, surf_usm_h(l)%ns
     4628                i = surf_usm_h(l)%i(m)
     4629                j = surf_usm_h(l)%j(m)
     4630                n                     = n + 1
     4631                surfaces%var_av(n,nv) = surf_in(start_index(j,i)+num_surf(j,i))
     4632                num_surf(j,i)         = num_surf(j,i) + 1
     4633             ENDDO
    47394634          ENDDO
    47404635
     
    48574752                num_surf(j,i) = num_surf(j,i) + 1
    48584753             ENDDO
    4859           ENDDO
    4860           DO  m = 1, surf_lsm_h%ns
    4861              i = surf_lsm_h%i(m)
    4862              j = surf_lsm_h%j(m)
    4863              num_surf(j,i) = num_surf(j,i) + 1
    4864           ENDDO
    4865           DO  m = 1, surf_usm_h%ns
    4866              i = surf_usm_h%i(m)
    4867              j = surf_usm_h%j(m)
    4868              num_surf(j,i) = num_surf(j,i) + 1
     4754             DO  m = 1, surf_lsm_h(l)%ns
     4755                i = surf_lsm_h(l)%i(m)
     4756                j = surf_lsm_h(l)%j(m)
     4757                num_surf(j,i) = num_surf(j,i) + 1
     4758             ENDDO
     4759             DO  m = 1, surf_usm_h(l)%ns
     4760                i = surf_usm_h(l)%i(m)
     4761                j = surf_usm_h(l)%j(m)
     4762                num_surf(j,i) = num_surf(j,i) + 1
     4763             ENDDO
    48694764          ENDDO
    48704765
     
    49154810                   num_surf(j,i)                              = num_surf(j,i) + 1
    49164811                ENDDO
    4917              ENDDO
    4918              DO  m = 1, surf_lsm_h%ns
    4919                 i = surf_lsm_h%i(m)
    4920                 j = surf_lsm_h%j(m)
    4921                 n                                          = n + 1
    4922                 surf_out(start_index(j,i)+num_surf(j,i)) = surfaces%var_av(n,nv)
    4923                 num_surf(j,i)                              = num_surf(j,i) + 1
    4924              ENDDO
    4925              DO  m = 1, surf_usm_h%ns
    4926                 i = surf_usm_h%i(m)
    4927                 j = surf_usm_h%j(m)
    4928                 n                                          = n + 1
    4929                 surf_out(start_index(j,i)+num_surf(j,i)) = surfaces%var_av(n,nv)
    4930                 num_surf(j,i)                              = num_surf(j,i) + 1
     4812                DO  m = 1, surf_lsm_h(l)%ns
     4813                   i = surf_lsm_h(l)%i(m)
     4814                   j = surf_lsm_h(l)%j(m)
     4815                   n                                          = n + 1
     4816                   surf_out(start_index(j,i)+num_surf(j,i)) = surfaces%var_av(n,nv)
     4817                   num_surf(j,i)                              = num_surf(j,i) + 1
     4818                ENDDO
     4819                DO  m = 1, surf_usm_h(l)%ns
     4820                   i = surf_usm_h(l)%i(m)
     4821                   j = surf_usm_h(l)%j(m)
     4822                   n                                          = n + 1
     4823                   surf_out(start_index(j,i)+num_surf(j,i)) = surfaces%var_av(n,nv)
     4824                   num_surf(j,i)                              = num_surf(j,i) + 1
     4825                ENDDO
    49314826             ENDDO
    49324827
Note: See TracChangeset for help on using the changeset viewer.