Ignore:
Timestamp:
May 9, 2018 8:42:38 AM (6 years ago)
Author:
maronga
Message:

series of bugfixes

File:
1 edited

Legend:

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

    r3004 r3014  
    2828! -----------------
    2929! $Id$
     30! Introduced plant canopy height similar to urban canopy height to limit
     31! the memory requirement to allocate lad.
     32! Deactivated automatic setting of minimum raytracing distance.
     33!
     34! 3004 2018-04-27 12:33:25Z Giersch
    3035! Further allocation checks implemented (averaged data will be assigned to fill
    3136! values if no allocation happened so far)
     
    329334
    330335    USE cloud_parameters,                                                      &
    331         ONLY:  cp, l_d_cp, r_d, rho_l
     336        ONLY:  cp, l_d_cp, l_v, r_d, rho_l
    332337
    333338    USE constants,                                                             &
     
    372377
    373378    USE plant_canopy_model_mod,                                                &
    374         ONLY:  pc_heating_rate, lad_s
     379        ONLY:  lad_s, pc_heating_rate, pc_transpiration_rate
    375380
    376381    USE pegrid
     
    646651!-- Parameters of urban and land surface models
    647652    INTEGER(iwp)                                   ::  nzu                                !< number of layers of urban surface (will be calculated)
     653    INTEGER(iwp)                                   ::  nzp                                !< number of layers of plant canopy (will be calculated)
    648654    INTEGER(iwp)                                   ::  nzub,nzut                          !< bottom and top layer of urban surface (will be calculated)
     655    INTEGER(iwp)                                   ::  nzpt                               !< top layer of plant canopy (will be calculated)
    649656!-- parameters of urban and land surface models
    650657    INTEGER(iwp), PARAMETER                        ::  nzut_free = 3                      !< number of free layers above top of of topography
     
    43244331     REAL(wp), DIMENSION(3)            :: sunorig_grid       !< grid squashed solar direction unit vector (zyx)
    43254332     REAL(wp), DIMENSION(0:nsurf_type) :: costheta           !< direct irradiance factor of solar angle
    4326      REAL(wp), DIMENSION(nzub:nzut)    :: pchf_prep          !< precalculated factor for canopy temp tendency
     4333     REAL(wp), DIMENSION(nzub:nzut)    :: pchf_prep          !< precalculated factor for canopy temperature tendency
     4334     REAL(wp), DIMENSION(nzub:nzut)    :: pctf_prep          !< precalculated factor for canopy transpiration tendency
    43274335     REAL(wp), PARAMETER               :: alpha = 0._wp      !< grid rotation (TODO: add to namelist or remove)
    43284336     REAL(wp)                          :: pc_box_area, pc_abs_frac, pc_abs_eff
     
    43454353     REAL(wp)                          :: area_surf          !< total area of surfaces in all processor
    43464354
     4355
     4356
    43474357#if ! defined( __nopointer )
    43484358     IF ( plant_canopy )  THEN
    43494359         pchf_prep(:) = r_d * (hyp(nzub:nzut) / 100000.0_wp)**0.286_wp &
    43504360                     / (cp * hyp(nzub:nzut) * dx*dy*dz) !< equals to 1 / (rho * c_p * Vbox * T)
     4361         pctf_prep(:) = r_d * (hyp(nzub:nzut) / 100000.0_wp)**0.286_wp &
     4362                     / (l_v * hyp(nzub:nzut) * dx*dy*dz)
    43514363     ENDIF
    43524364#endif
     
    46194631!--  push heat flux absorbed by plant canopy to respective 3D arrays
    46204632     IF ( npcbl > 0 )  THEN
    4621          pc_heating_rate(:,:,:) = 0._wp
     4633         pc_heating_rate(:,:,:) = 0.0_wp
     4634         pc_transpiration_rate(:,:,:) = 0.0_wp
    46224635         DO ipcgb = 1, npcbl
    46234636                 
     
    46304643             pc_heating_rate(kk, j, i) = (pcbinsw(ipcgb) + pcbinlw(ipcgb)) &
    46314644                 * pchf_prep(k) * pt(k, j, i) !-- = dT/dt
     4645
     4646!             pc_transpiration_rate(kk,j,i) = 0.75_wp* (pcbinsw(ipcgb) + pcbinlw(ipcgb)) &
     4647!                 * pctf_prep(k) * pt(k, j, i) !-- = dq/dt
     4648
    46324649         ENDDO
    46334650     ENDIF
     
    49955012       INTEGER(iwp) :: k_topo     !< vertical index indicating topography top for given (j,i)
    49965013       INTEGER(iwp) :: k_topo2    !< vertical index indicating topography top for given (j,i)
    4997        INTEGER(iwp) :: nzubl, nzutl, isurf, ipcgb
     5014       INTEGER(iwp) :: nzptl, nzubl, nzutl, isurf, ipcgb
    49985015       INTEGER(iwp) :: procid
    49995016       REAL(wp)     :: mrl
     
    50405057
    50415058           nzutl = MAX( nzutl, MAXVAL( pct ) )
     5059           nzptl = MAXVAL( pct )
    50425060!--        code of plant canopy model uses parameter pch_index
    50435061!--        we need to setup it here to right value
     
    50585076       CALL MPI_AllReduce(nzubl, nzub, 1, MPI_INTEGER, MPI_MIN, comm2d, ierr )
    50595077       CALL MPI_AllReduce(nzutl, nzut, 1, MPI_INTEGER, MPI_MAX, comm2d, ierr )
     5078       CALL MPI_AllReduce(nzptl, nzpt, 1, MPI_INTEGER, MPI_MAX, comm2d, ierr )
    50605079#else
    50615080       nzub = nzubl
    50625081       nzut = nzutl
     5082       nzpt = nzptl
    50635083#endif
    50645084!
    5065 !--    global number of urban layers
     5085!--    global number of urban and plant layers
    50665086       nzu = nzut - nzub + 1
     5087       nzp = nzpt - nzub + 1
    50675088!
    50685089!--    check max_raytracing_dist relative to urban surface layer height
    5069        mrl = 2.0_wp * nzu * dz
    5070        IF ( max_raytracing_dist <= mrl ) THEN
    5071           IF ( max_raytracing_dist /= -999.0_wp ) THEN
    5072 !--          max_raytracing_dist too low
    5073              WRITE(message_string, '(a,f6.1)') 'Max_raytracing_dist too low, ' &
    5074                    // 'override to value ', mrl
    5075              CALL message('radiation_interaction_init', 'PA0521', 0, 0, -1, 6, 0)
    5076           ENDIF
    5077           max_raytracing_dist = mrl
    5078        ENDIF
     5090!        mrl = 2.0_wp * nzu * dz
     5091!        IF ( max_raytracing_dist <= mrl ) THEN
     5092!           IF ( max_raytracing_dist /= -999.0_wp ) THEN
     5093! !--          max_raytracing_dist too low
     5094!              WRITE(message_string, '(a,f6.1)') 'Max_raytracing_dist too low, ' &
     5095!                    // 'override to value ', mrl
     5096!              CALL message('radiation_interaction_init', 'PA0521', 0, 0, -1, 6, 0)
     5097!           ENDIF
     5098!           max_raytracing_dist = mrl
     5099!        ENDIF
    50795100!
    50805101!--    allocate urban surfaces grid
     
    51035124       IF ( npcbl > 0 )  THEN
    51045125           ALLOCATE( pcbl(iz:ix, 1:npcbl) )
    5105            ALLOCATE( gridpcbl(nzub:nzut,nys:nyn,nxl:nxr) )
     5126           ALLOCATE( gridpcbl(nzub:nzpt,nys:nyn,nxl:nxr) )
    51065127           pcbl = -1
    51075128           gridpcbl(:,:,:) = 0
     
    53885409        IF ( plant_canopy )  THEN
    53895410            ALLOCATE( plantt(0:(nx+1)*(ny+1)-1) )
    5390             maxboxesg = nx + ny + nzu + 1
     5411            maxboxesg = nx + ny + nzp + 1
    53915412            max_track_len = nx + ny + 1
    53925413!--         temporary arrays storing values for csf calculation during raytracing
     
    54165437!--             optimization of memory should be done
    54175438!--             Argument X of function STORAGE_SIZE(X) needs arbitrary REAL(wp) value, set to 1.0_wp for now
    5418                 size_lad_rma = STORAGE_SIZE(1.0_wp)/8*nnx*nny*nzu
     5439                size_lad_rma = STORAGE_SIZE(1.0_wp)/8*nnx*nny*nzp
    54195440                CALL MPI_Win_allocate(size_lad_rma, STORAGE_SIZE(1.0_wp)/8, minfo, comm2d, &
    54205441                                        lad_s_rma_p, win_lad, ierr)
    5421                 CALL c_f_pointer(lad_s_rma_p, lad_s_rma, (/ nzu, nny, nnx /))
     5442                CALL c_f_pointer(lad_s_rma_p, lad_s_rma, (/ nzp, nny, nnx /))
    54225443                sub_lad(nzub:, nys:, nxl:) => lad_s_rma(:,:,:)
    54235444            ELSE
    5424                 ALLOCATE(sub_lad(nzub:nzut, nys:nyn, nxl:nxr))
     5445                ALLOCATE(sub_lad(nzub:nzpt, nys:nyn, nxl:nxr))
    54255446            ENDIF
    54265447#else
    54275448            plantt = RESHAPE( pct(nys:nyn,nxl:nxr), (/(nx+1)*(ny+1)/) )
    5428             ALLOCATE(sub_lad(nzub:nzut, nys:nyn, nxl:nxr))
     5449            ALLOCATE(sub_lad(nzub:nzpt, nys:nyn, nxl:nxr))
    54295450#endif
    54305451            plantt_max = MAXVAL(plantt)
     
    54375458                    k = get_topography_top_index_ji( j, i, 's' )
    54385459
    5439                     sub_lad(k:nzut, j, i) = lad_s(0:nzut-k, j, i)
     5460                    sub_lad(k:nzpt, j, i) = lad_s(0:nzpt-k, j, i)
    54405461                ENDDO
    54415462            ENDDO
     
    54465467                CALL MPI_Win_lock_all(0, win_lad, ierr)
    54475468            ELSE
    5448                 ALLOCATE( sub_lad_g(0:(nx+1)*(ny+1)*nzu-1) )
    5449                 CALL MPI_AllGather( sub_lad, nnx*nny*nzu, MPI_REAL, &
    5450                                     sub_lad_g, nnx*nny*nzu, MPI_REAL, comm2d, ierr )
     5469                ALLOCATE( sub_lad_g(0:(nx+1)*(ny+1)*nzp-1) )
     5470                CALL MPI_AllGather( sub_lad, nnx*nny*nzp, MPI_REAL, &
     5471                                    sub_lad_g, nnx*nny*nzp, MPI_REAL, comm2d, ierr )
    54515472            ENDIF
    54525473#endif
     
    61426163#if defined( __parallel )
    61436164                        lad_ip(ncsb) = ip
    6144                         lad_disp(ncsb) = (box(3)-px*nnx)*(nny*nzu) + (box(2)-py*nny)*nzu + box(1)-nzub
     6165                        lad_disp(ncsb) = (box(3)-px*nnx)*(nny*nzp) + (box(2)-py*nny)*nzp + box(1)-nzub
    61456166#endif
    61466167                    ENDIF
     
    61856206                    lad_s_target = lad_s_ray(i)
    61866207                ELSE
    6187                     lad_s_target = sub_lad_g(lad_ip(i)*nnx*nny*nzu + lad_disp(i))
     6208                    lad_s_target = sub_lad_g(lad_ip(i)*nnx*nny*nzp + lad_disp(i))
    61886209                ENDIF
    61896210#else
     
    63876408               ig = ip*nnx*nny + (rt2_track(2,i)-px*nnx)*nny + rt2_track(1,i)-py*nny
    63886409               IF ( plantt(ig) <= nzterr(ig) )  CYCLE
    6389                wdisp = (rt2_track(2,i)-px*nnx)*(nny*nzu) + (rt2_track(1,i)-py*nny)*nzu + nzterr(ig)+1-nzub
     6410               wdisp = (rt2_track(2,i)-px*nnx)*(nny*nzp) + (rt2_track(1,i)-py*nny)*nzp + nzterr(ig)+1-nzub
    63906411               wcount = plantt(ig)-nzterr(ig)
    63916412               ! TODO send request ASAP - even during raytracing
     
    64116432               py = rt2_track(1,i)/nny
    64126433               ip = px*pdims(2)+py
    6413                ig = ip*nnx*nny*nzu + (rt2_track(2,i)-px*nnx)*(nny*nzu) + (rt2_track(1,i)-py*nny)*nzu
     6434               ig = ip*nnx*nny*nzp + (rt2_track(2,i)-px*nnx)*(nny*nzp) + (rt2_track(1,i)-py*nny)*nzp
    64146435               rt2_track_lad(nzub:plantt_max, i) = sub_lad_g(ig:ig+nly-1)
    64156436            ENDDO
     
    64296450         !--Assert that we have space allocated for CSFs
    64306451         !--
    6431          maxboxes = (ntrack + MAX(origin(1) - nzub, nzut - origin(1))) * SIZE(zdirs, 1)
     6452         maxboxes = (ntrack + MAX(origin(1) - nzub, nzpt - origin(1))) * SIZE(zdirs, 1)
    64326453         IF ( ncsfl + maxboxes > ncsfla )  THEN
    64336454!--         use this code for growing by fixed exponential increments (equivalent to case where ncsfl always increases by 1)
     
    68146835              ENDIF       
    68156836!
    6816 !--           Close binary file                
     6837!--           Close binary file               
    68176838              CALL close_file( fsvf )
    68186839               
     
    76177638!------------------------------------------------------------------------------!
    76187639 SUBROUTINE radiation_data_output_2d( av, variable, found, grid, mode,         &
    7619                                       local_pf, two_d )
     7640                                      local_pf, two_d, nzb_do, nzt_do )
    76207641 
    76217642    USE indices
     
    76357656    INTEGER(iwp) ::  k  !<
    76367657    INTEGER(iwp) ::  m  !< index of surface element at grid point (j,i)
     7658    INTEGER(iwp) ::  nzb_do   !<
     7659    INTEGER(iwp) ::  nzt_do   !<
    76377660
    76387661    LOGICAL      ::  found !<
     
    76417664    REAL(wp) ::  fill_value = -999.0_wp    !< value for the _FillValue attribute
    76427665
    7643     REAL(wp), DIMENSION(nxl:nxr,nys:nyn,nzb:nzt+1) ::  local_pf !<
     7666    REAL(wp), DIMENSION(nxl:nxr,nys:nyn,nzb_do:nzt_do) ::  local_pf !<
    76447667
    76457668    found = .TRUE.
     
    76857708             DO  i = nxl, nxr
    76867709                DO  j = nys, nyn
    7687                    DO  k = nzb, nzt+1
     7710                   DO  k = nzb_do, nzt_do
    76887711                      local_pf(i,j,k) = rad_lw_in(k,j,i)
    76897712                   ENDDO
     
    76977720             DO  i = nxl, nxr
    76987721                DO  j = nys, nyn
    7699                    DO  k = nzb, nzt+1
     7722                   DO  k = nzb_do, nzt_do
    77007723                      local_pf(i,j,k) = rad_lw_in_av(k,j,i)
    77017724                   ENDDO
     
    77097732             DO  i = nxl, nxr
    77107733                DO  j = nys, nyn
    7711                    DO  k = nzb, nzt+1
     7734                   DO  k = nzb_do, nzt_do
    77127735                      local_pf(i,j,k) = rad_lw_out(k,j,i)
    77137736                   ENDDO
     
    77217744             DO  i = nxl, nxr
    77227745                DO  j = nys, nyn
    7723                    DO  k = nzb, nzt+1
     7746                   DO  k = nzb_do, nzt_do
    77247747                      local_pf(i,j,k) = rad_lw_out_av(k,j,i)
    77257748                   ENDDO
     
    77337756             DO  i = nxl, nxr
    77347757                DO  j = nys, nyn
    7735                    DO  k = nzb, nzt+1
     7758                   DO  k = nzb_do, nzt_do
    77367759                      local_pf(i,j,k) = rad_lw_cs_hr(k,j,i)
    77377760                   ENDDO
     
    77457768             DO  i = nxl, nxr
    77467769                DO  j = nys, nyn
    7747                    DO  k = nzb, nzt+1
     7770                   DO  k = nzb_do, nzt_do
    77487771                      local_pf(i,j,k) = rad_lw_cs_hr_av(k,j,i)
    77497772                   ENDDO
     
    77577780             DO  i = nxl, nxr
    77587781                DO  j = nys, nyn
    7759                    DO  k = nzb, nzt+1
     7782                   DO  k = nzb_do, nzt_do
    77607783                      local_pf(i,j,k) = rad_lw_hr(k,j,i)
    77617784                   ENDDO
     
    77697792             DO  i = nxl, nxr
    77707793                DO  j = nys, nyn
    7771                    DO  k = nzb, nzt+1
     7794                   DO  k = nzb_do, nzt_do
    77727795                      local_pf(i,j,k) = rad_lw_hr_av(k,j,i)
    77737796                   ENDDO
     
    77817804             DO  i = nxl, nxr
    77827805                DO  j = nys, nyn
    7783                    DO  k = nzb, nzt+1
     7806                   DO  k = nzb_do, nzt_do
    77847807                      local_pf(i,j,k) = rad_sw_in(k,j,i)
    77857808                   ENDDO
     
    77937816             DO  i = nxl, nxr
    77947817                DO  j = nys, nyn
    7795                    DO  k = nzb, nzt+1
     7818                   DO  k = nzb_do, nzt_do
    77967819                      local_pf(i,j,k) = rad_sw_in_av(k,j,i)
    77977820                   ENDDO
     
    78057828             DO  i = nxl, nxr
    78067829                DO  j = nys, nyn
    7807                    DO  k = nzb, nzt+1
     7830                   DO  k = nzb_do, nzt_do
    78087831                      local_pf(i,j,k) = rad_sw_out(k,j,i)
    78097832                   ENDDO
     
    78297852             DO  i = nxl, nxr
    78307853                DO  j = nys, nyn
    7831                    DO  k = nzb, nzt+1
     7854                   DO  k = nzb_do, nzt_do
    78327855                      local_pf(i,j,k) = rad_sw_cs_hr(k,j,i)
    78337856                   ENDDO
     
    78417864             DO  i = nxl, nxr
    78427865                DO  j = nys, nyn
    7843                    DO  k = nzb, nzt+1
     7866                   DO  k = nzb_do, nzt_do
    78447867                      local_pf(i,j,k) = rad_sw_cs_hr_av(k,j,i)
    78457868                   ENDDO
     
    78537876             DO  i = nxl, nxr
    78547877                DO  j = nys, nyn
    7855                    DO  k = nzb, nzt+1
     7878                   DO  k = nzb_do, nzt_do
    78567879                      local_pf(i,j,k) = rad_sw_hr(k,j,i)
    78577880                   ENDDO
     
    78657888             DO  i = nxl, nxr
    78667889                DO  j = nys, nyn
    7867                    DO  k = nzb, nzt+1
     7890                   DO  k = nzb_do, nzt_do
    78687891                      local_pf(i,j,k) = rad_sw_hr_av(k,j,i)
    78697892                   ENDDO
     
    78887911!> Subroutine defining 3D output variables
    78897912!------------------------------------------------------------------------------!
    7890  SUBROUTINE radiation_data_output_3d( av, variable, found, local_pf )
     7913 SUBROUTINE radiation_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do )
    78917914 
    78927915
     
    79047927    INTEGER(iwp) ::  j     !<
    79057928    INTEGER(iwp) ::  k     !<
     7929    INTEGER(iwp) ::  nzb_do   !<
     7930    INTEGER(iwp) ::  nzt_do   !<
    79067931
    79077932    LOGICAL      ::  found !<
     
    79097934    REAL(wp) ::  fill_value = -999.0_wp    !< value for the _FillValue attribute
    79107935
    7911     REAL(sp), DIMENSION(nxl:nxr,nys:nyn,nzb:nzt+1) ::  local_pf !<
     7936    REAL(sp), DIMENSION(nxl:nxr,nys:nyn,nzb_do:nzt_do) ::  local_pf !<
    79127937
    79137938
     
    79217946            DO  i = nxl, nxr
    79227947               DO  j = nys, nyn
    7923                   DO  k = nzb, nzt+1
     7948                  DO  k = nzb_do, nzt_do
    79247949                     local_pf(i,j,k) = rad_sw_in(k,j,i)
    79257950                  ENDDO
     
    79337958            DO  i = nxl, nxr
    79347959               DO  j = nys, nyn
    7935                   DO  k = nzb, nzt+1
     7960                  DO  k = nzb_do, nzt_do
    79367961                     local_pf(i,j,k) = rad_sw_in_av(k,j,i)
    79377962                  ENDDO
     
    79447969            DO  i = nxl, nxr
    79457970               DO  j = nys, nyn
    7946                   DO  k = nzb, nzt+1
     7971                  DO  k = nzb_do, nzt_do
    79477972                     local_pf(i,j,k) = rad_sw_out(k,j,i)
    79487973                  ENDDO
     
    79567981            DO  i = nxl, nxr
    79577982               DO  j = nys, nyn
    7958                   DO  k = nzb, nzt+1
     7983                  DO  k = nzb_do, nzt_do
    79597984                     local_pf(i,j,k) = rad_sw_out_av(k,j,i)
    79607985                  ENDDO
     
    79677992            DO  i = nxl, nxr
    79687993               DO  j = nys, nyn
    7969                   DO  k = nzb, nzt+1
     7994                  DO  k = nzb_do, nzt_do
    79707995                     local_pf(i,j,k) = rad_sw_cs_hr(k,j,i)
    79717996                  ENDDO
     
    79798004            DO  i = nxl, nxr
    79808005               DO  j = nys, nyn
    7981                   DO  k = nzb, nzt+1
     8006                  DO  k = nzb_do, nzt_do
    79828007                     local_pf(i,j,k) = rad_sw_cs_hr_av(k,j,i)
    79838008                  ENDDO
     
    79908015            DO  i = nxl, nxr
    79918016               DO  j = nys, nyn
    7992                   DO  k = nzb, nzt+1
     8017                  DO  k = nzb_do, nzt_do
    79938018                     local_pf(i,j,k) = rad_sw_hr(k,j,i)
    79948019                  ENDDO
     
    80028027            DO  i = nxl, nxr
    80038028               DO  j = nys, nyn
    8004                   DO  k = nzb, nzt+1
     8029                  DO  k = nzb_do, nzt_do
    80058030                     local_pf(i,j,k) = rad_sw_hr_av(k,j,i)
    80068031                  ENDDO
     
    80138038            DO  i = nxl, nxr
    80148039               DO  j = nys, nyn
    8015                   DO  k = nzb, nzt+1
     8040                  DO  k = nzb_do, nzt_do
    80168041                     local_pf(i,j,k) = rad_lw_in(k,j,i)
    80178042                  ENDDO
     
    80258050            DO  i = nxl, nxr
    80268051               DO  j = nys, nyn
    8027                   DO  k = nzb, nzt+1
     8052                  DO  k = nzb_do, nzt_do
    80288053                     local_pf(i,j,k) = rad_lw_in_av(k,j,i)
    80298054                  ENDDO
     
    80368061            DO  i = nxl, nxr
    80378062               DO  j = nys, nyn
    8038                   DO  k = nzb, nzt+1
     8063                  DO  k = nzb_do, nzt_do
    80398064                     local_pf(i,j,k) = rad_lw_out(k,j,i)
    80408065                  ENDDO
     
    80488073            DO  i = nxl, nxr
    80498074               DO  j = nys, nyn
    8050                   DO  k = nzb, nzt+1
     8075                  DO  k = nzb_do, nzt_do
    80518076                     local_pf(i,j,k) = rad_lw_out_av(k,j,i)
    80528077                  ENDDO
     
    80598084            DO  i = nxl, nxr
    80608085               DO  j = nys, nyn
    8061                   DO  k = nzb, nzt+1
     8086                  DO  k = nzb_do, nzt_do
    80628087                     local_pf(i,j,k) = rad_lw_cs_hr(k,j,i)
    80638088                  ENDDO
     
    80718096            DO  i = nxl, nxr
    80728097               DO  j = nys, nyn
    8073                   DO  k = nzb, nzt+1
     8098                  DO  k = nzb_do, nzt_do
    80748099                     local_pf(i,j,k) = rad_lw_cs_hr_av(k,j,i)
    80758100                  ENDDO
     
    80828107            DO  i = nxl, nxr
    80838108               DO  j = nys, nyn
    8084                   DO  k = nzb, nzt+1
     8109                  DO  k = nzb_do, nzt_do
    80858110                     local_pf(i,j,k) = rad_lw_hr(k,j,i)
    80868111                  ENDDO
     
    80948119            DO  i = nxl, nxr
    80958120               DO  j = nys, nyn
    8096                   DO  k = nzb, nzt+1
     8121                  DO  k = nzb_do, nzt_do
    80978122                     local_pf(i,j,k) = rad_lw_hr_av(k,j,i)
    80988123                  ENDDO
Note: See TracChangeset for help on using the changeset viewer.