Ignore:
Timestamp:
Dec 19, 2018 1:48:34 PM (3 years ago)
Author:
raasch
Message:

nopointer option removed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/land_surface_model_mod.f90

    r3620 r3636  
    2525! -----------------
    2626! $Id$
     27! nopointer option removed
     28!
     29! 3620 2018-12-11 12:29:43Z moh.hefny
    2730! update the 3d rad_lw_out array
    2831!
     
    655658                                   zs_layer = 9999999.9_wp         !< soil layer depths (edge)
    656659                                 
    657 #if defined( __nopointer )
    658     TYPE(surf_type_lsm), TARGET  ::  t_soil_h,    & !< Soil temperature (K), horizontal surface elements
    659                                      t_soil_h_p,  & !< Prog. soil temperature (K), horizontal surface elements
    660                                      m_soil_h,    & !< Soil moisture (m3/m3), horizontal surface elements
    661                                      m_soil_h_p     !< Prog. soil moisture (m3/m3), horizontal surface elements
    662 
    663     TYPE(surf_type_lsm), DIMENSION(0:3), TARGET  ::  &
    664                                      t_soil_v,       & !< Soil temperature (K), vertical surface elements
    665                                      t_soil_v_p,     & !< Prog. soil temperature (K), vertical surface elements
    666                                      m_soil_v,       & !< Soil moisture (m3/m3), vertical surface elements
    667                                      m_soil_v_p        !< Prog. soil moisture (m3/m3), vertical surface elements
    668 
    669 #else
    670660    TYPE(surf_type_lsm), POINTER ::  t_soil_h,    & !< Soil temperature (K), horizontal surface elements
    671661                                     t_soil_h_p,  & !< Prog. soil temperature (K), horizontal surface elements
     
    689679                                     m_soil_v_1,  & !<
    690680                                     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
    705682    TYPE(surf_type_lsm), POINTER  ::  t_surface_h,    & !< surface temperature (K), horizontal surface elements
    706683                                      t_surface_h_p,  & !< progn. surface temperature (K), horizontal surface elements
     
    724701                                      m_liq_v_1,      & !<
    725702                                      m_liq_v_2         !<
    726 #endif
    727 
    728 #if defined( __nopointer )
     703
    729704    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
    735706    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  t_soil_av, & !< Average of t_soil
    736707                                                        m_soil_av    !< Average of m_soil
    737 #else
    738     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  t_soil_av, & !< Average of t_soil
    739                                                         m_soil_av    !< Average of m_soil
    740 #endif
    741708
    742709    TYPE(surf_type_lsm), TARGET ::  tm_liq_h_m      !< liquid water reservoir tendency (m), horizontal surface elements
     
    48224789!--    even if they do not belong to the data type due to the
    48234790!--    pointer arithmetric (TARGET attribute is not allowed in a data-type).
    4824 #if defined( __nopointer )
    4825 !
    4826 !--    Horizontal surfaces
    4827        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 surfaces
    4835        DO  l = 0, 3
    4836           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        ENDDO
    4845 !
    4846 !--    Allocate soil temperature and moisture. As these variables might be
    4847 !--    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, 3
    4856           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        ENDDO
    4863 #else
    48644791!
    48654792!--    Horizontal surfaces
     
    48844811          ALLOCATE ( t_soil_v_2(l)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(l)%ns) )
    48854812       ENDDO
    4886 #endif
     4813
    48874814!
    48884815!--    Allocate array for heat flux in W/m2, required for radiation?
     
    49864913       ENDDO
    49874914
    4988    
    4989 #if ! defined( __nopointer )
    49904915!
    49914916!--    Initial assignment of the pointers
     
    50014926       m_soil_v    => m_soil_v_1;    m_soil_v_p    => m_soil_v_2
    50024927       m_liq_v     => m_liq_v_1;     m_liq_v_p     => m_liq_v_2
    5003 
    5004 #endif
    50054928
    50064929
     
    54775400       INTEGER, INTENT(IN) :: mod_count
    54785401
    5479 #if defined( __nopointer )
    5480 !
    5481 !--    Horizontal surfaces
    5482        t_surface_h  = t_surface_h_p
    5483        t_soil_h     = t_soil_h_p
    5484        IF ( humidity )  THEN
    5485           m_soil_h    = m_soil_h_p
    5486           m_liq_h  = m_liq_h_p
    5487        ENDIF
    5488 !
    5489 !--    Vertical surfaces
    5490        t_surface_v  = t_surface_v_p
    5491        t_soil_v     = t_soil_v_p
    5492        IF ( humidity )  THEN
    5493           m_soil_v    = m_soil_v_p
    5494           m_liq_v  = m_liq_v_p
    5495        ENDIF
    5496 
    5497 #else
    54985402   
    54995403       SELECT CASE ( mod_count )
     
    55415445
    55425446       END SELECT
    5543 #endif
    55445447
    55455448    END SUBROUTINE lsm_swap_timelevel
Note: See TracChangeset for help on using the changeset viewer.