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/microphysics.f90

    r1310 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! comment fields (!:) to be used for variable explanations added to
     26! all variable declaration statements
    2327!
    2428! Former revisions:
     
    111115       USE grid_variables
    112116       USE indices
     117       USE kinds
    113118       USE statistics
    114119
    115120       IMPLICIT NONE
    116121
    117        INTEGER ::  i, j, k
    118 
     122       INTEGER(iwp) ::  i                 !:
     123       INTEGER(iwp) ::  j                 !:
     124       INTEGER(iwp) ::  k                 !:
    119125 
    120126       DO  i = nxl, nxr
     
    133139       USE cloud_parameters
    134140       USE indices
    135 
    136        IMPLICIT NONE
    137 
    138        INTEGER ::  i, j, k
     141       USE kinds
     142
     143       IMPLICIT NONE
     144
     145       INTEGER(iwp) ::  i                 !:
     146       INTEGER(iwp) ::  j                 !:
     147       INTEGER(iwp) ::  k                 !:
    139148
    140149 
     
    157166       USE grid_variables
    158167       USE indices
    159 
    160        IMPLICIT NONE
    161 
    162        INTEGER ::  i, j, k
    163 
    164  
     168       USE kinds
     169
     170       IMPLICIT NONE
     171
     172       INTEGER(iwp) ::  i                 !:
     173       INTEGER(iwp) ::  j                 !:
     174       INTEGER(iwp) ::  k                 !:
     175
    165176       DO  i = nxl, nxr
    166177          DO  j = nys, nyn
     
    180191       USE control_parameters
    181192       USE indices
    182 
    183        IMPLICIT NONE
    184 
    185        INTEGER ::  i, j, k
    186 
    187  
     193       USE kinds
     194
     195       IMPLICIT NONE
     196
     197       INTEGER(iwp) ::  i                 !:
     198       INTEGER(iwp) ::  j                 !:
     199       INTEGER(iwp) ::  k                 !:
     200
    188201       DO  i = nxl, nxr
    189202          DO  j = nys, nyn
     
    203216       USE control_parameters
    204217       USE indices
    205 
    206        IMPLICIT NONE
    207 
    208        INTEGER ::  i, j, k
     218       USE kinds
     219
     220       IMPLICIT NONE
     221
     222       INTEGER(iwp) ::  i                 !:
     223       INTEGER(iwp) ::  j                 !:
     224       INTEGER(iwp) ::  k                 !:
    209225
    210226 
     
    227243       USE control_parameters
    228244       USE indices
    229 
    230        IMPLICIT NONE
    231 
    232        INTEGER ::  i, j, k
    233 
     245       USE kinds
     246
     247       IMPLICIT NONE
     248
     249       INTEGER(iwp) ::  i                 !:
     250       INTEGER(iwp) ::  j                 !:
     251       INTEGER(iwp) ::  k                 !:
    234252 
    235253       DO  i = nxl, nxr
     
    251269       USE control_parameters
    252270       USE indices
    253 
    254        IMPLICIT NONE
    255 
    256        INTEGER ::  i, j, k
    257 
     271       USE kinds
     272
     273       IMPLICIT NONE
     274
     275       INTEGER(iwp) ::  i                 !:
     276       INTEGER(iwp) ::  j                 !:
     277       INTEGER(iwp) ::  k                 !:
    258278 
    259279       DO  i = nxl, nxr
     
    275295       USE control_parameters
    276296       USE indices
     297       USE kinds
    277298       USE statistics
    278299
    279300       IMPLICIT NONE
    280301
    281        INTEGER ::  i, j, k
    282 
     302       INTEGER(iwp) ::  i                 !:
     303       INTEGER(iwp) ::  j                 !:
     304       INTEGER(iwp) ::  k                 !:
    283305 
    284306       DO  i = nxl, nxr
     
    299321    SUBROUTINE microphysics_control_ij( i, j )
    300322
    301        USE arrays_3d
    302        USE cloud_parameters
    303        USE control_parameters
    304        USE grid_variables
    305        USE indices
    306        USE statistics
    307 
    308        IMPLICIT NONE
    309 
    310        INTEGER ::  i, j, k
    311        REAL    ::  t_surface
     323       USE arrays_3d,                                                          &
     324           ONLY:  hyp, nc_1d,  nr, nr_1d, pt, pt_init, pt_1d, q, q_1d, qc,     &
     325                  qc_1d, qr, qr_1d, tend_nr, tend_pt, tend_q, tend_qr, zu
     326
     327       USE cloud_parameters,                                                   &
     328           ONLY:  cp, hyrho, nc_const, pt_d_t, r_d, t_d_pt
     329
     330       USE control_parameters,                                                 &
     331           ONLY:  drizzle, dt_3d, dt_micro, g, intermediate_timestep_count,    &
     332                  large_scale_forcing, lsf_surf, precipitation, pt_surface,    &
     333                  rho_surface,surface_pressure
     334
     335       USE indices,                                                            &
     336           ONLY:  nzb, nzt
     337
     338       USE kinds
     339
     340       USE statistics,                                                         &
     341           ONLY:  weight_pres
     342
     343       IMPLICIT NONE
     344
     345       INTEGER(iwp) ::  i                 !:
     346       INTEGER(iwp) ::  j                 !:
     347       INTEGER(iwp) ::  k                 !:
     348
     349       REAL(wp)     ::  t_surface         !:
    312350
    313351       IF ( large_scale_forcing .AND. lsf_surf ) THEN
     
    369407    SUBROUTINE adjust_cloud_ij( i, j )
    370408
    371        USE arrays_3d
    372        USE cloud_parameters
    373        USE indices
    374 
    375        IMPLICIT NONE
    376 
    377        INTEGER ::  i, j, k
     409       USE arrays_3d,                                                          &
     410           ONLY:  qr, nr
     411
     412       USE cloud_parameters,                                                   &
     413           ONLY:  eps_sb, xrmin, xrmax, hyrho, k_cc, x0
     414
     415       USE indices,                                                            &
     416           ONLY:  nzb, nzb_s_inner, nzt
     417
     418       USE kinds
     419
     420       IMPLICIT NONE
     421
     422       INTEGER(iwp) ::  i                 !:
     423       INTEGER(iwp) ::  j                 !:
     424       INTEGER(iwp) ::  k                 !:
    378425!
    379426!--    Adjust number of raindrops to avoid nonlinear effects in
     
    407454    SUBROUTINE autoconversion_ij( i, j )
    408455
    409        USE arrays_3d
    410        USE cloud_parameters
    411        USE control_parameters
    412        USE grid_variables
    413        USE indices
    414 
    415        IMPLICIT NONE
    416 
    417        INTEGER ::  i, j, k
    418        REAL    ::  alpha_cc, autocon, epsilon, k_au, l_mix, nu_c, phi_au,      &
    419                    r_cc, rc, re_lambda, selfcoll, sigma_cc, tau_cloud, xc                     
    420 
     456       USE arrays_3d,                                                          &
     457           ONLY:  diss, dzu, nc_1d, nr_1d, qc_1d, qr_1d
     458
     459       USE cloud_parameters,                                                   &
     460           ONLY:  a_1, a_2, a_3, b_1, b_2, b_3, beta_cc, c_1, c_2, c_3,        &
     461                  c_const, dpirho_l, eps_sb, hyrho, k_cc, kin_vis_air, x0
     462
     463       USE control_parameters,                                                 &
     464           ONLY:  dt_micro, rho_surface, turbulence
     465
     466       USE grid_variables,                                                     &
     467           ONLY:  dx, dy
     468
     469       USE indices,                                                            &
     470           ONLY:  nzb, nzb_s_inner, nzt
     471
     472       USE kinds
     473
     474       IMPLICIT NONE
     475
     476       INTEGER(iwp) ::  i                 !:
     477       INTEGER(iwp) ::  j                 !:
     478       INTEGER(iwp) ::  k                 !:
     479
     480       REAL(wp)     ::  alpha_cc          !:                   
     481       REAL(wp)     ::  autocon           !:
     482       REAL(wp)     ::  epsilon           !:
     483       REAL(wp)     ::  k_au              !:
     484       REAL(wp)     ::  l_mix             !:
     485       REAL(wp)     ::  nu_c              !:
     486       REAL(wp)     ::  phi_au            !:
     487       REAL(wp)     ::  r_cc              !:
     488       REAL(wp)     ::  rc                !:
     489       REAL(wp)     ::  re_lambda         !:
     490       REAL(wp)     ::  selfcoll          !:
     491       REAL(wp)     ::  sigma_cc          !:
     492       REAL(wp)     ::  tau_cloud         !:
     493       REAL(wp)     ::  xc                !:
    421494
    422495       k_au = k_cc / ( 20.0 * x0 )
     
    491564    SUBROUTINE accretion_ij( i, j )
    492565
    493        USE arrays_3d
    494        USE cloud_parameters
    495        USE control_parameters
    496        USE indices
    497 
    498        IMPLICIT NONE
    499 
    500        INTEGER ::  i, j, k
    501        REAL    ::  accr, k_cr, phi_ac, tau_cloud, xc
     566       USE arrays_3d,                                                          &
     567           ONLY:  diss, qc_1d, qr_1d
     568
     569       USE cloud_parameters,                                                   &
     570           ONLY:  eps_sb, hyrho, k_cr0
     571
     572       USE control_parameters,                                                 &
     573           ONLY:  dt_micro, rho_surface, turbulence
     574
     575       USE indices,                                                            &
     576           ONLY:  nzb, nzb_s_inner, nzt
     577
     578       USE kinds
     579
     580       IMPLICIT NONE
     581
     582       INTEGER(iwp) ::  i                 !:
     583       INTEGER(iwp) ::  j                 !:
     584       INTEGER(iwp) ::  k                 !:
     585
     586       REAL(wp)     ::  accr              !:
     587       REAL(wp)     ::  k_cr              !:
     588       REAL(wp)     ::  phi_ac            !:
     589       REAL(wp)     ::  tau_cloud         !:
     590       REAL(wp)     ::  xc                !:
    502591
    503592       DO  k = nzb_s_inner(j,i)+1, nzt
     
    539628    SUBROUTINE selfcollection_breakup_ij( i, j )
    540629
    541        USE arrays_3d
    542        USE cloud_parameters
    543        USE control_parameters
    544        USE indices
     630       USE arrays_3d,                                                          &
     631           ONLY:  nr_1d, qr_1d
     632
     633       USE cloud_parameters,                                                   &
     634           ONLY:  dpirho_l, eps_sb, hyrho, k_br, k_rr
     635
     636       USE control_parameters,                                                 &
     637           ONLY:  dt_micro, rho_surface
     638
     639       USE indices,                                                            &
     640           ONLY:  nzb, nzb_s_inner, nzt
     641
     642       USE kinds
    545643   
    546644       IMPLICIT NONE
    547645
    548        INTEGER ::  i, j, k
    549        REAL    ::  breakup, dr, phi_br, selfcoll
     646       INTEGER(iwp) ::  i                 !:
     647       INTEGER(iwp) ::  j                 !:
     648       INTEGER(iwp) ::  k                 !:
     649
     650       REAL(wp)     ::  breakup           !:
     651       REAL(wp)     ::  dr                !:
     652       REAL(wp)     ::  phi_br            !:
     653       REAL(wp)     ::  selfcoll          !:
    550654
    551655       DO  k = nzb_s_inner(j,i)+1, nzt
     
    581685!--    precipitable water.
    582686
    583        USE arrays_3d
    584        USE cloud_parameters
    585        USE constants
    586        USE control_parameters
    587        USE indices
    588 
    589        IMPLICIT NONE
    590 
    591        INTEGER ::  i, j, k
    592        REAL    ::  alpha, dr, e_s, evap, evap_nr, f_vent, g_evap, lambda_r, &
    593                    mu_r, mu_r_2, mu_r_5d2, nr_0, q_s, sat, t_l, temp, xr
     687       USE arrays_3d,                                                          &
     688           ONLY:  hyp, nr_1d, pt_1d, q_1d,  qc_1d, qr_1d
     689
     690       USE cloud_parameters,                                                   &
     691           ONLY:  a_term, a_vent, b_term, b_vent, c_evap, c_term, diff_coeff_l,&
     692                  dpirho_l, eps_sb, hyrho, kin_vis_air, k_st, l_d_cp, l_d_r,   &
     693                  l_v, rho_l, r_v, schmidt_p_1d3, thermal_conductivity_l,      &
     694                  t_d_pt, ventilation_effect
     695
     696       USE constants,                                                          &
     697           ONLY:  pi
     698
     699       USE control_parameters,                                                 &
     700           ONLY:  dt_micro
     701
     702       USE indices,                                                            &
     703           ONLY:  nzb, nzb_s_inner, nzt
     704
     705       USE kinds
     706
     707       IMPLICIT NONE
     708
     709       INTEGER(iwp) ::  i                 !:
     710       INTEGER(iwp) ::  j                 !:
     711       INTEGER(iwp) ::  k                 !:
     712
     713       REAL(wp)     ::  alpha             !:
     714       REAL(wp)     ::  dr                !:
     715       REAL(wp)     ::  e_s               !:
     716       REAL(wp)     ::  evap              !:
     717       REAL(wp)     ::  evap_nr           !:
     718       REAL(wp)     ::  f_vent            !:
     719       REAL(wp)     ::  g_evap            !:
     720       REAL(wp)     ::  lambda_r          !:
     721       REAL(wp)     ::  mu_r              !:
     722       REAL(wp)     ::  mu_r_2            !:
     723       REAL(wp)     ::  mu_r_5d2          !:
     724       REAL(wp)     ::  nr_0              !:
     725       REAL(wp)     ::  q_s               !:
     726       REAL(wp)     ::  sat               !:
     727       REAL(wp)     ::  t_l               !:
     728       REAL(wp)     ::  temp              !:
     729       REAL(wp)     ::  xr                !:
    594730
    595731       DO  k = nzb_s_inner(j,i)+1, nzt
     
    680816    SUBROUTINE sedimentation_cloud_ij( i, j )
    681817
    682        USE arrays_3d
    683        USE cloud_parameters
    684        USE constants
    685        USE control_parameters
    686        USE indices
     818       USE arrays_3d,                                                          &
     819           ONLY:  ddzu, dzu, nc_1d, pt_1d, q_1d, qc_1d
     820
     821       USE cloud_parameters,                                                   &
     822           ONLY:  eps_sb, hyrho, k_st, l_d_cp, prr, pt_d_t, rho_l, sigma_gc
     823
     824       USE constants,                                                          &
     825           ONLY:  pi
     826
     827       USE control_parameters,                                                 &
     828           ONLY:  dt_do2d_xy, dt_micro, intermediate_timestep_count
     829
     830       USE indices,                                                            &
     831           ONLY:  nzb, nzb_s_inner, nzt
     832
     833       USE kinds
    687834       
    688835       IMPLICIT NONE
    689836
    690        INTEGER ::  i, j, k
    691        REAL    ::  sed_qc_const
    692 
    693        REAL, DIMENSION(nzb:nzt+1) :: sed_qc
     837       INTEGER(iwp) ::  i                 !:
     838       INTEGER(iwp) ::  j                 !:
     839       INTEGER(iwp) ::  k                 !:
     840
     841       REAL(wp)     ::  sed_qc_const      !:
     842
     843
     844       REAL(wp), DIMENSION(nzb:nzt+1) :: sed_qc
    694845
    695846!
     
    725876    SUBROUTINE sedimentation_rain_ij( i, j )
    726877
    727        USE arrays_3d
    728        USE cloud_parameters
    729        USE constants
    730        USE control_parameters
    731        USE indices
    732        USE statistics
     878       USE arrays_3d,                                                          &
     879           ONLY:  ddzu, dzu, nr_1d, pt_1d, q_1d, qr_1d
     880
     881       USE cloud_parameters,                                                   &
     882           ONLY:  a_term, b_term, c_term, cof, dpirho_l, eps_sb, hyrho,        &
     883                  limiter_sedimentation, l_d_cp, precipitation_amount, prr,    &
     884                  pt_d_t, stp
     885
     886       USE control_parameters,                                                 &
     887           ONLY:  dt_do2d_xy, dt_micro, dt_3d, intermediate_timestep_count,    &
     888                  intermediate_timestep_count_max,                             &
     889                  precipitation_amount_interval, time_do2d_xy
     890
     891       USE indices,                                                            &
     892           ONLY:  nzb, nzb_s_inner, nzt
     893
     894       USE kinds
     895
     896       USE statistics,                                                         &
     897           ONLY:  weight_substep
    733898       
    734899       IMPLICIT NONE
    735900
    736        INTEGER ::  i, j, k, k_run
    737        REAL    ::  c_run, d_max, d_mean, d_min, dr, dt_sedi, flux, lambda_r,  &
    738                    mu_r, z_run
    739 
    740        REAL, DIMENSION(nzb:nzt+1) :: c_nr, c_qr, d_nr, d_qr, nr_slope,        &
    741                                      qr_slope, sed_nr, sed_qr, w_nr, w_qr
     901       INTEGER(iwp) ::  i                          !:
     902       INTEGER(iwp) ::  j                          !:
     903       INTEGER(iwp) ::  k                          !:
     904       INTEGER(iwp) ::  k_run                      !:
     905
     906       REAL(wp)     ::  c_run                      !:
     907       REAL(wp)     ::  d_max                      !:
     908       REAL(wp)     ::  d_mean                     !:
     909       REAL(wp)     ::  d_min                      !:
     910       REAL(wp)     ::  dr                         !:
     911       REAL(wp)     ::  dt_sedi                    !:
     912       REAL(wp)     ::  flux                       !:
     913       REAL(wp)     ::  lambda_r                   !:
     914       REAL(wp)     ::  mu_r                       !:
     915       REAL(wp)     ::  z_run                      !:
     916
     917      REAL(wp), DIMENSION(nzb:nzt+1) ::  c_nr      !:
     918      REAL(wp), DIMENSION(nzb:nzt+1) ::  c_qr      !:
     919      REAL(wp), DIMENSION(nzb:nzt+1) ::  d_nr      !:
     920      REAL(wp), DIMENSION(nzb:nzt+1) ::  d_qr      !:
     921      REAL(wp), DIMENSION(nzb:nzt+1) ::  nr_slope  !:
     922      REAL(wp), DIMENSION(nzb:nzt+1) ::  qr_slope  !:
     923      REAL(wp), DIMENSION(nzb:nzt+1) ::  sed_nr    !:
     924      REAL(wp), DIMENSION(nzb:nzt+1) ::  sed_qr    !:
     925      REAL(wp), DIMENSION(nzb:nzt+1) ::  w_nr      !:
     926      REAL(wp), DIMENSION(nzb:nzt+1) ::  w_qr      !:
     927
     928
    742929!
    743930!--    Computation of sedimentation flux. Implementation according to Stevens
     
    8961083    FUNCTION gamm( xx )
    8971084       
    898        USE cloud_parameters
    899    
     1085       USE cloud_parameters,                                                   &
     1086           ONLY:  cof, stp
     1087
     1088       USE kinds
     1089
    9001090       IMPLICIT NONE
    901  
    902        REAL    ::  gamm, ser, tmp, x_gamm, xx, y_gamm
    903        INTEGER ::  j
    904 
    905  
     1091
     1092       INTEGER(iwp) ::  j            !:
     1093
     1094       REAL(wp)     ::  gamm         !:
     1095       REAL(wp)     ::  ser          !:
     1096       REAL(wp)     ::  tmp          !:
     1097       REAL(wp)     ::  x_gamm       !:
     1098       REAL(wp)     ::  xx           !:
     1099       REAL(wp)     ::  y_gamm       !:
     1100
    9061101       x_gamm = xx
    9071102       y_gamm = x_gamm
Note: See TracChangeset for help on using the changeset viewer.