Ignore:
Timestamp:
Apr 3, 2020 11:34:29 AM (5 years ago)
Author:
raasch
Message:

files re-formatted to follow the PALM coding standard

File:
1 edited

Legend:

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

    r4360 r4488  
    11!> @file advec_s_up.f90
    2 !------------------------------------------------------------------------------!
     2!--------------------------------------------------------------------------------------------------!
    33! This file is part of the PALM model system.
    44!
    5 ! PALM is free software: you can redistribute it and/or modify it under the
    6 ! terms of the GNU General Public License as published by the Free Software
    7 ! Foundation, either version 3 of the License, or (at your option) any later
    8 ! version.
     5! PALM is free software: you can redistribute it and/or modify it under the terms of the GNU General
     6! Public License as published by the Free Software Foundation, either version 3 of the License, or
     7! (at your option) any later version.
    98!
    10 ! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
    11 ! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    12 ! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     9! PALM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
     10! implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
     11! Public License for more details.
    1312!
    14 ! You should have received a copy of the GNU General Public License along with
    15 ! PALM. If not, see <http://www.gnu.org/licenses/>.
     13! You should have received a copy of the GNU General Public License along with PALM. If not, see
     14! <http://www.gnu.org/licenses/>.
    1615!
    1716! Copyright 1997-2020 Leibniz Universitaet Hannover
    18 !------------------------------------------------------------------------------!
     17!--------------------------------------------------------------------------------------------------!
    1918!
    2019! Current revisions:
     
    2524! -----------------
    2625! $Id$
     26! file re-formatted to follow the PALM coding standard
     27!
     28! 4360 2020-01-07 11:25:50Z suehring
    2729! Corrected "Former revisions" section
    28 ! 
     30!
    2931! 3927 2019-04-23 13:24:29Z raasch
    3032! pointer attribute removed from scalar 3d-array for performance reasons
    31 ! 
     33!
    3234! 3665 2019-01-10 08:28:24Z raasch
    3335! unused variables removed
    34 ! 
     36!
    3537! 3655 2019-01-07 16:51:22Z knoop
    3638! nopointer option removed
     
    4547!> NOTE: vertical advection at k=1 still has wrong grid spacing for w>0!
    4648!>       The same problem occurs for all topography boundaries!
    47 !------------------------------------------------------------------------------!
     49!--------------------------------------------------------------------------------------------------!
    4850 MODULE advec_s_up_mod
    49  
     51
    5052
    5153    PRIVATE
     
    6062
    6163
    62 !------------------------------------------------------------------------------!
     64!--------------------------------------------------------------------------------------------------!
    6365! Description:
    6466! ------------
    6567!> Call for all grid points
    66 !------------------------------------------------------------------------------!
    67     SUBROUTINE advec_s_up( sk )
     68!--------------------------------------------------------------------------------------------------!
     69 SUBROUTINE advec_s_up( sk )
    6870
    69        USE arrays_3d,                                                          &
    70            ONLY:  ddzu, tend, u, v, w
     71    USE arrays_3d,                                                                                 &
     72        ONLY:  ddzu, tend, u, v, w
    7173
    72        USE control_parameters,                                                 &
    73            ONLY:  u_gtrans, v_gtrans
     74    USE control_parameters,                                                                        &
     75        ONLY:  u_gtrans, v_gtrans
    7476
    75        USE grid_variables,                                                     &
    76            ONLY:  ddx, ddy
     77    USE grid_variables,                                                                            &
     78        ONLY:  ddx, ddy
    7779
    78        USE indices,                                                            &
    79            ONLY:  nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzt
     80    USE indices,                                                                                   &
     81        ONLY:  nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzt
    8082
    81        USE kinds
     83    USE kinds
    8284
    8385
    84        IMPLICIT NONE
     86    IMPLICIT NONE
    8587
    86        INTEGER(iwp) ::  i !< grid index along x-direction
    87        INTEGER(iwp) ::  j !< grid index along y-direction
    88        INTEGER(iwp) ::  k !< grid index along z-direction
     88    INTEGER(iwp) ::  i !< grid index along x-direction
     89    INTEGER(iwp) ::  j !< grid index along y-direction
     90    INTEGER(iwp) ::  k !< grid index along z-direction
    8991
    90        REAL(wp) ::  ukomp !< advection velocity along x-direction
    91        REAL(wp) ::  vkomp !< advection velocity along y-direction
    92        REAL(wp) ::  wkomp !< advection velocity along z-direction
     92    REAL(wp) ::  ukomp !< advection velocity along x-direction
     93    REAL(wp) ::  vkomp !< advection velocity along y-direction
     94    REAL(wp) ::  wkomp !< advection velocity along z-direction
    9395
    94        REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  sk !< treated scalar
     96    REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  sk !< treated scalar
    9597
    9698
    97        DO  i = nxl, nxr
    98           DO  j = nys, nyn
    99              DO  k = nzb+1, nzt
     99    DO  i = nxl, nxr
     100       DO  j = nys, nyn
     101          DO  k = nzb+1, nzt
    100102!
    101 !--             x-direction
    102                 ukomp = 0.5_wp * ( u(k,j,i) + u(k,j,i+1) ) - u_gtrans
    103                 IF ( ukomp > 0.0_wp )  THEN
    104                    tend(k,j,i) = tend(k,j,i) - ukomp *                         &
    105                                          ( sk(k,j,i) - sk(k,j,i-1) ) * ddx
    106                 ELSE
    107                    tend(k,j,i) = tend(k,j,i) - ukomp *                         &
    108                                          ( sk(k,j,i+1) - sk(k,j,i) ) * ddx
    109                 ENDIF
     103!--          x-direction
     104             ukomp = 0.5_wp * ( u(k,j,i) + u(k,j,i+1) ) - u_gtrans
     105             IF ( ukomp > 0.0_wp )  THEN
     106                tend(k,j,i) = tend(k,j,i) - ukomp * ( sk(k,j,i) - sk(k,j,i-1) ) * ddx
     107             ELSE
     108                tend(k,j,i) = tend(k,j,i) - ukomp * ( sk(k,j,i+1) - sk(k,j,i) ) * ddx
     109             ENDIF
    110110!
    111 !--             y-direction
    112                 vkomp = 0.5_wp * ( v(k,j,i) + v(k,j+1,i) ) - v_gtrans
    113                 IF ( vkomp > 0.0_wp )  THEN
    114                    tend(k,j,i) = tend(k,j,i) - vkomp *                         &
    115                                          ( sk(k,j,i) - sk(k,j-1,i) ) * ddy
    116                 ELSE
    117                    tend(k,j,i) = tend(k,j,i) - vkomp *                         &
    118                                          ( sk(k,j+1,i) - sk(k,j,i) ) * ddy
    119                 ENDIF
     111!--          y-direction
     112             vkomp = 0.5_wp * ( v(k,j,i) + v(k,j+1,i) ) - v_gtrans
     113             IF ( vkomp > 0.0_wp )  THEN
     114                tend(k,j,i) = tend(k,j,i) - vkomp * ( sk(k,j,i) - sk(k,j-1,i) ) * ddy
     115             ELSE
     116                tend(k,j,i) = tend(k,j,i) - vkomp * ( sk(k,j+1,i) - sk(k,j,i) ) * ddy
     117             ENDIF
    120118!
    121 !--             z-direction
    122                 wkomp = 0.5_wp * ( w(k,j,i) + w(k-1,j,i) )
    123                 IF ( wkomp > 0.0_wp )  THEN
    124                    tend(k,j,i) = tend(k,j,i) - wkomp *                         &
    125                                          ( sk(k,j,i) - sk(k-1,j,i) ) * ddzu(k)
    126                 ELSE
    127                    tend(k,j,i) = tend(k,j,i) - wkomp *                         &
    128                                          ( sk(k+1,j,i)-sk(k,j,i) ) * ddzu(k+1)
    129                 ENDIF
     119!--          z-direction
     120             wkomp = 0.5_wp * ( w(k,j,i) + w(k-1,j,i) )
     121             IF ( wkomp > 0.0_wp )  THEN
     122                tend(k,j,i) = tend(k,j,i) - wkomp * ( sk(k,j,i) - sk(k-1,j,i) ) * ddzu(k)
     123             ELSE
     124                tend(k,j,i) = tend(k,j,i) - wkomp * ( sk(k+1,j,i) - sk(k,j,i) ) * ddzu(k+1)
     125             ENDIF
    130126
    131              ENDDO
    132127          ENDDO
    133128       ENDDO
     129    ENDDO
    134130
    135     END SUBROUTINE advec_s_up
     131 END SUBROUTINE advec_s_up
    136132
    137133
    138 !------------------------------------------------------------------------------!
     134!--------------------------------------------------------------------------------------------------!
    139135! Description:
    140136! ------------
    141137!> Call for grid point i,j
    142 !------------------------------------------------------------------------------!
    143     SUBROUTINE advec_s_up_ij( i, j, sk )
     138!--------------------------------------------------------------------------------------------------!
     139 SUBROUTINE advec_s_up_ij( i, j, sk )
    144140
    145        USE arrays_3d,                                                          &
    146            ONLY:  ddzu, tend, u, v, w
     141    USE arrays_3d,                                                                                 &
     142        ONLY:  ddzu, tend, u, v, w
    147143
    148        USE control_parameters,                                                 &
    149            ONLY:  u_gtrans, v_gtrans
     144    USE control_parameters,                                                                        &
     145        ONLY:  u_gtrans, v_gtrans
    150146
    151        USE grid_variables,                                                     &
    152            ONLY:  ddx, ddy
     147    USE grid_variables,                                                                            &
     148        ONLY:  ddx, ddy
    153149
    154        USE indices,                                                            &
    155            ONLY:  nxlg, nxrg, nyng, nysg, nzb, nzt
     150    USE indices,                                                                                   &
     151        ONLY:  nxlg, nxrg, nyng, nysg, nzb, nzt
    156152
    157        USE kinds
     153    USE kinds
    158154
    159155
    160        IMPLICIT NONE
     156    IMPLICIT NONE
    161157
    162        INTEGER(iwp) ::  i !< grid index along x-direction
    163        INTEGER(iwp) ::  j !< grid index along y-direction
    164        INTEGER(iwp) ::  k !< grid index along z-direction
     158    INTEGER(iwp) ::  i !< grid index along x-direction
     159    INTEGER(iwp) ::  j !< grid index along y-direction
     160    INTEGER(iwp) ::  k !< grid index along z-direction
    165161
    166        REAL(wp) ::  ukomp !< advection velocity along x-direction
    167        REAL(wp) ::  vkomp !< advection velocity along y-direction
    168        REAL(wp) ::  wkomp !< advection velocity along z-direction
    169        
    170        REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  sk !< treated scalar
     162    REAL(wp) ::  ukomp !< advection velocity along x-direction
     163    REAL(wp) ::  vkomp !< advection velocity along y-direction
     164    REAL(wp) ::  wkomp !< advection velocity along z-direction
     165
     166    REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  sk !< treated scalar
    171167
    172168
    173        DO  k = nzb+1, nzt
     169    DO  k = nzb+1, nzt
    174170!
    175 !--       x-direction
    176           ukomp = 0.5_wp * ( u(k,j,i) + u(k,j,i+1) ) - u_gtrans
    177           IF ( ukomp > 0.0_wp )  THEN
    178              tend(k,j,i) = tend(k,j,i) - ukomp *                               &
    179                                          ( sk(k,j,i) - sk(k,j,i-1) ) * ddx
    180           ELSE
    181              tend(k,j,i) = tend(k,j,i) - ukomp *                               &
    182                                          ( sk(k,j,i+1) - sk(k,j,i) ) * ddx
    183           ENDIF
     171!--    x-direction
     172       ukomp = 0.5_wp * ( u(k,j,i) + u(k,j,i+1) ) - u_gtrans
     173       IF ( ukomp > 0.0_wp )  THEN
     174          tend(k,j,i) = tend(k,j,i) - ukomp * ( sk(k,j,i) - sk(k,j,i-1) ) * ddx
     175       ELSE
     176          tend(k,j,i) = tend(k,j,i) - ukomp * ( sk(k,j,i+1) - sk(k,j,i) ) * ddx
     177       ENDIF
    184178!
    185 !--       y-direction
    186           vkomp = 0.5_wp * ( v(k,j,i) + v(k,j+1,i) ) - v_gtrans
    187           IF ( vkomp > 0.0_wp )  THEN
    188              tend(k,j,i) = tend(k,j,i) - vkomp *                               &
    189                                          ( sk(k,j,i) - sk(k,j-1,i) ) * ddy
    190           ELSE
    191              tend(k,j,i) = tend(k,j,i) - vkomp *                               &
    192                                          ( sk(k,j+1,i) - sk(k,j,i) ) * ddy
    193           ENDIF
     179!--    y-direction
     180       vkomp = 0.5_wp * ( v(k,j,i) + v(k,j+1,i) ) - v_gtrans
     181       IF ( vkomp > 0.0_wp )  THEN
     182          tend(k,j,i) = tend(k,j,i) - vkomp * ( sk(k,j,i) - sk(k,j-1,i) ) * ddy
     183       ELSE
     184          tend(k,j,i) = tend(k,j,i) - vkomp * ( sk(k,j+1,i) - sk(k,j,i) ) * ddy
     185       ENDIF
    194186!
    195 !--       z-direction
    196           wkomp = 0.5_wp * ( w(k,j,i) + w(k-1,j,i) )
    197           IF ( wkomp > 0.0_wp )  THEN
    198              tend(k,j,i) = tend(k,j,i) - wkomp *                               &
    199                                          ( sk(k,j,i) - sk(k-1,j,i) ) * ddzu(k)
    200           ELSE
    201              tend(k,j,i) = tend(k,j,i) - wkomp *                               &
    202                                          ( sk(k+1,j,i)-sk(k,j,i) ) * ddzu(k+1)
    203           ENDIF
     187!--    z-direction
     188       wkomp = 0.5_wp * ( w(k,j,i) + w(k-1,j,i) )
     189       IF ( wkomp > 0.0_wp )  THEN
     190          tend(k,j,i) = tend(k,j,i) - wkomp * ( sk(k,j,i) - sk(k-1,j,i) ) * ddzu(k)
     191       ELSE
     192          tend(k,j,i) = tend(k,j,i) - wkomp * ( sk(k+1,j,i) - sk(k,j,i) ) * ddzu(k+1)
     193       ENDIF
    204194
    205        ENDDO
     195    ENDDO
    206196
    207     END SUBROUTINE advec_s_up_ij
     197 END SUBROUTINE advec_s_up_ij
    208198
    209199 END MODULE advec_s_up_mod
Note: See TracChangeset for help on using the changeset viewer.