Ignore:
Timestamp:
Mar 20, 2014 8:40:49 AM (10 years ago)
Author:
raasch
Message:

ONLY-attribute added to USE-statements,
kind-parameters added to all INTEGER and REAL declaration statements,
kinds are defined in new module kinds,
old module precision_kind is removed,
revision history before 2012 removed,
comment fields (!:) to be used for variable explanations added to all variable declaration statements

File:
1 edited

Legend:

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

    r1319 r1320  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! ONLY-attribute added to USE-statements,
     23! kind-parameters added to all INTEGER and REAL declaration statements,
     24! kinds are defined in new module kinds,
     25! revision history before 2012 removed,
     26! comment fields (!:) to be used for variable explanations added to
     27! all variable declaration statements
    2328!
    2429! Former revisions:
    2530! -----------------
    2631! $Id$
    27 !
    28 ! 1318 2014-03-17 13:35:16Z raasch
    29 ! module interfaces removed
    3032!
    3133! 1092 2013-02-02 11:24:22Z raasch
     
    6264! routine renamed from wang_kernel to lpm_collision_kernels,
    6365! turbulence_effects on collision replaced by wang_kernel
    64 !
    65 ! 799 2011-12-21 17:48:03Z franke
    66 ! speed optimizations and formatting
    67 ! Bugfix: iq=1 is not allowed (routine effic)
    68 ! Bugfix: replaced stop by ec=0.0 in case of very small ec (routine effic)
    6966!
    7067! 790 2011-11-29 03:11:20Z raasch
     
    8683!------------------------------------------------------------------------------!
    8784
    88     USE arrays_3d
    89     USE cloud_parameters
    90     USE constants
    91     USE particle_attributes
     85    USE constants,                                                             &
     86        ONLY:  pi
     87       
     88    USE kinds
     89
     90    USE particle_attributes,                                                   &
     91        ONLY:  collision_kernel, dissipation_classes, particles, radius_classes
     92
    9293    USE pegrid
    9394
     
    100101            rclass_lbound, rclass_ubound, recalculate_kernel
    101102
    102     REAL ::  epsilon, eps2, rclass_lbound, rclass_ubound, urms, urms2
    103 
    104     REAL, DIMENSION(:),   ALLOCATABLE ::  epsclass, radclass, winf
    105     REAL, DIMENSION(:,:), ALLOCATABLE ::  ec, ecf, gck, hkernel, hwratio
    106     REAL, DIMENSION(:,:,:), ALLOCATABLE ::  ckernel
     103    REAL(wp) ::  epsilon       !:
     104    REAL(wp) ::  eps2          !:
     105    REAL(wp) ::  rclass_lbound !:
     106    REAL(wp) ::  rclass_ubound !:
     107    REAL(wp) ::  urms          !:
     108    REAL(wp) ::  urms2         !:
     109
     110    REAL(wp), DIMENSION(:),   ALLOCATABLE ::  epsclass !:
     111    REAL(wp), DIMENSION(:),   ALLOCATABLE ::  radclass !:
     112    REAL(wp), DIMENSION(:),   ALLOCATABLE ::  winf     !:
     113   
     114    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ec       !:
     115    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ecf      !:
     116    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  gck      !:
     117    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  hkernel  !:
     118    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  hwratio  !:
     119   
     120    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE   ::  ckernel !:
    107121
    108122    SAVE
     
    134148       IMPLICIT NONE
    135149
    136        INTEGER ::  i, j, k
     150       INTEGER(iwp) ::  i !:
     151       INTEGER(iwp) ::  j !:
     152       INTEGER(iwp) ::  k !:
    137153
    138154
     
    262278    SUBROUTINE recalculate_kernel( i1, j1, k1 )
    263279
    264        USE arrays_3d
    265        USE cloud_parameters
    266        USE constants
    267        USE cpulog
    268        USE indices
    269        USE particle_attributes
     280       USE arrays_3d,                                                          &
     281           ONLY:  diss
     282
     283       USE particle_attributes,                                                &
     284           ONLY:  prt_count, prt_start_index, radius_classes, wang_kernel
    270285
    271286       IMPLICIT NONE
    272287
    273        INTEGER ::  i, i1, j, j1, k1, pend, pstart
     288       INTEGER(iwp) ::  i      !:
     289       INTEGER(iwp) ::  i1     !:
     290       INTEGER(iwp) ::  j      !:
     291       INTEGER(iwp) ::  j1     !:
     292       INTEGER(iwp) ::  k1     !:
     293       INTEGER(iwp) ::  pend   !:
     294       INTEGER(iwp) ::  pstart !:
    274295
    275296
     
    340361    SUBROUTINE turbsd
    341362
    342        USE constants
    343        USE cloud_parameters
    344        USE particle_attributes
    345        USE arrays_3d
    346        USE control_parameters
     363       USE control_parameters,                                                 &
     364           ONLY:  g, molecular_viscosity
     365   
     366       USE particle_attributes,                                                &
     367           ONLY:  radius_classes
    347368
    348369       IMPLICIT NONE
    349 
    350        INTEGER ::  i, j
    351 
    352        LOGICAL, SAVE ::  first = .TRUE.
    353 
    354        REAL ::  ao, ao_gr, bbb, be, b1, b2, ccc, c1, c1_gr, c2, d1, d2, eta, &
    355                 e1, e2, fao_gr, fr, grfin, lambda, lambda_re, lf, rc, rrp,   &
    356                 sst, tauk, tl, t2, tt, t1, vk, vrms1xy, vrms2xy, v1, v1v2xy, &
    357                 v1xysq, v2, v2xysq, wrfin, wrgrav2, wrtur2xy, xx, yy, z
    358 
    359        REAL, DIMENSION(1:radius_classes) ::  st, tau
    360 
    361 
     370       
     371       LOGICAL, SAVE ::  first = .TRUE. !:
     372
     373       INTEGER(iwp) ::  i     !:
     374       INTEGER(iwp) ::  j     !:
     375
     376       REAL(wp) ::  ao        !:
     377       REAL(wp) ::  ao_gr     !:
     378       REAL(wp) ::  bbb       !:
     379       REAL(wp) ::  be        !:
     380       REAL(wp) ::  b1        !:
     381       REAL(wp) ::  b2        !:
     382       REAL(wp) ::  ccc       !:
     383       REAL(wp) ::  c1        !:
     384       REAL(wp) ::  c1_gr     !:
     385       REAL(wp) ::  c2        !:
     386       REAL(wp) ::  d1        !:
     387       REAL(wp) ::  d2        !:
     388       REAL(wp) ::  eta       !:
     389       REAL(wp) ::  e1        !:
     390       REAL(wp) ::  e2        !:
     391       REAL(wp) ::  fao_gr    !:
     392       REAL(wp) ::  fr        !:
     393       REAL(wp) ::  grfin     !:
     394       REAL(wp) ::  lambda    !:
     395       REAL(wp) ::  lambda_re !:
     396       REAL(wp) ::  lf        !:
     397       REAL(wp) ::  rc        !:
     398       REAL(wp) ::  rrp       !:
     399       REAL(wp) ::  sst       !:
     400       REAL(wp) ::  tauk      !:
     401       REAL(wp) ::  tl        !:
     402       REAL(wp) ::  t2        !:
     403       REAL(wp) ::  tt        !:
     404       REAL(wp) ::  t1        !:
     405       REAL(wp) ::  vk        !:
     406       REAL(wp) ::  vrms1xy   !:
     407       REAL(wp) ::  vrms2xy   !:
     408       REAL(wp) ::  v1        !:
     409       REAL(wp) ::  v1v2xy    !:
     410       REAL(wp) ::  v1xysq    !:
     411       REAL(wp) ::  v2        !:
     412       REAL(wp) ::  v2xysq    !:
     413       REAL(wp) ::  wrfin     !:
     414       REAL(wp) ::  wrgrav2   !:
     415       REAL(wp) ::  wrtur2xy  !:
     416       REAL(wp) ::  xx        !:
     417       REAL(wp) ::  yy        !:
     418       REAL(wp) ::  z         !:
     419
     420       REAL(wp), DIMENSION(1:radius_classes) ::  st  !:
     421       REAL(wp), DIMENSION(1:radius_classes) ::  tau !:
     422       
    362423!
    363424!--    Initial assignment of constants
     
    478539! phi_w as a function
    479540!------------------------------------------------------------------------------!
    480     REAL FUNCTION phi_w( a, b, vsett, tau0 )
     541    REAL(wp) FUNCTION phi_w( a, b, vsett, tau0 )
    481542
    482543       IMPLICIT NONE
    483544
    484        REAL ::  a, aa1, b, tau0, vsett
     545       REAL(wp) ::  a     !:
     546       REAL(wp) ::  aa1   !:
     547       REAL(wp) ::  b     !:
     548       REAL(wp) ::  tau0  !:
     549       REAL(wp) ::  vsett !:
    485550
    486551       aa1 = 1.0 / tau0 + 1.0 / a + vsett / b
     
    493558! zhi as a function
    494559!------------------------------------------------------------------------------!
    495     REAL FUNCTION zhi( a, b, vsett1, tau1, vsett2, tau2 )
     560    REAL(wp) FUNCTION zhi( a, b, vsett1, tau1, vsett2, tau2 )
    496561
    497562       IMPLICIT NONE
    498563
    499        REAL ::  a, aa1, aa2, aa3, aa4, aa5, aa6, b, tau1, tau2, vsett1, vsett2
     564       REAL(wp) ::  a      !:
     565       REAL(wp) ::  aa1    !:
     566       REAL(wp) ::  aa2    !:
     567       REAL(wp) ::  aa3    !:
     568       REAL(wp) ::  aa4    !:
     569       REAL(wp) ::  aa5    !:
     570       REAL(wp) ::  aa6    !:
     571       REAL(wp) ::  b      !:
     572       REAL(wp) ::  tau1   !:
     573       REAL(wp) ::  tau2   !:
     574       REAL(wp) ::  vsett1 !:
     575       REAL(wp) ::  vsett2 !:
    500576
    501577       aa1 = vsett2 / b - 1.0 / tau2 - 1.0 / a
     
    518594!------------------------------------------------------------------------------!
    519595    SUBROUTINE fallg
    520 
    521        USE constants
    522        USE cloud_parameters
    523        USE particle_attributes
    524        USE arrays_3d
    525        USE control_parameters
     596 
     597       USE cloud_parameters,                                                   &
     598           ONLY:  rho_l
     599   
     600       USE control_parameters,                                                 &
     601           ONLY:  g
     602
     603       USE particle_attributes,                                                &
     604           ONLY:  radius_classes
     605
    526606
    527607       IMPLICIT NONE
    528608
    529        INTEGER ::  i, j
    530 
    531        LOGICAL, SAVE ::  first = .TRUE.
    532 
    533        REAL, SAVE ::  cunh, eta, phy, py, rho_a, sigma, stb, stok, xlamb
    534 
    535        REAL ::  bond, x, xrey, y
    536 
    537        REAL, DIMENSION(1:7), SAVE  ::  b
    538        REAL, DIMENSION(1:6), SAVE  ::  c
     609       INTEGER(iwp) ::  i !:
     610       INTEGER(iwp) ::  j !:
     611
     612       LOGICAL, SAVE ::  first = .TRUE. !:
     613
     614       REAL(wp), SAVE ::  cunh  !:
     615       REAL(wp), SAVE ::  eta   !:
     616       REAL(wp), SAVE ::  phy   !:
     617       REAL(wp), SAVE ::  py    !:
     618       REAL(wp), SAVE ::  rho_a !:
     619       REAL(wp), SAVE ::  sigma !:
     620       REAL(wp), SAVE ::  stb   !:
     621       REAL(wp), SAVE ::  stok  !:
     622       REAL(wp), SAVE ::  xlamb !:
     623
     624       REAL(wp) ::  bond        !:
     625       REAL(wp) ::  x           !:
     626       REAL(wp) ::  xrey        !:
     627       REAL(wp) ::  y           !:
     628
     629       REAL(wp), DIMENSION(1:7), SAVE  ::  b !:
     630       REAL(wp), DIMENSION(1:6), SAVE  ::  c !:
    539631
    540632!
     
    617709!------------------------------------------------------------------------------!
    618710    SUBROUTINE effic
    619 
    620        USE arrays_3d
    621        USE cloud_parameters
    622        USE constants
    623        USE particle_attributes
     711 
     712       USE particle_attributes,                                                &
     713           ONLY:  radius_classes
    624714
    625715       IMPLICIT NONE
    626716
    627        INTEGER ::  i, iq, ir, j, k
    628 
    629        INTEGER, DIMENSION(:), ALLOCATABLE ::  ira
    630 
    631        LOGICAL, SAVE ::  first = .TRUE.
    632 
    633        REAL ::  ek, particle_radius, pp, qq, rq
    634 
    635        REAL, DIMENSION(1:21), SAVE ::  rat
    636        REAL, DIMENSION(1:15), SAVE ::  r0
    637        REAL, DIMENSION(1:15,1:21), SAVE ::  ecoll
     717       INTEGER(iwp) ::  i  !:
     718       INTEGER(iwp) ::  iq !:
     719       INTEGER(iwp) ::  ir !:
     720       INTEGER(iwp) ::  j  !:
     721       INTEGER(iwp) ::  k  !:
     722
     723       INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ira !:
     724
     725       LOGICAL, SAVE ::  first = .TRUE. !:
     726
     727       REAL(wp) ::  ek              !:
     728       REAL(wp) ::  particle_radius !:
     729       REAL(wp) ::  pp              !:
     730       REAL(wp) ::  qq              !:
     731       REAL(wp) ::  rq              !:
     732
     733       REAL(wp), DIMENSION(1:21), SAVE ::  rat        !:
     734       
     735       REAL(wp), DIMENSION(1:15), SAVE ::  r0         !:
     736       
     737       REAL(wp), DIMENSION(1:15,1:21), SAVE ::  ecoll !:
    638738
    639739!
     
    754854    SUBROUTINE turb_enhance_eff
    755855
    756        USE constants
    757        USE cloud_parameters
    758        USE particle_attributes
    759        USE arrays_3d
     856       USE particle_attributes,                                                &
     857           ONLY:  radius_classes
    760858
    761859       IMPLICIT NONE
    762860
    763        INTEGER :: i, iq, ir, j, k, kk
    764 
    765        INTEGER, DIMENSION(:), ALLOCATABLE ::  ira
    766 
    767        REAL ::  particle_radius, pp, qq, rq, y1, y2, y3
    768 
    769        LOGICAL, SAVE ::  first = .TRUE.
    770 
    771        REAL, DIMENSION(1:11), SAVE ::  rat
    772        REAL, DIMENSION(1:7), SAVE  ::  r0
    773        REAL, DIMENSION(1:7,1:11), SAVE ::  ecoll_100, ecoll_400
     861       INTEGER(iwp) :: i  !:
     862       INTEGER(iwp) :: iq !:
     863       INTEGER(iwp) :: ir !:
     864       INTEGER(iwp) :: j  !:
     865       INTEGER(iwp) :: k  !:
     866       INTEGER(iwp) :: kk !:
     867
     868       INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ira !:
     869       
     870       LOGICAL, SAVE ::  first = .TRUE. !:
     871
     872       REAL(wp) ::  particle_radius !:
     873       REAL(wp) ::  pp              !:
     874       REAL(wp) ::  qq              !:
     875       REAL(wp) ::  rq              !:
     876       REAL(wp) ::  y1              !:
     877       REAL(wp) ::  y2              !:
     878       REAL(wp) ::  y3              !:
     879
     880       REAL(wp), DIMENSION(1:11), SAVE ::  rat           !:
     881       
     882       REAL(wp), DIMENSION(1:7), SAVE  ::  r0            !:
     883       
     884       REAL(wp), DIMENSION(1:7,1:11), SAVE ::  ecoll_100 !:
     885       REAL(wp), DIMENSION(1:7,1:11), SAVE ::  ecoll_400 !:
    774886
    775887!
     
    8981010       IMPLICIT NONE
    8991011
    900        INTEGER       ::  i, j, k
    901 
    902        LOGICAL, SAVE ::  first = .TRUE.
    903 
    904        REAL          ::  aa, bb, cc, dd, dx, dy, e, gg, mean_r, mean_rm, r, &
    905                          rm, x, y
    906 
    907        REAL, DIMENSION(1:9), SAVE      ::  collected_r = 0.0
    908        REAL, DIMENSION(1:19), SAVE     ::  collector_r = 0.0
    909        REAL, DIMENSION(1:9,1:19), SAVE ::  ef = 0.0
     1012       INTEGER(iwp)  ::  i !:
     1013       INTEGER(iwp)  ::  j !:
     1014       INTEGER(iwp)  ::  k !:
     1015
     1016       LOGICAL, SAVE ::  first = .TRUE. !:
     1017
     1018       REAL(wp)      ::  aa      !:
     1019       REAL(wp)      ::  bb      !:
     1020       REAL(wp)      ::  cc      !:
     1021       REAL(wp)      ::  dd      !:
     1022       REAL(wp)      ::  dx      !:
     1023       REAL(wp)      ::  dy      !:
     1024       REAL(wp)      ::  e       !:
     1025       REAL(wp)      ::  gg      !:
     1026       REAL(wp)      ::  mean_r  !:
     1027       REAL(wp)      ::  mean_rm !:
     1028       REAL(wp)      ::  r       !:
     1029       REAL(wp)      ::  rm      !:
     1030       REAL(wp)      ::  x       !:
     1031       REAL(wp)      ::  y       !:
     1032 
     1033       REAL(wp), DIMENSION(1:9), SAVE      ::  collected_r = 0.0 !:
     1034       
     1035       REAL(wp), DIMENSION(1:19), SAVE     ::  collector_r = 0.0 !:
     1036       
     1037       REAL(wp), DIMENSION(1:9,1:19), SAVE ::  ef = 0.0          !:
    9101038
    9111039       mean_rm = mean_r * 1.0E06
Note: See TracChangeset for help on using the changeset viewer.