Ignore:
Timestamp:
Jun 20, 2017 9:51:42 AM (4 years ago)
Author:
schwenkel
Message:

implementation of new bulk microphysics scheme

File:
1 edited

Legend:

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

    r2270 r2292  
    2525! -----------------
    2626! $Id$
     27! Implementation of new microphysic scheme: cloud_scheme = 'morrison'
     28! includes two more prognostic equations for cloud drop concentration (nc) 
     29! and cloud water content (qc).
     30!
     31! 2270 2017-06-09 12:18:47Z maronga
    2732! Parameters removed/added due to changes in the LSM
    2833!
     
    104109       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qs        !< scaling parameter humidity
    105110       REAL(wp), DIMENSION(:), ALLOCATABLE ::  ss        !< scaling parameter passive scalar
     111       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qcs       !< scaling parameter qc
     112       REAL(wp), DIMENSION(:), ALLOCATABLE ::  ncs       !< scaling parameter nc
    106113       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qrs       !< scaling parameter qr
    107114       REAL(wp), DIMENSION(:), ALLOCATABLE ::  nrs       !< scaling parameter nr
     
    124131       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qsws      !< surface flux latent heat
    125132       REAL(wp), DIMENSION(:), ALLOCATABLE ::  ssws      !< surface flux passive scalar
     133       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qcsws     !< surface flux qc
     134       REAL(wp), DIMENSION(:), ALLOCATABLE ::  ncsws     !< surface flux nc
    126135       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qrsws     !< surface flux qr
    127136       REAL(wp), DIMENSION(:), ALLOCATABLE ::  nrsws     !< surface flux nr
     
    719728!
    720729!--       
     730       IF ( cloud_physics .AND. microphysics_morrison)  THEN
     731          ALLOCATE ( surfaces%qcs(1:surfaces%ns)   )
     732          ALLOCATE ( surfaces%ncs(1:surfaces%ns)   )
     733          ALLOCATE ( surfaces%qcsws(1:surfaces%ns) )
     734          ALLOCATE ( surfaces%ncsws(1:surfaces%ns) )
     735       ENDIF
     736!
     737!--       
    721738       IF ( cloud_physics .AND. microphysics_seifert)  THEN
    722739          ALLOCATE ( surfaces%qrs(1:surfaces%ns)   )
     
    775792          ALLOCATE ( surfaces%ssws(1:surfaces%ns) )
    776793       ENDIF
     794!
     795!--       
     796       IF ( cloud_physics .AND. microphysics_morrison)  THEN
     797          ALLOCATE ( surfaces%qcsws(1:surfaces%ns) )
     798          ALLOCATE ( surfaces%ncsws(1:surfaces%ns) )
     799       ENDIF
    777800!
    778801!--       
     
    877900          ALLOCATE ( surfaces%ssws(1:surfaces%ns) )
    878901       ENDIF
     902
     903       IF ( cloud_physics .AND. microphysics_seifert)  THEN
     904          ALLOCATE ( surfaces%qcs(1:surfaces%ns)   )
     905          ALLOCATE ( surfaces%ncs(1:surfaces%ns)   )
     906          ALLOCATE ( surfaces%qcsws(1:surfaces%ns) )
     907          ALLOCATE ( surfaces%ncsws(1:surfaces%ns) )
     908       ENDIF
    879909
    880910       IF ( cloud_physics .AND. microphysics_seifert)  THEN
     
    13081338             IF ( humidity )  THEN
    13091339                surf%qs(num_h)   = 0.0_wp
     1340                IF ( cloud_physics .AND. microphysics_morrison)  THEN
     1341                   surf%qcs(num_h) = 0.0_wp
     1342                   surf%ncs(num_h) = 0.0_wp
     1343   
     1344                   surf%qcsws(num_h) = 0.0_wp
     1345                   surf%ncsws(num_h) = 0.0_wp
     1346
     1347                ENDIF
    13101348                IF ( cloud_physics .AND. microphysics_seifert)  THEN
    13111349                   surf%qrs(num_h) = 0.0_wp
     
    14471485             IF ( humidity )  THEN
    14481486             surf%qsws = 0.0_wp
     1487                IF ( cloud_physics  .AND.  microphysics_morrison ) THEN
     1488                   surf%ncsws = 0.0_wp
     1489                   surf%qcsws = 0.0_wp
     1490                ENDIF
    14491491                IF ( cloud_physics  .AND.  microphysics_seifert ) THEN
    14501492                   surf%nrsws = 0.0_wp
     
    15681610!
    15691611!--             Following wall fluxes are assumed to be zero
     1612                IF ( cloud_physics .AND. microphysics_morrison)  THEN
     1613                   surf%qcs(num_v) = 0.0_wp
     1614                   surf%ncs(num_v) = 0.0_wp
     1615   
     1616                   surf%qcsws(num_v) = 0.0_wp
     1617                   surf%ncsws(num_v) = 0.0_wp
     1618                ENDIF
    15701619                IF ( cloud_physics .AND. microphysics_seifert)  THEN
    15711620                   surf%qrs(num_v) = 0.0_wp
     
    16561705                   IF ( ALLOCATED( surf_def_h(l)%ss ) )                        &
    16571706                      surf_h(l)%ss(mm(l))      = surf_def_h(l)%ss(m)
     1707                   IF ( ALLOCATED( surf_def_h(l)%qcs ) )                       &
     1708                      surf_h(l)%qcs(mm(l))     = surf_def_h(l)%qcs(m)
     1709                   IF ( ALLOCATED( surf_def_h(l)%ncs ) )                       &
     1710                      surf_h(l)%ncs(mm(l))     = surf_def_h(l)%ncs(m)
    16581711                   IF ( ALLOCATED( surf_def_h(l)%qrs ) )                       &
    16591712                      surf_h(l)%qrs(mm(l))     = surf_def_h(l)%qrs(m)
     
    16741727                   IF ( ALLOCATED( surf_def_h(l)%ssws ) )                      &
    16751728                      surf_h(l)%qsws(mm(l))    = surf_def_h(l)%ssws(m)
     1729                   IF ( ALLOCATED( surf_def_h(l)%ncsws ) )                     &
     1730                      surf_h(l)%ncsws(mm(l))   = surf_def_h(l)%ncsws(m)
    16761731                   IF ( ALLOCATED( surf_def_h(l)%nrsws ) )                     &
    16771732                      surf_h(l)%nrsws(mm(l))   = surf_def_h(l)%nrsws(m)
     
    16931748                      IF ( ALLOCATED( surf_lsm_h%ss ) )                        &
    16941749                         surf_h(0)%ss(mm(0))      = surf_lsm_h%ss(m)
     1750                      IF ( ALLOCATED( surf_lsm_h%qcs ) )                       &
     1751                         surf_h(0)%qcs(mm(0))     = surf_lsm_h%qcs(m)
     1752                      IF ( ALLOCATED( surf_lsm_h%ncs ) )                       &
     1753                         surf_h(0)%ncs(mm(0))     = surf_lsm_h%ncs(m)
    16951754                      IF ( ALLOCATED( surf_lsm_h%qrs ) )                       &
    16961755                         surf_h(0)%qrs(mm(0))     = surf_lsm_h%qrs(m)
     
    17111770                      IF ( ALLOCATED( surf_lsm_h%ssws ) )                      &
    17121771                         surf_h(0)%qsws(mm(0))    = surf_lsm_h%ssws(m)
     1772                      IF ( ALLOCATED( surf_lsm_h%ncsws ) )                     &
     1773                         surf_h(0)%ncsws(mm(0))   = surf_lsm_h%ncsws(m)
    17131774                      IF ( ALLOCATED( surf_lsm_h%nrsws ) )                     &
    17141775                         surf_h(0)%nrsws(mm(0))   = surf_lsm_h%nrsws(m)
     
    17301791                      IF ( ALLOCATED( surf_usm_h%ss ) )                        &
    17311792                         surf_h(0)%ss(mm(0))      = surf_usm_h%ss(m)
     1793                      IF ( ALLOCATED( surf_usm_h%qcs ) )                       &
     1794                         surf_h(0)%qcs(mm(0))     = surf_usm_h%qcs(m)
     1795                      IF ( ALLOCATED( surf_usm_h%ncs ) )                       &
     1796                         surf_h(0)%ncs(mm(0))     = surf_usm_h%ncs(m)
    17321797                      IF ( ALLOCATED( surf_usm_h%qrs ) )                       &
    17331798                         surf_h(0)%qrs(mm(0))     = surf_usm_h%qrs(m)
     
    17481813                      IF ( ALLOCATED( surf_usm_h%ssws ) )                      &
    17491814                         surf_h(0)%qsws(mm(0))    = surf_usm_h%ssws(m)
     1815                      IF ( ALLOCATED( surf_usm_h%ncsws ) )                     &
     1816                         surf_h(0)%ncsws(mm(0))   = surf_usm_h%ncsws(m)
    17501817                      IF ( ALLOCATED( surf_usm_h%nrsws ) )                     &
    17511818                         surf_h(0)%nrsws(mm(0))   = surf_usm_h%nrsws(m)
     
    17911858                   IF ( ALLOCATED( surf_def_v(l)%ss ) )                        &
    17921859                      surf_v(l)%ss(mm(l))      = surf_def_v(l)%ss(m)
     1860                   IF ( ALLOCATED( surf_def_v(l)%qcs ) )                       &
     1861                      surf_v(l)%qcs(mm(l))     = surf_def_v(l)%qcs(m)
     1862                   IF ( ALLOCATED( surf_def_v(l)%ncs ) )                       &
     1863                      surf_v(l)%ncs(mm(l))     = surf_def_v(l)%ncs(m)
    17931864                   IF ( ALLOCATED( surf_def_v(l)%qrs ) )                       &
    17941865                      surf_v(l)%qrs(mm(l))     = surf_def_v(l)%qrs(m)
     
    18051876                   IF ( ALLOCATED( surf_def_v(l)%ssws ) )                      &
    18061877                      surf_v(l)%qsws(mm(l))    = surf_def_v(l)%ssws(m)
     1878                   IF ( ALLOCATED( surf_def_v(l)%ncsws ) )                     &
     1879                      surf_v(l)%ncsws(mm(l))   = surf_def_v(l)%ncsws(m)
    18071880                   IF ( ALLOCATED( surf_def_v(l)%nrsws ) )                     &
    18081881                      surf_v(l)%nrsws(mm(l))   = surf_def_v(l)%nrsws(m)
     
    18291902                   IF ( ALLOCATED( surf_lsm_v(l)%ss ) )                        &
    18301903                      surf_v(l)%ss(mm(l))      = surf_lsm_v(l)%ss(m)
     1904                   IF ( ALLOCATED( surf_lsm_v(l)%qcs ) )                       &
     1905                      surf_v(l)%qcs(mm(l))     = surf_lsm_v(l)%qcs(m)
     1906                   IF ( ALLOCATED( surf_lsm_v(l)%ncs ) )                       &
     1907                      surf_v(l)%ncs(mm(l))     = surf_lsm_v(l)%ncs(m)
    18311908                   IF ( ALLOCATED( surf_lsm_v(l)%qrs ) )                       &
    18321909                      surf_v(l)%qrs(mm(l))     = surf_lsm_v(l)%qrs(m)
     
    18471924                   IF ( ALLOCATED( surf_lsm_v(l)%ssws ) )                      &
    18481925                      surf_v(l)%qsws(mm(l))    = surf_lsm_v(l)%ssws(m)
     1926                   IF ( ALLOCATED( surf_lsm_v(l)%ncsws ) )                     &
     1927                      surf_v(l)%ncsws(mm(l))   = surf_lsm_v(l)%ncsws(m)
    18491928                   IF ( ALLOCATED( surf_lsm_v(l)%nrsws ) )                     &
    18501929                      surf_v(l)%nrsws(mm(l))   = surf_lsm_v(l)%nrsws(m)
     
    18711950                   IF ( ALLOCATED( surf_usm_v(l)%ss ) )                        &
    18721951                      surf_v(l)%ss(mm(l))      = surf_usm_v(l)%ss(m)
     1952                   IF ( ALLOCATED( surf_usm_v(l)%qcs ) )                       &
     1953                      surf_v(l)%qcs(mm(l))     = surf_usm_v(l)%qcs(m)
     1954                   IF ( ALLOCATED( surf_usm_v(l)%ncs ) )                       &
     1955                      surf_v(l)%ncs(mm(l))     = surf_usm_v(l)%ncs(m)
    18731956                   IF ( ALLOCATED( surf_usm_v(l)%qrs ) )                       &
    18741957                      surf_v(l)%qrs(mm(l))     = surf_usm_v(l)%qrs(m)
     
    18891972                   IF ( ALLOCATED( surf_usm_v(l)%ssws ) )                      &
    18901973                      surf_v(l)%qsws(mm(l))    = surf_usm_v(l)%ssws(m)
     1974                   IF ( ALLOCATED( surf_usm_v(l)%ncsws ) )                     &
     1975                      surf_v(l)%ncsws(mm(l))   = surf_usm_v(l)%ncsws(m)
    18911976                   IF ( ALLOCATED( surf_usm_v(l)%nrsws ) )                     &
    18921977                      surf_v(l)%nrsws(mm(l))   = surf_usm_v(l)%nrsws(m)
     
    19462031             WRITE ( 14 )  surf_h(l)%ss
    19472032          ENDIF
     2033          WRITE ( 14 )  'surf_h(' // dum // ')%qcs                 '
     2034          IF ( ALLOCATED ( surf_h(l)%qcs ) )  THEN 
     2035             WRITE ( 14 )  surf_h(l)%qcs
     2036          ENDIF
     2037          WRITE ( 14 )  'surf_h(' // dum // ')%ncs                 ' 
     2038          IF ( ALLOCATED ( surf_h(l)%ncs ) )  THEN
     2039             WRITE ( 14 )  surf_h(l)%ncs
     2040          ENDIF
    19482041          WRITE ( 14 )  'surf_h(' // dum // ')%qrs                 '
    19492042          IF ( ALLOCATED ( surf_h(l)%qrs ) )  THEN 
     
    19812074          IF ( ALLOCATED ( surf_h(l)%ssws ) )  THEN
    19822075             WRITE ( 14 )  surf_h(l)%ssws
     2076          ENDIF
     2077          WRITE ( 14 )  'surf_h(' // dum // ')%qcsws               ' 
     2078          IF ( ALLOCATED ( surf_h(l)%qcsws ) )  THEN
     2079             WRITE ( 14 )  surf_h(l)%qcsws
     2080          ENDIF
     2081          WRITE ( 14 )  'surf_h(' // dum // ')%ncsws               ' 
     2082          IF ( ALLOCATED ( surf_h(l)%ncsws ) )  THEN
     2083             WRITE ( 14 )  surf_h(l)%ncsws
    19832084          ENDIF
    19842085          WRITE ( 14 )  'surf_h(' // dum // ')%qrsws               ' 
     
    20212122             WRITE ( 14 )  surf_v(l)%ss
    20222123          ENDIF
     2124          WRITE ( 14 )  'surf_v(' // dum // ')%qcs                 ' 
     2125          IF ( ALLOCATED ( surf_v(l)%qcs ) )  THEN
     2126             WRITE ( 14 )  surf_v(l)%qcs
     2127          ENDIF
     2128          WRITE ( 14 )  'surf_v(' // dum // ')%ncs                 '
     2129          IF ( ALLOCATED ( surf_v(l)%ncs ) )  THEN
     2130             WRITE ( 14 )  surf_v(l)%ncs
     2131          ENDIF
    20232132          WRITE ( 14 )  'surf_v(' // dum // ')%qrs                 ' 
    20242133          IF ( ALLOCATED ( surf_v(l)%qrs ) )  THEN
     
    20482157          IF ( ALLOCATED ( surf_v(l)%ssws ) )  THEN
    20492158             WRITE ( 14 )  surf_v(l)%ssws
     2159          ENDIF
     2160          WRITE ( 14 )  'surf_v(' // dum // ')%qcsws               ' 
     2161          IF ( ALLOCATED ( surf_v(l)%qcsws ) )  THEN
     2162             WRITE ( 14 )  surf_v(l)%qcsws
     2163          ENDIF
     2164          WRITE ( 14 )  'surf_v(' // dum // ')%ncsws               ' 
     2165          IF ( ALLOCATED ( surf_v(l)%ncsws ) )  THEN
     2166             WRITE ( 14 )  surf_v(l)%ncsws
    20502167          ENDIF
    20512168          WRITE ( 14 )  'surf_v(' // dum // ')%qrsws               ' 
     
    22402357                      IF ( ALLOCATED( surf_h(0)%ss )  .AND.  kk == 1 )         &
    22412358                         READ ( 13 )  surf_h(0)%ss
     2359                   CASE ( 'surf_h(0)%qcs' )         
     2360                      IF ( ALLOCATED( surf_h(0)%qcs )  .AND.  kk == 1 )        &
     2361                         READ ( 13 )  surf_h(0)%qcs
     2362                   CASE ( 'surf_h(0)%ncs' )         
     2363                      IF ( ALLOCATED( surf_h(0)%ncs )  .AND.  kk == 1 )        &
     2364                         READ ( 13 )  surf_h(0)%ncs
    22422365                   CASE ( 'surf_h(0)%qrs' )         
    22432366                      IF ( ALLOCATED( surf_h(0)%qrs )  .AND.  kk == 1 )        &
     
    22672390                      IF ( ALLOCATED( surf_h(0)%ssws )  .AND.  kk == 1 )       &
    22682391                         READ ( 13 )  surf_h(0)%ssws
     2392                   CASE ( 'surf_h(0)%qcsws' )         
     2393                      IF ( ALLOCATED( surf_h(0)%qcsws )  .AND.  kk == 1 )      &
     2394                         READ ( 13 )  surf_h(0)%qcsws
     2395                   CASE ( 'surf_h(0)%ncsws' )         
     2396                      IF ( ALLOCATED( surf_h(0)%ncsws )  .AND.  kk == 1 )      &
     2397                         READ ( 13 )  surf_h(0)%ncsws
    22692398                   CASE ( 'surf_h(0)%qrsws' )         
    22702399                      IF ( ALLOCATED( surf_h(0)%qrsws )  .AND.  kk == 1 )      &
     
    22962425                      IF ( ALLOCATED( surf_h(1)%ss )  .AND.  kk == 1 )         &
    22972426                         READ ( 13 )  surf_h(1)%ss
     2427                   CASE ( 'surf_h(1)%qcs' )         
     2428                      IF ( ALLOCATED( surf_h(1)%qcs )  .AND.  kk == 1 )        &
     2429                         READ ( 13 )  surf_h(1)%qcs
     2430                   CASE ( 'surf_h(1)%ncs' )         
     2431                      IF ( ALLOCATED( surf_h(1)%ncs )  .AND.  kk == 1 )        &
     2432                         READ ( 13 )  surf_h(1)%ncs
    22982433                   CASE ( 'surf_h(1)%qrs' )         
    22992434                      IF ( ALLOCATED( surf_h(1)%qrs )  .AND.  kk == 1 )        &
     
    23232458                      IF ( ALLOCATED( surf_h(1)%ssws )  .AND.  kk == 1 )       &
    23242459                         READ ( 13 )  surf_h(1)%ssws
     2460                   CASE ( 'surf_h(1)%qcsws' )         
     2461                      IF ( ALLOCATED( surf_h(1)%qcsws )  .AND.  kk == 1 )      &
     2462                         READ ( 13 )  surf_h(1)%qcsws
     2463                   CASE ( 'surf_h(1)%ncsws' )         
     2464                      IF ( ALLOCATED( surf_h(1)%ncsws )  .AND.  kk == 1 )      &
     2465                         READ ( 13 )  surf_h(1)%ncsws
    23252466                   CASE ( 'surf_h(1)%qrsws' )         
    23262467                      IF ( ALLOCATED( surf_h(1)%qrsws )  .AND.  kk == 1 )      &
     
    23522493                      IF ( ALLOCATED( surf_h(2)%ss )  .AND.  kk == 1 )         &
    23532494                         READ ( 13 )  surf_h(2)%ss
     2495                   CASE ( 'surf_h(2)%qcs' )         
     2496                      IF ( ALLOCATED( surf_h(2)%qcs )  .AND.  kk == 1 )        &
     2497                         READ ( 13 )  surf_h(2)%qcs
     2498                   CASE ( 'surf_h(2)%ncs' )         
     2499                      IF ( ALLOCATED( surf_h(2)%ncs )  .AND.  kk == 1 )        &
     2500                         READ ( 13 )  surf_h(2)%ncs
    23542501                   CASE ( 'surf_h(2)%qrs' )         
    23552502                      IF ( ALLOCATED( surf_h(2)%qrs )  .AND.  kk == 1 )        &
     
    23792526                      IF ( ALLOCATED( surf_h(2)%ssws )  .AND.  kk == 1 )       &
    23802527                         READ ( 13 )  surf_h(2)%ssws
     2528                   CASE ( 'surf_h(2)%qcsws' )         
     2529                      IF ( ALLOCATED( surf_h(2)%qcsws )  .AND.  kk == 1 )      &
     2530                         READ ( 13 )  surf_h(2)%qcsws
     2531                   CASE ( 'surf_h(2)%ncsws' )         
     2532                      IF ( ALLOCATED( surf_h(2)%ncsws )  .AND.  kk == 1 )      &
     2533                         READ ( 13 )  surf_h(2)%ncsws
    23812534                   CASE ( 'surf_h(2)%qrsws' )         
    23822535                      IF ( ALLOCATED( surf_h(2)%qrsws )  .AND.  kk == 1 )      &
     
    24102563                      IF ( ALLOCATED( surf_v(0)%ss )  .AND.  kk == 1 )         &
    24112564                         READ ( 13 )  surf_v(0)%ss
     2565                   CASE ( 'surf_v(0)%qcs' )         
     2566                      IF ( ALLOCATED( surf_v(0)%qcs )  .AND.  kk == 1 )        &
     2567                         READ ( 13 )  surf_v(0)%qcs
     2568                   CASE ( 'surf_v(0)%ncs' )         
     2569                      IF ( ALLOCATED( surf_v(0)%ncs )  .AND.  kk == 1 )        &
     2570                         READ ( 13 )  surf_v(0)%ncs
    24122571                   CASE ( 'surf_v(0)%qrs' )         
    24132572                      IF ( ALLOCATED( surf_v(0)%qrs )  .AND.  kk == 1 )        &
     
    24312590                      IF ( ALLOCATED( surf_v(0)%ssws )  .AND.  kk == 1 )       &
    24322591                         READ ( 13 )  surf_v(0)%ssws
     2592                   CASE ( 'surf_v(0)%qcsws' )         
     2593                      IF ( ALLOCATED( surf_v(0)%qcsws )  .AND.  kk == 1 )      &
     2594                         READ ( 13 )  surf_v(0)%qcsws
     2595                   CASE ( 'surf_v(0)%ncsws' )         
     2596                      IF ( ALLOCATED( surf_v(0)%ncsws )  .AND.  kk == 1 )      &
     2597                         READ ( 13 )  surf_v(0)%ncsws
    24332598                   CASE ( 'surf_v(0)%qrsws' )         
    24342599                      IF ( ALLOCATED( surf_v(0)%qrsws )  .AND.  kk == 1 )      &
     
    24692634                      IF ( ALLOCATED( surf_v(1)%ss )  .AND.  kk == 1 )         &
    24702635                         READ ( 13 )  surf_v(1)%ss
     2636                   CASE ( 'surf_v(1)%qcs' )         
     2637                      IF ( ALLOCATED( surf_v(1)%qcs )  .AND.  kk == 1 )        &
     2638                         READ ( 13 )  surf_v(1)%qcs
     2639                   CASE ( 'surf_v(1)%ncs' )         
     2640                      IF ( ALLOCATED( surf_v(1)%ncs )  .AND.  kk == 1 )        &
     2641                         READ ( 13 )  surf_v(1)%ncs
    24712642                   CASE ( 'surf_v(1)%qrs' )         
    24722643                      IF ( ALLOCATED( surf_v(1)%qrs )  .AND.  kk == 1 )        &
     
    24902661                      IF ( ALLOCATED( surf_v(1)%ssws )  .AND.  kk == 1 )       &
    24912662                         READ ( 13 )  surf_v(1)%ssws
     2663                   CASE ( 'surf_v(1)%qcsws' )         
     2664                      IF ( ALLOCATED( surf_v(1)%qcsws )  .AND.  kk == 1 )      &
     2665                         READ ( 13 )  surf_v(1)%qcsws
     2666                   CASE ( 'surf_v(1)%ncsws' )         
     2667                      IF ( ALLOCATED( surf_v(1)%ncsws )  .AND.  kk == 1 )      &
     2668                         READ ( 13 )  surf_v(1)%ncsws
    24922669                   CASE ( 'surf_v(1)%qrsws' )         
    24932670                      IF ( ALLOCATED( surf_v(1)%qrsws )  .AND.  kk == 1 )      &
     
    25282705                      IF ( ALLOCATED( surf_v(2)%ss )  .AND.  kk == 1 )         &
    25292706                         READ ( 13 )  surf_v(2)%ss
     2707                   CASE ( 'surf_v(2)%qcs' )         
     2708                      IF ( ALLOCATED( surf_v(2)%qcs )  .AND.  kk == 1 )        &
     2709                         READ ( 13 )  surf_v(2)%qcs
     2710                   CASE ( 'surf_v(2)%ncs' )         
     2711                      IF ( ALLOCATED( surf_v(2)%ncs )  .AND.  kk == 1 )        &
     2712                         READ ( 13 )  surf_v(2)%ncs
    25302713                   CASE ( 'surf_v(2)%qrs' )         
    25312714                      IF ( ALLOCATED( surf_v(2)%qrs )  .AND.  kk == 1 )        &
     
    25492732                      IF ( ALLOCATED( surf_v(2)%ssws )  .AND.  kk == 1 )       &
    25502733                         READ ( 13 )  surf_v(2)%ssws
     2734                   CASE ( 'surf_v(2)%qcsws' )         
     2735                      IF ( ALLOCATED( surf_v(2)%qcsws )  .AND.  kk == 1 )      &
     2736                         READ ( 13 )  surf_v(2)%qcsws
     2737                   CASE ( 'surf_v(2)%ncsws' )         
     2738                      IF ( ALLOCATED( surf_v(2)%ncsws )  .AND.  kk == 1 )      &
     2739                         READ ( 13 )  surf_v(2)%ncsws
    25512740                   CASE ( 'surf_v(2)%qrsws' )         
    25522741                      IF ( ALLOCATED( surf_v(2)%qrsws )  .AND.  kk == 1 )      &
     
    25872776                      IF ( ALLOCATED( surf_v(3)%ss )  .AND.  kk == 1 )         &
    25882777                         READ ( 13 )  surf_v(3)%ss
     2778                   CASE ( 'surf_v(3)%qcs' )         
     2779                      IF ( ALLOCATED( surf_v(3)%qcs )  .AND.  kk == 1 )        &
     2780                         READ ( 13 )  surf_v(3)%qcs
     2781                   CASE ( 'surf_v(3)%ncs' )         
     2782                      IF ( ALLOCATED( surf_v(3)%ncs )  .AND.  kk == 1 )        &
     2783                         READ ( 13 )  surf_v(3)%ncs
    25892784                   CASE ( 'surf_v(3)%qrs' )         
    25902785                      IF ( ALLOCATED( surf_v(3)%qrs )  .AND.  kk == 1 )        &
     
    26082803                      IF ( ALLOCATED( surf_v(3)%ssws )  .AND.  kk == 1 )       &
    26092804                         READ ( 13 )  surf_v(3)%ssws
     2805                   CASE ( 'surf_v(3)%qcsws' )         
     2806                      IF ( ALLOCATED( surf_v(3)%qcsws )  .AND.  kk == 1 )      &
     2807                         READ ( 13 )  surf_v(3)%qcsws
     2808                   CASE ( 'surf_v(3)%ncsws' )         
     2809                      IF ( ALLOCATED( surf_v(3)%ncsws )  .AND.  kk == 1 )      &
     2810                         READ ( 13 )  surf_v(3)%ncsws
    26102811                   CASE ( 'surf_v(3)%qrsws' )         
    26112812                      IF ( ALLOCATED( surf_v(3)%qrsws )  .AND.  kk == 1 )      &
     
    28143015             ENDIF
    28153016
     3017             IF ( SCAN( TRIM( field_chr ), '%qcs' ) /= 0 )  THEN
     3018                IF ( ALLOCATED( surf_target%qcs )  .AND.                       &
     3019                     ALLOCATED( surf_file%qcs   ) )                            &
     3020                  surf_target%qcs(m_target) = surf_file%qcs(m_file)
     3021             ENDIF
     3022
     3023             IF ( SCAN( TRIM( field_chr ), '%qcsws' ) /= 0 )  THEN
     3024                IF ( ALLOCATED( surf_target%qcsws )  .AND.                     &
     3025                     ALLOCATED( surf_file%qcsws   ) )                          &
     3026                   surf_target%qcsws(m_target) = surf_file%qcsws(m_file)
     3027             ENDIF
     3028
     3029             IF ( SCAN( TRIM( field_chr ), '%ncs' ) /= 0 )  THEN
     3030                IF ( ALLOCATED( surf_target%ncs )  .AND.                       &
     3031                     ALLOCATED( surf_file%ncs   ) )                            &
     3032                   surf_target%ncs(m_target) = surf_file%ncs(m_file)
     3033             ENDIF
     3034
     3035             IF ( SCAN( TRIM( field_chr ), '%ncsws' ) /= 0 )  THEN
     3036                IF ( ALLOCATED( surf_target%ncsws )  .AND.                     &
     3037                     ALLOCATED( surf_file%ncsws   ) )                          &
     3038                   surf_target%ncsws(m_target) = surf_file%ncsws(m_file)
     3039             ENDIF
     3040
    28163041             IF ( SCAN( TRIM( field_chr ), '%qrs' ) /= 0 )  THEN
    28173042                IF ( ALLOCATED( surf_target%qrs )  .AND.                       &
Note: See TracChangeset for help on using the changeset viewer.