Ignore:
Timestamp:
Mar 3, 2015 2:18:16 PM (9 years ago)
Author:
maronga
Message:

land surface model released

File:
1 edited

Legend:

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

    r1360 r1551  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Added support for land surface model and radiation model data.
    2323!
    2424! Former revisions:
     
    9494    USE kinds
    9595
     96    USE land_surface_model_mod,                                                &
     97        ONLY:  c_liq, c_liq_av, c_soil_av, c_veg, c_veg_av, ghf_eb,            &
     98               ghf_eb_av, lai, lai_av, m_liq_eb, m_liq_eb_av, m_soil,          &
     99               m_soil_av, nzb_soil, nzt_soil, qsws_eb, qsws_eb_av,             &
     100               qsws_liq_eb, qsws_liq_eb_av, qsws_soil_eb, qsws_soil_eb_av,     &
     101               qsws_veg_eb, qsws_veg_eb_av, shf_eb, shf_eb_av, t_soil,         &
     102               t_soil_av
     103
    96104    USE particle_attributes,                                                   &
    97105        ONLY:  grid_particles, number_of_particles, particles, prt_count
     106
     107    USE radiation_model_mod,                                                   &
     108        ONLY:  rad_net, rad_net_av, rad_sw_in, rad_sw_in_av
    98109
    99110    IMPLICIT NONE
     
    123134          SELECT CASE ( TRIM( doav(ii) ) )
    124135
     136             CASE ( 'c_liq*' )
     137                IF ( .NOT. ALLOCATED( c_liq_av ) )  THEN
     138                   ALLOCATE( c_liq_av(nysg:nyng,nxlg:nxrg) )
     139                ENDIF
     140                c_liq_av = 0.0_wp
     141
     142             CASE ( 'c_soil*' )
     143                IF ( .NOT. ALLOCATED( c_soil_av ) )  THEN
     144                   ALLOCATE( c_soil_av(nysg:nyng,nxlg:nxrg) )
     145                ENDIF
     146                c_soil_av = 0.0_wp
     147
     148             CASE ( 'c_veg*' )
     149                IF ( .NOT. ALLOCATED( c_veg_av ) )  THEN
     150                   ALLOCATE( c_veg_av(nysg:nyng,nxlg:nxrg) )
     151                ENDIF
     152                c_veg_av = 0.0_wp
     153
    125154             CASE ( 'e' )
    126155                IF ( .NOT. ALLOCATED( e_av ) )  THEN
     
    129158                e_av = 0.0_wp
    130159
     160             CASE ( 'ghf_eb*' )
     161                IF ( .NOT. ALLOCATED( ghf_eb_av ) )  THEN
     162                   ALLOCATE( ghf_eb_av(nysg:nyng,nxlg:nxrg) )
     163                ENDIF
     164                ghf_eb_av = 0.0_wp
     165
     166             CASE ( 'lai*' )
     167                IF ( .NOT. ALLOCATED( lai_av ) )  THEN
     168                   ALLOCATE( lai_av(nysg:nyng,nxlg:nxrg) )
     169                ENDIF
     170                lai_av = 0.0_wp
     171
    131172             CASE ( 'lpt' )
    132173                IF ( .NOT. ALLOCATED( lpt_av ) )  THEN
     
    141182                lwp_av = 0.0_wp
    142183
     184             CASE ( 'm_liq_eb*' )
     185                IF ( .NOT. ALLOCATED( m_liq_eb_av ) )  THEN
     186                   ALLOCATE( m_liq_eb_av(nysg:nyng,nxlg:nxrg) )
     187                ENDIF
     188                m_liq_eb_av = 0.0_wp
     189
     190             CASE ( 'm_soil' )
     191                IF ( .NOT. ALLOCATED( m_soil_av ) )  THEN
     192                   ALLOCATE( m_soil_av(nzb_soil:nzt_soil,nysg:nyng,nxlg:nxrg) )
     193                ENDIF
     194                m_soil_av = 0.0_wp
     195
    143196             CASE ( 'nr' )
    144197                IF ( .NOT. ALLOCATED( nr_av ) )  THEN
     
    231284                qsws_av = 0.0_wp
    232285
     286             CASE ( 'qsws_eb*' )
     287                IF ( .NOT. ALLOCATED( qsws_eb_av ) )  THEN
     288                   ALLOCATE( qsws_eb_av(nysg:nyng,nxlg:nxrg) )
     289                ENDIF
     290                qsws_eb_av = 0.0_wp
     291
     292             CASE ( 'qsws_liq_eb*' )
     293                IF ( .NOT. ALLOCATED( qsws_liq_eb_av ) )  THEN
     294                   ALLOCATE( qsws_liq_eb_av(nysg:nyng,nxlg:nxrg) )
     295                ENDIF
     296                qsws_liq_eb_av = 0.0_wp
     297
     298             CASE ( 'qsws_soil_eb*' )
     299                IF ( .NOT. ALLOCATED( qsws_soil_eb_av ) )  THEN
     300                   ALLOCATE( qsws_soil_eb_av(nysg:nyng,nxlg:nxrg) )
     301                ENDIF
     302                qsws_soil_eb_av = 0.0_wp
     303
     304             CASE ( 'qsws_veg_eb*' )
     305                IF ( .NOT. ALLOCATED( qsws_veg_eb_av ) )  THEN
     306                   ALLOCATE( qsws_veg_eb_av(nysg:nyng,nxlg:nxrg) )
     307                ENDIF
     308                qsws_veg_eb_av = 0.0_wp
     309
    233310             CASE ( 'qv' )
    234311                IF ( .NOT. ALLOCATED( qv_av ) )  THEN
     
    237314                qv_av = 0.0_wp
    238315
     316             CASE ( 'rad_net*' )
     317                IF ( .NOT. ALLOCATED( rad_net_av ) )  THEN
     318                   ALLOCATE( rad_net_av(nysg:nyng,nxlg:nxrg) )
     319                ENDIF
     320                rad_net_av = 0.0_wp
     321
     322             CASE ( 'rad_sw_in*' )
     323                IF ( .NOT. ALLOCATED( rad_sw_in_av ) )  THEN
     324                   ALLOCATE( rad_sw_in_av(nysg:nyng,nxlg:nxrg) )
     325                ENDIF
     326                rad_sw_in_av = 0.0_wp
     327
    239328             CASE ( 'rho' )
    240329                IF ( .NOT. ALLOCATED( rho_av ) )  THEN
     
    261350                shf_av = 0.0_wp
    262351
     352             CASE ( 'shf_eb*' )
     353                IF ( .NOT. ALLOCATED( shf_eb_av ) )  THEN
     354                   ALLOCATE( shf_eb_av(nysg:nyng,nxlg:nxrg) )
     355                ENDIF
     356                shf_eb_av = 0.0_wp
     357
     358             CASE ( 't_soil' )
     359                IF ( .NOT. ALLOCATED( t_soil_av ) )  THEN
     360                   ALLOCATE( t_soil_av(nzb_soil:nzt_soil,nysg:nyng,nxlg:nxrg) )
     361                ENDIF
     362                t_soil_av = 0.0_wp
     363
    263364             CASE ( 't*' )
    264365                IF ( .NOT. ALLOCATED( ts_av ) )  THEN
     
    328429       SELECT CASE ( TRIM( doav(ii) ) )
    329430
     431          CASE ( 'c_liq*' )
     432             DO  i = nxlg, nxrg
     433                DO  j = nysg, nyng
     434                   c_liq_av(j,i) = c_liq_av(j,i)
     435                ENDDO
     436             ENDDO
     437
     438          CASE ( 'c_soil*' )
     439             DO  i = nxlg, nxrg
     440                DO  j = nysg, nyng
     441                   c_soil_av(j,i) = c_soil_av(j,i) + (1.0_wp - c_veg(j,i))
     442                ENDDO
     443             ENDDO
     444
     445          CASE ( 'c_veg*' )
     446             DO  i = nxlg, nxrg
     447                DO  j = nysg, nyng
     448                   c_veg_av(j,i) = c_veg_av(j,i)
     449                ENDDO
     450             ENDDO
     451
    330452          CASE ( 'e' )
    331453             DO  i = nxlg, nxrg
     
    334456                      e_av(k,j,i) = e_av(k,j,i) + e(k,j,i)
    335457                   ENDDO
     458                ENDDO
     459             ENDDO
     460
     461          CASE ( 'ghf_eb*' )
     462             DO  i = nxlg, nxrg
     463                DO  j = nysg, nyng
     464                   ghf_eb_av(j,i) = ghf_eb_av(j,i) + ghf_eb(j,i)
     465                ENDDO
     466             ENDDO
     467
     468          CASE ( 'lai*' )
     469             DO  i = nxlg, nxrg
     470                DO  j = nysg, nyng
     471                   lai_av(j,i) = lai_av(j,i)
    336472                ENDDO
    337473             ENDDO
     
    351487                   lwp_av(j,i) = lwp_av(j,i) + SUM( ql(nzb:nzt,j,i) * &
    352488                                                    dzw(1:nzt+1) )
     489                ENDDO
     490             ENDDO
     491
     492          CASE ( 'm_liq_eb*' )
     493             DO  i = nxlg, nxrg
     494                DO  j = nysg, nyng
     495                   m_liq_eb_av(j,i) = m_liq_eb_av(j,i) + m_liq_eb(j,i)
     496                ENDDO
     497             ENDDO
     498
     499          CASE ( 'm_soil' )
     500             DO  i = nxlg, nxrg
     501                DO  j = nysg, nyng
     502                   DO  k = nzb_soil, nzt_soil
     503                      m_soil_av(k,j,i) = m_soil_av(k,j,i) + m_soil(k,j,i)
     504                   ENDDO
    353505                ENDDO
    354506             ENDDO
     
    518670             ENDDO
    519671
     672          CASE ( 'qsws_eb*' )
     673             DO  i = nxlg, nxrg
     674                DO  j = nysg, nyng
     675                   qsws_eb_av(j,i) = qsws_eb_av(j,i) + qsws_eb(j,i)
     676                ENDDO
     677             ENDDO
     678
     679          CASE ( 'qsws_liq_eb*' )
     680             DO  i = nxlg, nxrg
     681                DO  j = nysg, nyng
     682                   qsws_liq_eb_av(j,i) = qsws_liq_eb_av(j,i) + qsws_liq_eb(j,i)
     683                ENDDO
     684             ENDDO
     685
     686          CASE ( 'qsws_soil_eb*' )
     687             DO  i = nxlg, nxrg
     688                DO  j = nysg, nyng
     689                   qsws_soil_eb_av(j,i) = qsws_soil_eb_av(j,i) + qsws_soil_eb(j,i)
     690                ENDDO
     691             ENDDO
     692
     693          CASE ( 'qsws_veg_eb*' )
     694             DO  i = nxlg, nxrg
     695                DO  j = nysg, nyng
     696                   qsws_veg_eb_av(j,i) = qsws_veg_eb_av(j,i) + qsws_veg_eb(j,i)
     697                ENDDO
     698             ENDDO
     699
    520700          CASE ( 'qv' )
    521701             DO  i = nxlg, nxrg
     
    527707             ENDDO
    528708
     709          CASE ( 'rad_net*' )
     710             DO  i = nxlg, nxrg
     711                DO  j = nysg, nyng
     712                   rad_net_av(j,i) = rad_net_av(j,i) + rad_net(j,i)
     713                ENDDO
     714             ENDDO
     715
     716          CASE ( 'rad_sw_in*' )
     717             DO  i = nxlg, nxrg
     718                DO  j = nysg, nyng
     719                   rad_sw_in_av(j,i) = rad_sw_in_av(j,i) + rad_sw_in(j,i)
     720                ENDDO
     721             ENDDO
     722
    529723          CASE ( 'rho' )
    530724             DO  i = nxlg, nxrg
     
    561755             ENDDO
    562756
     757          CASE ( 'shf_eb*' )
     758             DO  i = nxlg, nxrg
     759                DO  j = nysg, nyng
     760                   shf_eb_av(j,i) = shf_eb_av(j,i) + shf_eb(j,i)
     761                ENDDO
     762             ENDDO
     763
    563764          CASE ( 't*' )
    564765             DO  i = nxlg, nxrg
    565766                DO  j = nysg, nyng
    566767                   ts_av(j,i) = ts_av(j,i) + ts(j,i)
     768                ENDDO
     769             ENDDO
     770
     771          CASE ( 't_soil' )
     772             DO  i = nxlg, nxrg
     773                DO  j = nysg, nyng
     774                   DO  k = nzb_soil, nzt_soil
     775                      t_soil_av(k,j,i) = t_soil_av(k,j,i) + t_soil(k,j,i)
     776                   ENDDO
    567777                ENDDO
    568778             ENDDO
Note: See TracChangeset for help on using the changeset viewer.