Changeset 3636 for palm/trunk/SOURCE/land_surface_model_mod.f90
- Timestamp:
- Dec 19, 2018 1:48:34 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/land_surface_model_mod.f90
r3620 r3636 25 25 ! ----------------- 26 26 ! $Id$ 27 ! nopointer option removed 28 ! 29 ! 3620 2018-12-11 12:29:43Z moh.hefny 27 30 ! update the 3d rad_lw_out array 28 31 ! … … 655 658 zs_layer = 9999999.9_wp !< soil layer depths (edge) 656 659 657 #if defined( __nopointer )658 TYPE(surf_type_lsm), TARGET :: t_soil_h, & !< Soil temperature (K), horizontal surface elements659 t_soil_h_p, & !< Prog. soil temperature (K), horizontal surface elements660 m_soil_h, & !< Soil moisture (m3/m3), horizontal surface elements661 m_soil_h_p !< Prog. soil moisture (m3/m3), horizontal surface elements662 663 TYPE(surf_type_lsm), DIMENSION(0:3), TARGET :: &664 t_soil_v, & !< Soil temperature (K), vertical surface elements665 t_soil_v_p, & !< Prog. soil temperature (K), vertical surface elements666 m_soil_v, & !< Soil moisture (m3/m3), vertical surface elements667 m_soil_v_p !< Prog. soil moisture (m3/m3), vertical surface elements668 669 #else670 660 TYPE(surf_type_lsm), POINTER :: t_soil_h, & !< Soil temperature (K), horizontal surface elements 671 661 t_soil_h_p, & !< Prog. soil temperature (K), horizontal surface elements … … 689 679 m_soil_v_1, & !< 690 680 m_soil_v_2 !< 691 #endif 692 693 #if defined( __nopointer ) 694 TYPE(surf_type_lsm), TARGET :: t_surface_h, & !< surface temperature (K), horizontal surface elements 695 t_surface_h_p, & !< progn. surface temperature (K), horizontal surface elements 696 m_liq_h, & !< liquid water reservoir (m), horizontal surface elements 697 m_liq_h_p !< progn. liquid water reservoir (m), horizontal surface elements 698 699 TYPE(surf_type_lsm), DIMENSION(0:3), TARGET :: & 700 t_surface_v, & !< surface temperature (K), vertical surface elements 701 t_surface_v_p, & !< progn. surface temperature (K), vertical surface elements 702 m_liq_v, & !< liquid water reservoir (m), vertical surface elements 703 m_liq_v_p !< progn. liquid water reservoir (m), vertical surface elements 704 #else 681 705 682 TYPE(surf_type_lsm), POINTER :: t_surface_h, & !< surface temperature (K), horizontal surface elements 706 683 t_surface_h_p, & !< progn. surface temperature (K), horizontal surface elements … … 724 701 m_liq_v_1, & !< 725 702 m_liq_v_2 !< 726 #endif 727 728 #if defined( __nopointer ) 703 729 704 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: m_liq_av 730 #else 731 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: m_liq_av 732 #endif 733 734 #if defined( __nopointer ) 705 735 706 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET :: t_soil_av, & !< Average of t_soil 736 707 m_soil_av !< Average of m_soil 737 #else738 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET :: t_soil_av, & !< Average of t_soil739 m_soil_av !< Average of m_soil740 #endif741 708 742 709 TYPE(surf_type_lsm), TARGET :: tm_liq_h_m !< liquid water reservoir tendency (m), horizontal surface elements … … 4822 4789 !-- even if they do not belong to the data type due to the 4823 4790 !-- pointer arithmetric (TARGET attribute is not allowed in a data-type). 4824 #if defined( __nopointer )4825 !4826 !-- Horizontal surfaces4827 ALLOCATE ( m_liq_h_p%var_1d(1:surf_lsm_h%ns) )4828 ALLOCATE ( t_surface_h%var_1d(1:surf_lsm_h%ns) )4829 ALLOCATE ( t_surface_h_p%var_1d(1:surf_lsm_h%ns) )4830 ALLOCATE ( m_soil_h_p%var_2d(nzb_soil:nzt_soil,1:surf_lsm_h%ns) )4831 ALLOCATE ( t_soil_h_p%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_h%ns) )4832 4833 !4834 !-- Vertical surfaces4835 DO l = 0, 34836 ALLOCATE ( m_liq_v(l)%var_1d(1:surf_lsm_v(l)%ns) )4837 ALLOCATE ( m_liq_v_p(l)%var_1d(1:surf_lsm_v(l)%ns) )4838 ALLOCATE ( t_surface_v(l)%var_1d(1:surf_lsm_v(l)%ns) )4839 ALLOCATE ( t_surface_v_p(l)%var_1d(1:surf_lsm_v(l)%ns) )4840 ALLOCATE ( m_soil_v(l)%var_2d(nzb_soil:nzt_soil,1:surf_lsm_v(l)%ns) )4841 ALLOCATE ( m_soil_v_p(l)%var_2d(nzb_soil:nzt_soil,1:surf_lsm_v(l)%ns) )4842 ALLOCATE ( t_soil_v(l)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(l)%ns) )4843 ALLOCATE ( t_soil_v_p(l)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(l)%ns) )4844 ENDDO4845 !4846 !-- Allocate soil temperature and moisture. As these variables might be4847 !-- already allocated in case of restarts, check this.4848 IF ( .NOT. ALLOCATED( m_liq_h%var_1d ) ) &4849 ALLOCATE ( m_liq_h%var_1d(1:surf_lsm_h%ns) )4850 IF ( .NOT. ALLOCATED( m_soil_h%var_2d ) ) &4851 ALLOCATE ( m_soil_h%var_2d(nzb_soil:nzt_soil,1:surf_lsm_h%ns) )4852 IF ( .NOT. ALLOCATED( t_soil_h%var_2d ) ) &4853 ALLOCATE ( t_soil_h%var_2d(nzb_soil:nzt_soil,1:surf_lsm_h%ns) )4854 4855 DO l = 0, 34856 IF ( .NOT. ALLOCATED( m_liq_v(l)%var_1d ) ) &4857 ALLOCATE ( m_liq_v(l)%var_1d(1:surf_lsm_v(l)%ns) )4858 IF ( .NOT. ALLOCATED( m_soil_v(l)%var_2d ) ) &4859 ALLOCATE ( m_soil_v(l)%var_2d(nzb_soil:nzt_soil,1:surf_lsm_v(l)%ns) )4860 IF ( .NOT. ALLOCATED( t_soil_v(l)%var_2d ) ) &4861 ALLOCATE ( t_soil_v(l)%var_2d(nzb_soil:nzt_soil,1:surf_lsm_v(l)%ns) )4862 ENDDO4863 #else4864 4791 ! 4865 4792 !-- Horizontal surfaces … … 4884 4811 ALLOCATE ( t_soil_v_2(l)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(l)%ns) ) 4885 4812 ENDDO 4886 #endif 4813 4887 4814 ! 4888 4815 !-- Allocate array for heat flux in W/m2, required for radiation? … … 4986 4913 ENDDO 4987 4914 4988 4989 #if ! defined( __nopointer )4990 4915 ! 4991 4916 !-- Initial assignment of the pointers … … 5001 4926 m_soil_v => m_soil_v_1; m_soil_v_p => m_soil_v_2 5002 4927 m_liq_v => m_liq_v_1; m_liq_v_p => m_liq_v_2 5003 5004 #endif5005 4928 5006 4929 … … 5477 5400 INTEGER, INTENT(IN) :: mod_count 5478 5401 5479 #if defined( __nopointer )5480 !5481 !-- Horizontal surfaces5482 t_surface_h = t_surface_h_p5483 t_soil_h = t_soil_h_p5484 IF ( humidity ) THEN5485 m_soil_h = m_soil_h_p5486 m_liq_h = m_liq_h_p5487 ENDIF5488 !5489 !-- Vertical surfaces5490 t_surface_v = t_surface_v_p5491 t_soil_v = t_soil_v_p5492 IF ( humidity ) THEN5493 m_soil_v = m_soil_v_p5494 m_liq_v = m_liq_v_p5495 ENDIF5496 5497 #else5498 5402 5499 5403 SELECT CASE ( mod_count ) … … 5541 5445 5542 5446 END SELECT 5543 #endif5544 5447 5545 5448 END SUBROUTINE lsm_swap_timelevel
Note: See TracChangeset
for help on using the changeset viewer.