Changeset 2797 for palm/trunk/SOURCE/land_surface_model_mod.f90
- Timestamp:
- Feb 8, 2018 1:24:35 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/land_surface_model_mod.f90
r2765 r2797 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Move output of ghf to general 2D output to output ghf also at urban-type 28 ! surfaces. 29 ! Move restart data of ghf_av to read/write_3d_binary, as this is not a 30 ! exclusively LSM variable anymore. 31 ! 32 ! 2765 2018-01-22 11:34:58Z maronga 27 33 ! Major bugfix in calculation of f_shf for vertical surfaces 28 34 ! … … 598 604 c_soil_av, & !< average of c_soil 599 605 c_veg_av, & !< average of c_veg 600 ghf_av, & !< average of ghf601 606 lai_av, & !< average of lai 602 607 qsws_liq_av, & !< average of qsws_liq … … 1044 1049 unit = 'K' 1045 1050 1046 CASE ( 'lai*', 'c_liq*', 'c_soil*', 'c_veg*', ' ghf*', 'm_liq*',&1051 CASE ( 'lai*', 'c_liq*', 'c_soil*', 'c_veg*', 'm_liq*', & 1047 1052 'qsws_liq*', 'qsws_soil*', 'qsws_veg*', 'r_s*' ) 1048 1053 IF ( k == 0 .OR. data_output(i)(ilen-2:ilen) /= '_xy' ) THEN … … 1072 1077 CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 ) 1073 1078 ENDIF 1074 IF ( TRIM( var ) == 'ghf*' .AND. .NOT. land_surface ) THEN1075 message_string = 'output of "' // TRIM( var ) // '" requi' // &1076 'res land_surface = .TRUE.'1077 CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )1078 ENDIF1079 1079 IF ( TRIM( var ) == 'm_liq*' .AND. .NOT. land_surface ) THEN 1080 1080 message_string = 'output of "' // TRIM( var ) // '" requi' // & … … 1111 1111 IF ( TRIM( var ) == 'c_soil*') unit = 'none' 1112 1112 IF ( TRIM( var ) == 'c_veg*' ) unit = 'none' 1113 IF ( TRIM( var ) == 'ghf*') unit = 'W/m2'1114 1113 IF ( TRIM( var ) == 'm_liq*' ) unit = 'm' 1115 1114 IF ( TRIM( var ) == 'qsws_liq*' ) unit = 'W/m2' … … 5042 5041 c_veg_av = 0.0_wp 5043 5042 5044 CASE ( 'ghf*' )5045 IF ( .NOT. ALLOCATED( ghf_av ) ) THEN5046 ALLOCATE( ghf_av(nysg:nyng,nxlg:nxrg) )5047 ENDIF5048 ghf_av = 0.0_wp5049 5050 5043 CASE ( 'lai*' ) 5051 5044 IF ( .NOT. ALLOCATED( lai_av ) ) THEN … … 5124 5117 j = surf_lsm_h%j(m) 5125 5118 c_veg_av(j,i) = c_veg_av(j,i) + surf_lsm_h%c_veg(m) 5126 ENDDO5127 5128 CASE ( 'ghf*' )5129 DO m = 1, surf_lsm_h%ns5130 i = surf_lsm_h%i(m)5131 j = surf_lsm_h%j(m)5132 ghf_av(j,i) = ghf_av(j,i) + surf_lsm_h%ghf(m)5133 5119 ENDDO 5134 5120 … … 5226 5212 c_veg_av(j,i) = c_veg_av(j,i) & 5227 5213 / REAL( average_count_3d, KIND=wp ) 5228 ENDDO5229 ENDDO5230 5231 CASE ( 'ghf*' )5232 DO i = nxl, nxr5233 DO j = nys, nyn5234 ghf_av(j,i) = ghf_av(j,i) &5235 / REAL( average_count_3d, KIND=wp )5236 5214 ENDDO 5237 5215 ENDDO … … 5439 5417 DO j = nys, nyn 5440 5418 local_pf(i,j,nzb+1) = c_veg_av(j,i) 5441 ENDDO5442 ENDDO5443 ENDIF5444 5445 two_d = .TRUE.5446 grid = 'zu1'5447 5448 CASE ( 'ghf*_xy' ) ! 2d-array5449 IF ( av == 0 ) THEN5450 DO m = 1, surf_lsm_h%ns5451 i = surf_lsm_h%i(m)5452 j = surf_lsm_h%j(m)5453 local_pf(i,j,nzb+1) = surf_lsm_h%ghf(m)5454 ENDDO5455 ELSE5456 DO i = nxl, nxr5457 DO j = nys, nyn5458 local_pf(i,j,nzb+1) = ghf_av(j,i)5459 5419 ENDDO 5460 5420 ENDDO … … 5750 5710 IF ( ALLOCATED( c_veg_av ) ) THEN 5751 5711 WRITE ( 14 ) 'c_veg_av '; WRITE ( 14 ) c_veg_av 5752 ENDIF5753 IF ( ALLOCATED( ghf_av ) ) THEN5754 WRITE ( 14 ) 'ghf_av '; WRITE ( 14 ) ghf_av5755 5712 ENDIF 5756 5713 IF ( ALLOCATED( lai_av ) ) THEN … … 5993 5950 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp) 5994 5951 5995 CASE ( 'ghf_av' )5996 IF ( .NOT. ALLOCATED( ghf_av ) ) THEN5997 ALLOCATE( ghf_av(nysg:nyng,nxlg:nxrg) )5998 ENDIF5999 IF ( k == 1 ) READ ( 13 ) tmp_2d6000 ghf_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &6001 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)6002 6003 5952 CASE ( 'lai_av' ) 6004 5953 IF ( .NOT. ALLOCATED( lai_av ) ) THEN
Note: See TracChangeset
for help on using the changeset viewer.