Changeset 3173 for palm/trunk/SOURCE/radiation_model_mod.f90
- Timestamp:
- Jul 26, 2018 12:55:23 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/radiation_model_mod.f90
r3172 r3173 28 28 ! ----------------- 29 29 ! $Id$ 30 ! Revise output of surface radiation quantities in case of overhanging 31 ! structures 32 ! 33 ! 3172 2018-07-26 12:06:06Z suehring 30 34 ! Bugfixes: 31 35 ! - temporal work-around for calculation of effective radiative surface … … 7497 7501 CHARACTER (LEN=*) :: variable !< 7498 7502 7503 LOGICAL :: match_lsm !< flag indicating natural-type surface 7504 LOGICAL :: match_usm !< flag indicating urban-type surface 7505 7499 7506 INTEGER(iwp) :: i !< 7500 7507 INTEGER(iwp) :: j !< … … 7597 7604 DO i = nxl, nxr 7598 7605 DO j = nys, nyn 7599 DO m = surf_lsm_h%start_index(j,i), & 7600 surf_lsm_h%end_index(j,i) 7606 match_lsm = surf_lsm_h%start_index(j,i) <= & 7607 surf_lsm_h%end_index(j,i) 7608 match_usm = surf_usm_h%start_index(j,i) <= & 7609 surf_usm_h%end_index(j,i) 7610 7611 IF ( match_lsm .AND. .NOT. match_usm ) THEN 7612 m = surf_lsm_h%end_index(j,i) 7601 7613 rad_net_av(j,i) = rad_net_av(j,i) + & 7602 surf_lsm_h%rad_net(m) 7603 ENDDO 7604 DO m = surf_usm_h%start_index(j,i), & 7605 surf_usm_h%end_index(j,i) 7614 surf_lsm_h%rad_net(m) 7615 ELSEIF ( match_usm ) THEN 7616 m = surf_usm_h%end_index(j,i) 7606 7617 rad_net_av(j,i) = rad_net_av(j,i) + & 7607 7608 END DO7618 surf_usm_h%rad_net(m) 7619 ENDIF 7609 7620 ENDDO 7610 7621 ENDDO … … 7615 7626 DO i = nxl, nxr 7616 7627 DO j = nys, nyn 7617 DO m = surf_lsm_h%start_index(j,i), & 7618 surf_lsm_h%end_index(j,i) 7628 match_lsm = surf_lsm_h%start_index(j,i) <= & 7629 surf_lsm_h%end_index(j,i) 7630 match_usm = surf_usm_h%start_index(j,i) <= & 7631 surf_usm_h%end_index(j,i) 7632 7633 IF ( match_lsm .AND. .NOT. match_usm ) THEN 7634 m = surf_lsm_h%end_index(j,i) 7619 7635 rad_lw_in_xy_av(j,i) = rad_lw_in_xy_av(j,i) + & 7620 surf_lsm_h%rad_lw_in(m) 7621 ENDDO 7622 DO m = surf_usm_h%start_index(j,i), & 7623 surf_usm_h%end_index(j,i) 7636 surf_lsm_h%rad_lw_in(m) 7637 ELSEIF ( match_usm ) THEN 7638 m = surf_usm_h%end_index(j,i) 7624 7639 rad_lw_in_xy_av(j,i) = rad_lw_in_xy_av(j,i) + & 7625 7626 END DO7640 surf_usm_h%rad_lw_in(m) 7641 ENDIF 7627 7642 ENDDO 7628 7643 ENDDO … … 7633 7648 DO i = nxl, nxr 7634 7649 DO j = nys, nyn 7635 DO m = surf_lsm_h%start_index(j,i), & 7636 surf_lsm_h%end_index(j,i) 7650 match_lsm = surf_lsm_h%start_index(j,i) <= & 7651 surf_lsm_h%end_index(j,i) 7652 match_usm = surf_usm_h%start_index(j,i) <= & 7653 surf_usm_h%end_index(j,i) 7654 7655 IF ( match_lsm .AND. .NOT. match_usm ) THEN 7656 m = surf_lsm_h%end_index(j,i) 7637 7657 rad_lw_out_xy_av(j,i) = rad_lw_out_xy_av(j,i) + & 7638 surf_lsm_h%rad_lw_out(m) 7639 ENDDO 7640 DO m = surf_usm_h%start_index(j,i), & 7641 surf_usm_h%end_index(j,i) 7658 surf_lsm_h%rad_lw_out(m) 7659 ELSEIF ( match_usm ) THEN 7660 m = surf_usm_h%end_index(j,i) 7642 7661 rad_lw_out_xy_av(j,i) = rad_lw_out_xy_av(j,i) + & 7643 7644 END DO7662 surf_usm_h%rad_lw_out(m) 7663 ENDIF 7645 7664 ENDDO 7646 7665 ENDDO … … 7651 7670 DO i = nxl, nxr 7652 7671 DO j = nys, nyn 7653 DO m = surf_lsm_h%start_index(j,i), & 7654 surf_lsm_h%end_index(j,i) 7672 match_lsm = surf_lsm_h%start_index(j,i) <= & 7673 surf_lsm_h%end_index(j,i) 7674 match_usm = surf_usm_h%start_index(j,i) <= & 7675 surf_usm_h%end_index(j,i) 7676 7677 IF ( match_lsm .AND. .NOT. match_usm ) THEN 7678 m = surf_lsm_h%end_index(j,i) 7655 7679 rad_sw_in_xy_av(j,i) = rad_sw_in_xy_av(j,i) + & 7656 surf_lsm_h%rad_sw_in(m) 7657 ENDDO 7658 DO m = surf_usm_h%start_index(j,i), & 7659 surf_usm_h%end_index(j,i) 7680 surf_lsm_h%rad_sw_in(m) 7681 ELSEIF ( match_usm ) THEN 7682 m = surf_usm_h%end_index(j,i) 7660 7683 rad_sw_in_xy_av(j,i) = rad_sw_in_xy_av(j,i) + & 7661 7684 surf_usm_h%rad_sw_in(m) 7662 END DO7685 ENDIF 7663 7686 ENDDO 7664 7687 ENDDO … … 7669 7692 DO i = nxl, nxr 7670 7693 DO j = nys, nyn 7671 DO m = surf_lsm_h%start_index(j,i), & 7672 surf_lsm_h%end_index(j,i) 7694 match_lsm = surf_lsm_h%start_index(j,i) <= & 7695 surf_lsm_h%end_index(j,i) 7696 match_usm = surf_usm_h%start_index(j,i) <= & 7697 surf_usm_h%end_index(j,i) 7698 7699 IF ( match_lsm .AND. .NOT. match_usm ) THEN 7700 m = surf_lsm_h%end_index(j,i) 7673 7701 rad_sw_out_xy_av(j,i) = rad_sw_out_xy_av(j,i) + & 7674 surf_lsm_h%rad_sw_out(m) 7675 ENDDO 7676 DO m = surf_usm_h%start_index(j,i), & 7677 surf_usm_h%end_index(j,i) 7702 surf_lsm_h%rad_sw_out(m) 7703 ELSEIF ( match_usm ) THEN 7704 m = surf_usm_h%end_index(j,i) 7678 7705 rad_sw_out_xy_av(j,i) = rad_sw_out_xy_av(j,i) + & 7679 7680 END DO7706 surf_usm_h%rad_sw_out(m) 7707 ENDIF 7681 7708 ENDDO 7682 7709 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.