- Timestamp:
- Feb 22, 2016 3:49:32 PM (9 years ago)
- Location:
- palm/trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/LIB/rrtmg/install_rrtmg
r1614 r1757 53 53 # 54 54 55 compiler_name=" ftn"56 fopts="- em -s real64 -O3 -hnoomp -hfp3 -hdynamic"57 fopts_trace="- eD -em -g -R b -K trap=fp -O0 -hnoomp -fpic"55 compiler_name="mpif90" 56 fopts="-fltconsistency -O3 -cpp -r8 -nbs -convert little_endian -I /muksoft/packages/netcdf/4_intel/include" 57 fopts_trace="-fpe0 -C -check nooutput_conversion -debug -traceback -g -w -xT -O0 -ftz -fno-alias -no-prec-div -no-prec-sqrt -ip -nbs -convert little_endian -diag-disable 8290,8291 -I /muksoft/packages/netcdf/4_intel/include" 58 58 install_path="$HOME/rrtmg" 59 59 compile_static=false 60 compile_shared= true61 compile_static_debug= false60 compile_shared=false 61 compile_static_debug=true 62 62 compile_shared_debug=true 63 63 -
palm/trunk/SCRIPTS/mrun
r1756 r1757 22 22 # Current revisions: 23 23 # ------------------ 24 # 24 # Bugfix: use random number when PBS system is not working properly at lccray* 25 25 # 26 26 # Former revisions: -
palm/trunk/SCRIPTS/palm_wd_files/wd.ui
r1613 r1757 622 622 <hints> 623 623 <hint type="sourcelabel"> 624 <x>4 05</x>625 <y>1 35</y>624 <x>491</x> 625 <y>172</y> 626 626 </hint> 627 627 <hint type="destinationlabel"> … … 638 638 <hints> 639 639 <hint type="sourcelabel"> 640 <x> 554</x>641 <y>1 42</y>640 <x>615</x> 641 <y>172</y> 642 642 </hint> 643 643 <hint type="destinationlabel"> … … 654 654 <hints> 655 655 <hint type="sourcelabel"> 656 <x>7 10</x>657 <y>1 40</y>656 <x>739</x> 657 <y>172</y> 658 658 </hint> 659 659 <hint type="destinationlabel"> 660 660 <x>656</x> 661 661 <y>150</y> 662 </hint> 663 </hints> 664 </connection> 665 <connection> 666 <sender>actionOptions</sender> 667 <signal>triggered()</signal> 668 <receiver>MainWindow</receiver> 669 <slot>Options()</slot> 670 <hints> 671 <hint type="sourcelabel"> 672 <x>-1</x> 673 <y>-1</y> 674 </hint> 675 <hint type="destinationlabel"> 676 <x>398</x> 677 <y>98</y> 662 678 </hint> 663 679 </hints> -
palm/trunk/SOURCE/check_parameters.f90
r1746 r1757 4284 4284 ! 4285 4285 !-- Check nudging and large scale forcing from external file 4286 IF ( nudging .AND. ( .NOT. large_scale_forcing ) ) THEN4287 message_string = 'Nudging requires large_scale_forcing = .T.. &'// &4288 'Surface fluxes and geostrophic wind should be &'// &4289 'prescribed in file LSF_DATA'4290 CALL message( 'check_parameters', 'PA0374', 1, 2, 0, 6, 0 )4291 ENDIF4286 !!! IF ( nudging .AND. ( .NOT. large_scale_forcing ) ) THEN 4287 !!! message_string = 'Nudging requires large_scale_forcing = .T.. &'// & 4288 !!! 'Surface fluxes and geostrophic wind should be &'// & 4289 !!! 'prescribed in file LSF_DATA' 4290 !!! CALL message( 'check_parameters', 'PA0374', 1, 2, 0, 6, 0 ) 4291 !! ENDIF 4292 4292 4293 4293 IF ( large_scale_forcing .AND. ( bc_lr /= 'cyclic' .OR. & -
palm/trunk/SOURCE/land_surface_model.f90
r1710 r1757 19 19 ! Current revisions: 20 20 ! ----------------- 21 ! 21 ! Bugfix: set tm_soil_m to zero after allocation. Added parameter 22 ! unscheduled_radiation_calls to control calls of the radiation model based on 23 ! the skin temperature change during one time step (preliminary version). Set 24 ! qsws_soil_eb to zero at model start (previously set to qsws_eb). Removed MAX 25 ! function as it cannot be vectorized. 22 26 ! 23 27 ! Former revisions: … … 132 136 USE radiation_model_mod, & 133 137 ONLY: force_radiation_call, radiation_scheme, rad_net, rad_sw_in, & 134 rad_lw_out, rad_lw_out_change_0, sigma_sb 138 rad_lw_out, rad_lw_out_change_0, sigma_sb, & 139 unscheduled_radiation_calls 135 140 136 141 #if defined ( __rrtmg ) … … 320 325 321 326 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: & 322 tt_soil_m, & !< t_soil storage array 323 tm_soil_m, & !< m_soil storage array 327 tt_soil_m, & !< t_soil storage array 328 tm_soil_m, & !< m_soil storage array 324 329 root_fr !< root fraction (sum=1) 325 330 … … 668 673 tt_surface_m = 0.0_wp 669 674 tt_soil_m = 0.0_wp 675 tm_soil_m = 0.0_wp 670 676 tm_liq_eb_m = 0.0_wp 671 677 c_liq = 0.0_wp … … 681 687 682 688 qsws_liq_eb = 0.0_wp 683 qsws_soil_eb = qsws_eb689 qsws_soil_eb = 0.0_wp 684 690 qsws_veg_eb = 0.0_wp 685 691 … … 1235 1241 1236 1242 ! 1237 !-- In case of fast changes in the skin temperature, it is required to 1238 !-- update the radiative fluxes in order to keep the solution stable 1239 IF ( ABS( t_surface_p(j,i) - t_surface(j,i) ) > 0.2_wp ) THEN 1243 !-- In case of fast changes in the skin temperature, it is possible to 1244 !-- update the radiative fluxes independently from the prescribed 1245 !-- radiation call frequency. This effectively prevents oscillations, 1246 !-- especially when setting skip_time_do_radiation /= 0. The threshold 1247 !-- value of 0.2 used here is just a first guess. This method should be 1248 !-- revised in the future as tests have shown that the threshold is 1249 !-- often reached, when no oscillations would occur (causes immense 1250 !-- computing time for the radiation code). 1251 IF ( ABS( t_surface_p(j,i) - t_surface(j,i) ) > 0.2_wp .AND. & 1252 unscheduled_radiation_calls ) THEN 1240 1253 force_radiation_call_l = .TRUE. 1241 1254 ENDIF … … 1388 1401 ! 1389 1402 !-- Make a logical OR for all processes. Force radiation call if at 1390 !-- least one processor 1391 IF ( intermediate_timestep_count == intermediate_timestep_count_max-1 )&1392 THEN1403 !-- least one processor reached the threshold change in skin temperature 1404 IF ( unscheduled_radiation_calls .AND. intermediate_timestep_count & 1405 == intermediate_timestep_count_max-1 ) THEN 1393 1406 #if defined( __parallel ) 1394 1407 IF ( collective_wait ) CALL MPI_BARRIER( comm2d, ierr ) … … 1628 1641 ! 1629 1642 !-- Account for dry soils (find a better solution here!) 1630 m_soil_p(:,j,i) = MAX(m_soil_p(:,j,i),0.0_wp) 1643 DO k = nzb_soil, nzt_soil 1644 IF ( m_soil_p(k,j,i) < 0.0_wp ) m_soil_p(k,j,i) = 0.0_wp 1645 ENDDO 1646 1647 1648 1631 1649 1632 1650 ! -
palm/trunk/SOURCE/nudging.f90
r1683 r1757 19 19 ! Current revisions: 20 20 ! ------------------ 21 ! 21 ! Bugfix: allow for using higher vertical resolution in nudging file than grid 22 ! spacing in the LES model 22 23 ! 23 24 ! Former revisions: … … 208 209 209 210 DO k = nzb, nzt+1 210 IF ( highheight < zu(k) ) THEN211 DO WHILE ( highheight < zu(k) ) 211 212 lowheight = highheight 212 213 lowtnudge = hightnudge … … 229 230 CALL message( 'nudging', 'PA0364', 1, 2, 0, 6, 0 ) 230 231 ENDIF 231 END IF232 ENDDO 232 233 233 234 ! -
palm/trunk/SOURCE/package_parin.f90
r1692 r1757 19 19 ! Current revisions: 20 20 ! ----------------- 21 ! 21 ! Added parameter unscheduled_radiation_calls 22 22 ! 23 23 ! Former revisions: … … 161 161 emissivity, lambda, lw_radiation, net_radiation, radiation, & 162 162 radiation_scheme, skip_time_do_radiation, sw_radiation, & 163 time_utc_init 163 time_utc_init, unscheduled_radiation_calls 164 164 165 165 … … 242 242 lambda, lw_radiation, net_radiation, & 243 243 radiation_scheme, skip_time_do_radiation, & 244 sw_radiation, time_utc_init 244 sw_radiation, time_utc_init, & 245 unscheduled_radiation_calls 245 246 246 247 NAMELIST /spectra_par/ averaging_interval_sp, comp_spectra_level, & -
palm/trunk/SOURCE/radiation_model.f90
r1710 r1757 19 19 ! Current revisions: 20 20 ! ----------------- 21 ! 21 ! Added parameter unscheduled_radiation_calls. Bugfix: interpolation of sounding 22 ! profiles for pressure and temperature above the LES domain. 22 23 ! 23 24 ! Former revisions: … … 164 165 165 166 166 LOGICAL :: constant_albedo = .FALSE., & !< flag parameter indicating whether the albedo may change depending on zenith 167 force_radiation_call = .FALSE., & !< flag parameter for unscheduled radiation calls 168 lw_radiation = .TRUE., & !< flag parameter indicing whether longwave radiation shall be calculated 169 radiation = .FALSE., & !< flag parameter indicating whether the radiation model is used 170 sun_up = .TRUE., & !< flag parameter indicating whether the sun is up or down 171 sw_radiation = .TRUE. !< flag parameter indicing whether shortwave radiation shall be calculated 167 LOGICAL :: unscheduled_radiation_calls = .TRUE., & !< flag parameter indicating whether additional calls of the radiation code are allowed 168 constant_albedo = .FALSE., & !< flag parameter indicating whether the albedo may change depending on zenith 169 force_radiation_call = .FALSE., & !< flag parameter for unscheduled radiation calls 170 lw_radiation = .TRUE., & !< flag parameter indicating whether longwave radiation shall be calculated 171 radiation = .FALSE., & !< flag parameter indicating whether the radiation model is used 172 sun_up = .TRUE., & !< flag parameter indicating whether the sun is up or down 173 sw_radiation = .TRUE. !< flag parameter indicing whether shortwave radiation shall be calculated 172 174 173 175 … … 372 374 rad_sw_out_av, rad_sw_cs_hr, rad_sw_cs_hr_av, rad_sw_hr, & 373 375 rad_sw_hr_av, sigma_sb, skip_time_do_radiation, sw_radiation, & 374 time_radiation, time_utc_init 376 time_radiation, time_utc_init, unscheduled_radiation_calls 375 377 376 378 … … 1229 1231 q_snd = 0.0_wp 1230 1232 1231 hyp_snd(nzt+2:nzt_rad) = hyp_snd_tmp(nz_snd_start:nz_snd_end) 1232 t_snd(nzt+2:nzt_rad) = t_snd_tmp(nz_snd_start:nz_snd_end) 1233 1234 DEALLOCATE ( hyp_snd_tmp ) 1235 DEALLOCATE ( t_snd_tmp ) 1233 hyp_snd(nzt+2:nzt_rad) = hyp_snd_tmp(nz_snd_start+1:nz_snd_end) 1234 t_snd(nzt+2:nzt_rad) = t_snd_tmp(nz_snd_start+1:nz_snd_end) 1236 1235 1237 1236 nc_stat = NF90_CLOSE( id ) -
palm/trunk/SOURCE/read_3d_binary.f90
r1710 r1757 19 19 ! Current revisions: 20 20 ! ----------------- 21 ! 21 ! Bugfix in allocation of radiative heating rates 22 22 ! 23 23 ! Former revisions: … … 898 898 899 899 CASE ( 'rad_lw_cs_hr_av' ) 900 IF ( .NOT. ALLOCATED( rad_lw_ out_av ) ) THEN900 IF ( .NOT. ALLOCATED( rad_lw_cs_hr_av ) ) THEN 901 901 ALLOCATE( rad_lw_cs_hr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 902 902 ENDIF … … 962 962 963 963 CASE ( 'rad_sw_cs_hr_av' ) 964 IF ( .NOT. ALLOCATED( rad_sw_ out_av ) ) THEN964 IF ( .NOT. ALLOCATED( rad_sw_cs_hr_av ) ) THEN 965 965 ALLOCATE( rad_sw_cs_hr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 966 966 ENDIF -
palm/trunk/SOURCE/surface_layer_fluxes.f90
r1750 r1757 19 19 ! Current revisions: 20 20 ! ------------------ 21 ! 21 ! Minor fixes. 22 22 ! 23 23 ! Former revisions: … … 358 358 359 359 ! 360 !-- Invert array and switch sign, then calculate Obukhov length and bulk 361 !-- Richardson number 362 z0h_min = MINVAL(z0h) 363 z0_min = MINVAL(z0) 360 !-- Save roughness lengths to temporary variables 361 z0h_min = z0h(nys,nxl) 362 z0_min = z0(nys,nxl) 364 363 365 364 ! … … 641 640 DO j = nys, nyn 642 641 643 k = nzb_s_inner(j,i)644 645 642 ! 646 643 !-- If the bulk Richardson number is outside the range of the lookup … … 1055 1052 !$acc loop independent 1056 1053 DO j = nysg, nyng 1057 e(nzb_s_inner(j,i)+1,j,i) = ( us(j,i) / 0.1_wp )**2 1054 k = nzb_s_inner(j,i) 1055 e(k+1,j,i) = ( us(j,i) / 0.1_wp )**2 1058 1056 ! 1059 1057 !-- As a test: cm = 0.4 1060 ! e( nzb_s_inner(j,i)+1,j,i) = ( us(j,i) / 0.4_wp )**21061 e( nzb_s_inner(j,i),j,i) = e(nzb_s_inner(j,i)+1,j,i)1058 ! e(k+1,j,i) = ( us(j,i) / 0.4_wp )**2 1059 e(k,j,i) = e(k+1,j,i) 1062 1060 ENDDO 1063 1061 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.