- Timestamp:
- Jul 30, 2019 11:09:11 AM (5 years ago)
- Location:
- palm/trunk
- Files:
-
- 9 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/biometeorology_mod.f90
r3885 r4126 27 27 ! ----------------- 28 28 ! $Id$ 29 ! renamed vitd3_exposure_av into vitd3_dose, 30 ! renamed uvem_calc_exposure into bio_calculate_uv_exposure 31 ! 32 ! 3885 2019-04-11 11:29:34Z kanani 29 33 ! Changes related to global restructuring of location messages and introduction 30 34 ! of additional debug messages … … 274 278 REAL(wp), DIMENSION(0:71,0:9) :: radiance_array_temp = 0.0_wp !< temporary radiance data 275 279 276 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: vitd3_exposure 277 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: vitd3_ exposure_av!< result variable for summation of vitamin-D weighted exposures280 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: vitd3_exposure !< result variable for instantaneous vitamin-D weighted exposures 281 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: vitd3_dose !< result variable for summation of vitamin-D weighted exposures 278 282 279 283 REAL(wp), DIMENSION(0:35,0:9,0:90) :: radiance_lookup_table = 0.0_wp !< radiance lookup table … … 290 294 ! 291 295 !-- UVEM PUBLIC variables and methods 292 PUBLIC uvem_calc_exposure, uv_exposure296 PUBLIC bio_calculate_uv_exposure, uv_exposure 293 297 294 298 ! … … 386 390 ! 387 391 !-- Calculate UV exposure grid 388 INTERFACE uvem_calc_exposure389 MODULE PROCEDURE uvem_calc_exposure390 END INTERFACE uvem_calc_exposure392 INTERFACE bio_calculate_uv_exposure 393 MODULE PROCEDURE bio_calculate_uv_exposure 394 END INTERFACE bio_calculate_uv_exposure 391 395 392 396 CONTAINS … … 462 466 463 467 CASE ( 'uvem_vitd3dose*' ) 464 IF ( .NOT. ALLOCATED( vitd3_ exposure_av) ) THEN465 ALLOCATE( vitd3_ exposure_av(nysg:nyng,nxlg:nxrg) )468 IF ( .NOT. ALLOCATED( vitd3_dose ) ) THEN 469 ALLOCATE( vitd3_dose(nysg:nyng,nxlg:nxrg) ) 466 470 ENDIF 467 vitd3_ exposure_av= 0.0_wp471 vitd3_dose = 0.0_wp 468 472 469 473 CASE DEFAULT … … 607 611 !-- This is a cumulated dose. No mode == 'average' for this quantity. 608 612 CASE ( 'uvem_vitd3dose*' ) 609 IF ( ALLOCATED( vitd3_ exposure_av) ) THEN613 IF ( ALLOCATED( vitd3_dose ) ) THEN 610 614 DO i = nxlg, nxrg 611 615 DO j = nysg, nyng 612 vitd3_ exposure_av(j,i) = vitd3_exposure_av(j,i) + vitd3_exposure(j,i)616 vitd3_dose(j,i) = vitd3_dose(j,i) + vitd3_exposure(j,i) 613 617 ENDDO 614 618 ENDDO … … 805 809 806 810 CASE ( 'uvem_vitd3*' ) 807 IF ( .NOT. uv_exposure ) THEN808 message_string = 'output of "' // TRIM( var ) // '" requi' // &809 'res a namelist &uvexposure_par'810 CALL message( 'uvem_check_data_output', 'UV0001', 1, 2, 0, 6, 0 )811 ENDIF811 ! IF ( .NOT. uv_exposure ) THEN 812 ! message_string = 'output of "' // TRIM( var ) // '" requi' // & 813 ! 'res a namelist &uvexposure_par' 814 ! CALL message( 'uvem_check_data_output', 'UV0001', 1, 2, 0, 6, 0 ) 815 ! ENDIF 812 816 IF ( k == 0 .OR. data_output(i)(ilen-2:ilen) /= '_xy' ) THEN 813 817 message_string = 'illegal value for data_output: "' // & … … 823 827 824 828 CASE ( 'uvem_vitd3dose*' ) 825 IF ( .NOT. uv_exposure ) THEN826 message_string = 'output of "' // TRIM( var ) // '" requi' // &827 'res a namelist &uvexposure_par'828 CALL message( 'uvem_check_data_output', 'UV0001', 1, 2, 0, 6, 0 )829 ENDIF829 ! IF ( .NOT. uv_exposure ) THEN 830 ! message_string = 'output of "' // TRIM( var ) // '" requi' // & 831 ! 'res a namelist &uvexposure_par' 832 ! CALL message( 'uvem_check_data_output', 'UV0001', 1, 2, 0, 6, 0 ) 833 ! ENDIF 830 834 IF ( k == 0 .OR. data_output(i)(ilen-2:ilen) /= '_xy' ) THEN 831 835 message_string = 'illegal value for data_output: "' // & … … 835 839 ENDIF 836 840 unit = 'IU/av-h' 837 IF ( .NOT. ALLOCATED( vitd3_ exposure_av) ) THEN838 ALLOCATE( vitd3_ exposure_av(nysg:nyng,nxlg:nxrg) )841 IF ( .NOT. ALLOCATED( vitd3_dose ) ) THEN 842 ALLOCATE( vitd3_dose(nysg:nyng,nxlg:nxrg) ) 839 843 ENDIF 840 vitd3_ exposure_av= 0.0_wp844 vitd3_dose = 0.0_wp 841 845 842 846 CASE DEFAULT … … 1030 1034 DO i = nxl, nxr 1031 1035 DO j = nys, nyn 1032 local_pf(i,j,nzb+1) = vitd3_ exposure_av(j,i)1036 local_pf(i,j,nzb+1) = vitd3_dose(j,i) 1033 1037 ENDDO 1034 1038 ENDDO … … 1250 1254 ONLY: message_string 1251 1255 1252 IF ( .NOT. radiation_interactions) THEN1256 IF ( (.NOT. radiation_interactions) .AND. ( thermal_comfort ) ) THEN 1253 1257 message_string = 'The mrt calculation requires ' // & 1254 1258 'enabled radiation_interactions but it ' // & … … 4290 4294 !> Module-specific routine for new module 4291 4295 !---------------------------------------------------------------------------------------------------------------------! 4292 SUBROUTINE uvem_calc_exposure4296 SUBROUTINE bio_calculate_uv_exposure 4293 4297 4294 4298 USE indices, & … … 4439 4443 ENDIF 4440 4444 4441 END SUBROUTINE uvem_calc_exposure4445 END SUBROUTINE bio_calculate_uv_exposure 4442 4446 4443 4447 END MODULE biometeorology_mod -
palm/trunk/SOURCE/time_integration.f90
r4111 r4126 25 25 ! ----------------- 26 26 ! $Id$ 27 ! renamed routine to calculate uv exposure 28 ! 29 ! 4111 2019-07-22 18:16:57Z suehring 27 30 ! advc_flags_1 / advc_flags_2 renamed to advc_flags_m / advc_flags_s 28 31 ! … … 545 548 546 549 USE biometeorology_mod, & 547 ONLY: bio_calculate_thermal_index_maps, thermal_comfort, uvem_calc_exposure, uv_exposure 550 ONLY: bio_calculate_thermal_index_maps, thermal_comfort, bio_calculate_uv_exposure, & 551 uv_exposure 548 552 549 553 USE bulk_cloud_model_mod, & … … 1704 1708 !-- If required, do UV exposure calculations 1705 1709 IF ( uv_exposure ) THEN 1706 CALL uvem_calc_exposure1710 CALL bio_calculate_uv_exposure 1707 1711 ENDIF 1708 1712 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.