- Timestamp:
- Feb 19, 2019 5:02:26 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/radiation_model_mod.f90
r3743 r3754 28 28 ! ----------------- 29 29 ! $Id$ 30 ! (resler, pavelkrc) 31 ! Bugfixes: add further required MRT factors to read/write_svf, 32 ! fix for aggregating view factors to eliminate local noise in reflected 33 ! irradiance at mutually close surfaces (corners, presence of trees) in the 34 ! angular discretization scheme. 35 ! 36 ! 3752 2019-02-19 09:37:22Z resler 30 37 ! added read/write number of MRT factors to the respective routines 31 38 ! … … 6745 6752 CALL quicksort_itarget(itarget,vffrac,ztransp,1,nzn*naz) 6746 6753 ! 6754 !-- For aggregation, we need fractions multiplied by transmissivities 6755 ztransp(:) = vffrac(:) * ztransp(:) 6756 ! 6747 6757 !-- find the first valid position 6748 6758 itarg0 = 1 … … 6758 6768 IF ( itarget(i+1) == itarget(i) ) THEN 6759 6769 vffrac(i+1) = vffrac(i+1) + vffrac(i) 6770 ztransp(i+1) = ztransp(i+1) + ztransp(i) 6760 6771 CYCLE 6761 6772 ENDIF … … 6790 6801 asvf(nsvfl)%isurfs = itarget(i) 6791 6802 asvf(nsvfl)%rsvf = vffrac(i) 6792 asvf(nsvfl)%rtransp = ztransp(i) 6803 asvf(nsvfl)%rtransp = ztransp(i) / vffrac(i) 6793 6804 END DO 6794 6805 … … 7697 7708 ENDIF 7698 7709 7699 IF ( yxdir(2) > =0._wp ) THEN7710 IF ( yxdir(2) > 0._wp ) THEN 7700 7711 bdydim = nx + .5_wp !< east global boundary 7701 7712 crossdist(2) = (bdydim - yxorigin(2)) / yxdir(2) … … 7792 7803 ENDIF 7793 7804 7794 IF ( ABS(distance - nextdist) < eps) EXIT7805 IF ( nextdist + eps >= distance ) EXIT 7795 7806 7796 7807 IF ( rad_angular_discretization .AND. calc_svf ) THEN … … 8283 8294 ! Description: 8284 8295 ! ------------ 8285 !> Soubroutine reads svf and svfsurfdata from saved file8296 !> Reads svf, svfsurf, csf, csfsurf and mrt factors data from saved file 8286 8297 !> SVF means sky view factors and CSF means canopy sink factors 8287 8298 !------------------------------------------------------------------------------! … … 8411 8422 8412 8423 IF ( nmrtbl > 0 ) THEN 8424 READ(88) mrtsky 8425 READ(88) mrtskyt 8426 READ(88) mrtdsit 8427 ENDIF 8428 8429 IF ( nmrtf > 0 ) THEN 8413 8430 ALLOCATE ( mrtf(nmrtf) ) 8414 8431 ALLOCATE ( mrtft(nmrtf) ) … … 8436 8453 ! Description: 8437 8454 ! ------------ 8438 !> Subroutine stores svf, svfsurf, csf and csfsurfdata to a file.8455 !> Subroutine stores svf, svfsurf, csf, csfsurf and mrt data to a file. 8439 8456 !------------------------------------------------------------------------------! 8440 8457 SUBROUTINE radiation_write_svf … … 8469 8486 ENDIF 8470 8487 IF ( nmrtbl > 0 ) THEN 8488 WRITE ( 89 ) mrtsky 8489 WRITE ( 89 ) mrtskyt 8490 WRITE ( 89 ) mrtdsit 8491 ENDIF 8492 IF ( nmrtf > 0 ) THEN 8471 8493 WRITE ( 89 ) mrtf 8472 8494 WRITE ( 89 ) mrtft … … 8483 8505 ENDDO 8484 8506 END SUBROUTINE radiation_write_svf 8507 8485 8508 8486 8509 !------------------------------------------------------------------------------!
Note: See TracChangeset
for help on using the changeset viewer.