Changeset 4734
- Timestamp:
- Oct 9, 2020 1:21:06 PM (4 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/pmc_interface_mod.f90
r4665 r4734 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Bugfix for RANS-RANS nesting and minor revision in the TKE treatment (only logical control) 28 ! 29 ! 4665 2020-09-03 14:04:24Z hellstea 27 30 ! Interpolation and anterpolation subroutines renamed and all missing subroutine description 28 31 ! comments added. … … 1322 1325 !-- Set data array name for TKE. Please note, nesting of TKE is actually only done if both parent 1323 1326 !-- and child are in LES or in RANS mode. Due to design of model coupler, however, data array 1324 !-- names must be already available at this point. 1325 IF ( ( rans_mode_parent .AND. rans_mode ) .OR. & 1326 ( .NOT. rans_mode_parent .AND. .NOT. rans_mode .AND. .NOT. constant_diffusion ) )& 1327 THEN 1328 CALL pmc_set_dataarray_name( 'parent', 'e', 'child', 'e', ierr ) 1329 ENDIF 1327 !-- names must be already available at this point, though the control flag whether data shall 1328 !-- be interpolated / anterpolated is not available yet. 1329 CALL pmc_set_dataarray_name( 'parent', 'e', 'child', 'e', ierr ) 1330 1330 ! 1331 1331 !-- Nesting of dissipation rate only if both parent and child are in RANS mode and TKE-epsilon 1332 1332 !-- closure is applied. Please see also comment for TKE above. 1333 IF ( rans_mode_parent .AND. rans_mode .AND. rans_tke_e ) THEN 1334 CALL pmc_set_dataarray_name( 'parent', 'diss', 'child', 'diss', ierr ) 1335 ENDIF 1333 CALL pmc_set_dataarray_name( 'parent', 'diss', 'child', 'diss', ierr ) 1336 1334 1337 1335 IF ( .NOT. neutral ) THEN … … 2580 2578 IF ( TRIM(name) == "nr_part" ) i_2d => nr_part 2581 2579 IF ( TRIM(name) == "part_adr" ) i_2d => part_adr 2582 IF ( INDEX( TRIM(name), "chem_" ) /= 0 2583 IF ( INDEX( TRIM(name), "an_" ) /= 0 2580 IF ( INDEX( TRIM(name), "chem_" ) /= 0 ) p_3d => chem_species(n)%conc 2581 IF ( INDEX( TRIM(name), "an_" ) /= 0 ) p_3d => aerosol_number(n)%conc 2584 2582 IF ( INDEX( TRIM(name), "am_" ) /= 0 ) p_3d => aerosol_mass(n)%conc 2585 2583 IF ( INDEX( TRIM(name), "sg_" ) /= 0 .AND. .NOT. salsa_gases_from_chem ) & … … 3596 3594 CALL pmci_interp_lr( v, vc, kcto, jflv, jfuv, kflo, kfuo, 'l', 'v' ) 3597 3595 CALL pmci_interp_lr( w, wc, kctw, jflo, jfuo, kflw, kfuw, 'l', 'w' ) 3598 3599 IF ( ( rans_mode_parent .AND. rans_mode ) .OR. & 3600 ( .NOT. rans_mode_parent .AND. .NOT. rans_mode .AND. & 3601 .NOT. constant_diffusion ) ) THEN 3602 ! CALL pmci_interp_lr( e, ec, kcto, jflo, jfuo, kflo, kfuo, 'l', 'e' ) 3603 ! 3604 !-- Interpolation of e is replaced by the Neumann condition. 3596 ! 3597 !-- Treatment of TKE. Interpolation is only required if parent and child operate in RANS mode, 3598 !-- else, interpolation is replaced by a Neumann condition. 3599 IF ( rans_mode_parent .AND. rans_mode ) THEN 3600 CALL pmci_interp_lr( e, ec, kcto, jflo, jfuo, kflo, kfuo, 'l', 'e' ) 3601 ELSE 3605 3602 DO ibgp = -nbgp, -1 3606 3603 e(nzb:nzt,nys:nyn,ibgp) = e(nzb:nzt,nys:nyn,0) 3607 3604 ENDDO 3608 3609 3605 ENDIF 3610 3606 … … 3669 3665 CALL pmci_interp_lr( v, vc, kcto, jflv, jfuv, kflo, kfuo, 'r', 'v' ) 3670 3666 CALL pmci_interp_lr( w, wc, kctw, jflo, jfuo, kflw, kfuw, 'r', 'w' ) 3671 3672 IF ( ( rans_mode_parent .AND. rans_mode ) .OR. & 3673 ( .NOT. rans_mode_parent .AND. .NOT. rans_mode .AND. & 3674 .NOT. constant_diffusion ) ) THEN 3675 ! CALL pmci_interp_lr( e, ec, kcto, iflo, ifuo, jflo, jfuo, kflo, kfuo, 'r', 'e' ) 3676 ! 3677 !-- Interpolation of e is replaced by the Neumann condition. 3667 ! 3668 !-- Treatment of TKE. Interpolation is only required if parent and child operate in RANS mode, 3669 !-- else, interpolation is replaced by a Neumann condition. 3670 IF ( rans_mode_parent .AND. rans_mode ) THEN 3671 CALL pmci_interp_lr( e, ec, kcto, jflo, jfuo, kflo, kfuo, 'r', 'e' ) 3672 ELSE 3678 3673 DO ibgp = nx+1, nx+nbgp 3679 3674 e(nzb:nzt,nys:nyn,ibgp) = e(nzb:nzt,nys:nyn,nx) … … 3740 3735 CALL pmci_interp_sn( w, wc, kctw, iflo, ifuo, kflw, kfuw, 's', 'w' ) 3741 3736 CALL pmci_interp_sn( u, uc, kcto, iflu, ifuu, kflo, kfuo, 's', 'u' ) 3742 3743 IF ( ( rans_mode_parent .AND. rans_mode ) .OR. & 3744 ( .NOT. rans_mode_parent .AND. .NOT. rans_mode .AND. & 3745 .NOT. constant_diffusion ) ) THEN 3746 ! CALL pmci_interp_sn( e, ec, kcto, iflo, ifuo, kflo, kfuo, 's', 'e' ) 3747 ! 3748 !-- Interpolation of e is replaced by the Neumann condition. 3737 ! 3738 !-- Treatment of TKE. Interpolation is only required if parent and child operate in RANS mode, 3739 !-- else, interpolation is replaced by a Neumann condition. 3740 IF ( rans_mode_parent .AND. rans_mode ) THEN 3741 CALL pmci_interp_sn( e, ec, kcto, iflo, ifuo, kflo, kfuo, 's', 'e' ) 3742 ELSE 3749 3743 DO jbgp = -nbgp, -1 3750 3744 e(nzb:nzt,jbgp,nxl:nxr) = e(nzb:nzt,0,nxl:nxr) … … 3811 3805 CALL pmci_interp_sn( w, wc, kctw, iflo, ifuo, kflw, kfuw, 'n', 'w' ) 3812 3806 CALL pmci_interp_sn( u, uc, kcto, iflu, ifuu, kflo, kfuo, 'n', 'u' ) 3813 3814 IF ( ( rans_mode_parent .AND. rans_mode ) .OR. & 3815 ( .NOT. rans_mode_parent .AND. .NOT. rans_mode .AND. & 3816 .NOT. constant_diffusion ) ) THEN 3817 ! CALL pmci_interp_sn( e, ec, kcto, iflo, ifuo, kflo, kfuo, 'n', 'e' ) 3818 ! 3819 !-- Interpolation of e is replaced by the Neumann condition. 3807 ! 3808 !-- Treatment of TKE. Interpolation is only required if parent and child operate in RANS mode, 3809 !-- else, interpolation is replaced by a Neumann condition. 3810 IF ( rans_mode_parent .AND. rans_mode ) THEN 3811 CALL pmci_interp_sn( e, ec, kcto, iflo, ifuo, kflo, kfuo, 'n', 'e' ) 3812 ELSE 3820 3813 DO jbgp = ny+1, ny+nbgp 3821 3814 e(nzb:nzt,jbgp,nxl:nxr) = e(nzb:nzt,ny,nxl:nxr) … … 3882 3875 CALL pmci_interp_t( u, uc, kcto, iflu, ifuu, jflo, jfuo, 'u' ) 3883 3876 CALL pmci_interp_t( v, vc, kcto, iflo, ifuo, jflv, jfuv, 'v' ) 3884 3885 IF ( ( rans_mode_parent .AND. rans_mode ) .OR. & 3886 ( .NOT. rans_mode_parent .AND. .NOT. rans_mode .AND. & 3887 .NOT. constant_diffusion ) ) THEN 3888 ! CALL pmci_interp_t( e, ec, kcto, iflo, ifuo, jflo, jfuo, 'e' ) 3889 ! 3890 !-- Interpolation of e is replaced by the Neumann condition. 3877 ! 3878 !-- Treatment of TKE. Interpolation is only required if parent and child operate in RANS mode, 3879 !-- else, interpolation is replaced by a Neumann condition. 3880 IF ( rans_mode_parent .AND. rans_mode ) THEN 3881 CALL pmci_interp_t( e, ec, kcto, iflo, ifuo, jflo, jfuo, 'e' ) 3882 ELSE 3891 3883 e(nzt+1,nys:nyn,nxl:nxr) = e(nzt,nys:nyn,nxl:nxr) 3892 3884 ENDIF -
palm/trunk/SOURCE/urban_surface_mod.f90
r4733 r4734 22 22 ! Current revisions: 23 23 ! ----------------- 24 ! Bugfix in calculation of absored radiation by windows (reflected radiation was not taken into 25 ! account) 24 ! 26 25 ! 27 26 ! Former revisions: 28 27 ! ----------------- 29 28 ! $Id$ 29 ! Bugfix in calculation of absored radiation by windows (reflected radiation was not taken into 30 ! account) 31 ! 32 ! 4733 2020-10-09 12:24:16Z maronga 30 33 ! Remove unused variables from USE statement 31 34 !
Note: See TracChangeset
for help on using the changeset viewer.