Ignore:
Timestamp:
Aug 2, 2024, 9:58:25 PM (7 weeks ago)
Author:
abarral
Message:

Put dimensions.h and paramet.h into modules

Location:
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust
Files:
36 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/aeropt_spl.f90

    r5144 r5159  
    77        taue550_dust, taue670_dust, taue865_dust, &
    88        taue550_dustsco, taue670_dustsco, taue865_dustsco)
    9   !
     9
    1010  USE dimphy
    1111  USE infotrac
    1212  USE lmdz_yomcst
    1313
     14USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    1415  IMPLICIT NONE
    15   !
     16
    1617  INCLUDE "chem.h"
    17   INCLUDE "dimensions.h"
    18   !
     18
     19
    1920  ! Arguments:
    20   !
     21
    2122  !======================== INPUT ==================================
    2223  REAL :: zdz(klon, klev)
     
    8788
    8889  DATA RH_tab/0., 10., 20., 30., 40., 50., 60., 70., 80., 85., 90., 95./
    89   !
     90
    9091  IF (ok_chimeredust) THEN
    9192    !JE20150212<< : changes in ustar in dustmod changes emission distribution
     
    126127  DO k = 1, klev
    127128    DO i = 1, klon
    128       !
     129
    129130      rh = MIN(RHcl(i, k) * 100., RH_MAX)
    130131      RH_num = INT(rh / 10. + 1.)
     
    237238
    238239
    239       !
     240
    240241      IF(id_coss>0)  burden_ss(i) = burden_ss(i) &
    241242              + tr_seri(i, k, id_coss) * 1.e6 * 1.e3 * zdz(i, k)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/bcscav_spl.f90

    r5144 r5159  
    55  USE lmdz_yomcst
    66
     7  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    78  IMPLICIT NONE
    89  !=====================================================================
     
    1213  !=====================================================================
    1314  !
    14   INCLUDE "dimensions.h"
     15
    1516  INCLUDE "chem.h"
    16   !
     17
    1718  REAL :: pdtime, alpha_r, alpha_s, R_r, R_s
    1819  PARAMETER (R_r = 0.001)          !--mean raindrop radius (m)
     
    2425  REAL :: x(klon, klev)              ! q de traceur
    2526  REAL :: dx(klon, klev)             ! tendance de traceur
    26   !
     27
    2728  !--variables locales
    2829  INTEGER :: i, k
    2930  REAL :: pr, ps, ice, water
    30   !
     31
    3132  !------------------------------------------
    32   !
     33
    3334  ! NHL
    3435  ! Auxiliary variables defined to deal with the fact that precipitation
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/bl_for_dms.f90

    r5153 r5159  
    66  USE lmdz_yomcst
    77
     8  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    89  IMPLICIT NONE
    910 INCLUDE "FCTTRE.h"
    10   !
     11
    1112  !===================================================================
    1213  ! Auteur : E. Cosme
     
    2223  !===================================================================
    2324  !
    24   INCLUDE "dimensions.h"
    25   !
     25
     26
    2627  ! Arguments :
    2728  REAL :: u(klon, klev)          ! vent zonal
     
    3637  REAL :: ustar(klon)           ! vitesse de friction
    3738  REAL :: obklen(klon)          ! longueur de Monin-Obukhov
    38   !
     39
    3940  ! Locales :
    4041  REAL :: vk
     
    5354
    5455
    55   !
     56
    5657  !======================================================================
    57   !
     58
    5859  ! Calculer les hauteurs de chaque couche
    59   !
     60
    6061  ! JE20150707      r2es=611.14 *18.0153/28.9644
    6162  DO i = 1, klon
     
    7273
    7374  DO i = 1, klon
    74     !
     75
    7576    zdelta = MAX(0., SIGN(1., RTT - tsol(i)))
    7677    zcvm5 = R5LES * RLVTT * (1. - zdelta) + R5IES * RLSTT * zdelta
     
    8081    zcor = 1. / (1. - retv * zxqs)
    8182    zxqs = zxqs * zcor
    82     !
     83
    8384    zx_alf1 = 1.0
    8485    zx_alf2 = 1.0 - zx_alf1
     
    9899    ustar(i) = SQRT(taux**2 + tauy**2)
    99100    ustar(i) = MAX(SQRT(ustar(i)), 0.01)
    100     !
     101
    101102  ENDDO
    102   !
     103
    103104  DO i = 1, klon
    104105    obklen(i) = -t(i, 1) * ustar(i)**3 / (RG * vk * heatv(i))
    105106  ENDDO
    106   !
     107
    107108END SUBROUTINE
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/blcloud_scav.f90

    r5144 r5159  
    1010  USE lmdz_yomcst
    1111
     12USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     13  USE lmdz_paramet
    1214  IMPLICIT NONE
    1315
    14   INCLUDE "dimensions.h"
     16
    1517  INCLUDE "chem.h"
    16   INCLUDE "paramet.h"
    1718
    1819  !============================= INPUT ===================================
     
    4041
    4142  DO it = 1, nbtr
    42     !
     43
    4344    DO j = 1, klev
    4445      DO i = 1, klon
     
    4748      ENDDO
    4849    ENDDO
    49     !
     50
    5051    !nhl      CALL bcscav_spl(pdtphys,prfl,psfl,alpha_r(it),alpha_s(it),
    5152    !nhl     .                tr_seri(1,1,it),d_tr(1,1,it))
    5253    CALL bcscav_spl(pdtphys, prfl, psfl, alpha_r(it), alpha_s(it), &
    5354            aux_var1, aux_var2)
    54     !
     55
    5556    DO j = 1, klev
    5657      DO i = 1, klon
     
    6768      ENDDO
    6869    ENDDO
    69     !
     70
    7071    DO i = 1, klon
    7172      DO j = 1, klev
     
    7475      ENDDO
    7576    ENDDO
    76     !
     77
    7778    IF (lminmax) THEN
    7879      CALL minmaxqfi(aux_var1, qmin, qmax, 'depot humide bc lsc')
    7980      !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide bc lsc')
    8081    ENDIF
    81     !
     82
    8283    !-scheme for convective scavenging
    83     !
     84
    8485    !nhl      CALL bcscav_spl(pdtphys,pmflxr,pmflxs,alpha_r(it),alpha_s(it),
    8586    !nhl     .                tr_seri(1,1,it),d_tr(1,1,it))
     
    8990
    9091
    91     !
     92
    9293    DO i = 1, klon
    9394      DO j = 1, klev
     
    9697      ENDDO
    9798    ENDDO
    98     !
     99
    99100    DO k = 1, klev
    100101      DO i = 1, klon
     
    104105      ENDDO
    105106    ENDDO
    106     !
     107
    107108    IF (lminmax) THEN
    108109      DO j = 1, klev
     
    119120      ENDDO
    120121    ENDIF
    121     !
    122     !
     122
     123
    123124  ENDDO !--boucle sur it
    124   !
     125
    125126END SUBROUTINE blcloud_scav
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/blcloud_scav_lsc.f90

    r5144 r5159  
    1010  USE lmdz_yomcst
    1111
     12USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     13  USE lmdz_paramet
    1214  IMPLICIT NONE
    1315
    14   INCLUDE "dimensions.h"
     16
    1517  INCLUDE "chem.h"
    16   INCLUDE "paramet.h"
     18
    1719
    1820  !============================= INPUT ===================================
     
    4042
    4143  DO it = 1, nbtr
    42     !
     44
    4345    DO j = 1, klev
    4446      DO i = 1, klon
     
    4749      ENDDO
    4850    ENDDO
    49     !
     51
    5052    !nhl      CALL bcscav_spl(pdtphys,prfl,psfl,alpha_r(it),alpha_s(it),
    5153    !nhl     .                tr_seri(1,1,it),d_tr(1,1,it))
    5254    CALL bcscav_spl(pdtphys, prfl, psfl, alpha_r(it), alpha_s(it), &
    5355            aux_var1, aux_var2)
    54     !
     56
    5557    DO j = 1, klev
    5658      DO i = 1, klon
     
    6769      ENDDO
    6870    ENDDO
    69     !
     71
    7072    DO i = 1, klon
    7173      DO j = 1, klev
     
    7476      ENDDO
    7577    ENDDO
    76     !
     78
    7779    IF (lminmax) THEN
    7880      CALL minmaxqfi(aux_var1, qmin, qmax, 'depot humide bc lsc')
    7981      !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide bc lsc')
    8082    ENDIF
    81     !
     83
    8284    !-scheme for convective scavenging
    83     !
     85
    8486    !nhl      CALL bcscav_spl(pdtphys,pmflxr,pmflxs,alpha_r(it),alpha_s(it),
    8587    !nhl     .                tr_seri(1,1,it),d_tr(1,1,it))
     
    9092
    9193
    92     !
     94
    9395    DO i = 1, klon
    9496      DO j = 1, klev
     
    9799      ENDDO
    98100    ENDDO
    99     !
     101
    100102    DO k = 1, klev
    101103      DO i = 1, klon
     
    105107      ENDDO
    106108    ENDDO
    107     !
     109
    108110    IF (lminmax) THEN
    109111      DO j = 1, klev
     
    120122      ENDDO
    121123    ENDIF
    122     !
    123     !
     124
     125
    124126  ENDDO !--boucle sur it
    125   !
     127
    126128END SUBROUTINE blcloud_scav_lsc
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/cltrac_spl.f90

    r5144 r5159  
    33  USE dimphy
    44  USE lmdz_yomcst
     5  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    56
    67  IMPLICIT NONE
     
    2728  ! flux_tr--output-R- flux de tr
    2829  !======================================================================
    29   INCLUDE "dimensions.h"
    3030  REAL :: dtime
    3131  REAL :: coef(klon, klev)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/cm3_to_kg.f90

    r5144 r5159  
    66  USE lmdz_yomcst
    77
     8USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    89  IMPLICIT NONE
    910
    10   INCLUDE "dimensions.h"
     11
    1112
    1213  REAL :: t_seri(klon, klev), pplay(klon, klev)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/coarsemission.f90

    r5144 r5159  
    3232  USE lmdz_yomcst
    3333
     34USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     35  USE lmdz_paramet
    3436  IMPLICIT NONE
    3537
    36   INCLUDE "dimensions.h"
     38
    3739  INCLUDE "chem.h"
    3840  INCLUDE "chem_spla.h"
    39   INCLUDE "paramet.h"
     41
    4042
    4143  !============================== INPUT ==================================
     
    5658  REAL, DIMENSION(klon), INTENT(IN) :: wstar, Ale_bl, ale_wake
    5759
    58   !
     60
    5961  !------------------------- Scaling Parameters --------------------------
    60   !
     62
    6163  INTEGER :: iregion_dust(klon) !Defines  dust regions
    6264  REAL :: scale_param_ssacc  !Scaling parameter for Fine Sea Salt
     
    9092  !---------------------------- SEA SALT emissions ------------------------
    9193  REAL :: lmt_sea_salt(klon, ss_bins) !Sea salt 0.03-8.0 um
    92   !
     94
    9395  !--------vent 10 m CEPMMT
    94   !
     96
    9597  REAL :: dust_ec(klon)
    9698
     
    104106
    105107  ! avgdryrate=300./365.*pdtphys/86400.
    106   !
     108
    107109  ! DO i=1, klon
    108   !
     110
    109111  !   IF (cly(i).LT.9990..AND.wth(i).LT.9990.) THEN
    110112  !    zprecipinsoil(i)=zprecipinsoil(i) +
    111113  !    .        (pmflxr(i,1)+pmflxs(i,1)+prfl(i,1)+psfl(i,1))*pdtphys
    112   !
     114
    113115  !    clyfac=MIN(16., cly(i)*0.4+8.) ![mm] max amount of water hold in top soil
    114116  !    drying=avgdryrate*exp(0.03905491*
    115117  !    .                    exp(0.17446*(t_seri(i,1)-273.15))) ! [mm]
    116118  !    zprecipinsoil(i)=min(max(0.,zprecipinsoil(i)-drying),clyfac) ! [mm]
    117   !
     119
    118120  !   ENDIF
    119   !
     121
    120122  ! ENDDO
    121   !
     123
    122124  ! ==================== CALCULATING DUST EMISSIONS ======================
    123   !
     125
    124126  !  IF (lminmax) THEN
    125127  DO j = 1, nbtr
     
    133135  !  ENDIF
    134136
    135   !
     137
    136138  IF (.NOT. ok_chimeredust)  THEN
    137139    DO i = 1, klon
     
    259261    pct_ocean(i) = pctsrf(i, is_oce)
    260262  ENDDO
    261   !
     263
    262264  !  IF (lminmax) THEN
    263265  DO j = 1, nbtr
     
    287289    IF(id_coss>0)  flux_tr(i, id_coss) = &
    288290            scale_param_sscoa * lmt_sea_salt(i, 2) * 1.e4 * 1.e3 !mg/m2/s
    289     !
     291
    290292    flux_sparam_ssfine(i) = scale_param_ssacc * &
    291293            lmt_sea_salt(i, 1) * 1.e4 * 1.e3
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/condsurfc.f90

    r5134 r5159  
    55  USE dimphy
    66  USE netcdf, ONLY: nf90_close, nf90_noerr, nf90_inq_varid, nf90_open, nf90_nowrite, nf90_get_var
     7  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    78  IMPLICIT NONE
    89
     
    1011  ! --------------------------------------------------------
    1112
    12   INCLUDE "dimensions.h"
     13
    1314
    1415  REAL :: lmt_bcff(klon), lmt_bcbb(klon), lmt_bc_penner(klon)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/condsurfc_new.f90

    r5134 r5159  
    77  USE dimphy
    88  USE netcdf, ONLY: nf90_get_var, nf90_close, nf90_noerr, nf90_inq_varid, nf90_open, nf90_nowrite
     9  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    910  IMPLICIT NONE
    1011
     
    1213  ! --------------------------------------------------------
    1314
    14   INCLUDE "dimensions.h"
     15
    1516
    1617  REAL :: lmt_bcff(klon), lmt_bcnff(klon), lmt_bcba(klon)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/condsurfs.f90

    r5134 r5159  
    66  USE netcdf, ONLY: nf90_close, nf90_noerr, nf90_inq_varid, nf90_open, &
    77          nf90_nowrite, nf90_get_var
     8  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    89  IMPLICIT NONE
    910
     
    1112  ! --------------------------------------------------------
    1213
    13   INCLUDE "dimensions.h"
     14
    1415
    1516  REAL :: lmt_so2h(klon), lmt_so2b(klon), lmt_so2bb(klon)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/condsurfs_new.f90

    r5134 r5159  
    1010  USE dimphy
    1111  USE netcdf, ONLY: nf90_get_var, nf90_inq_varid, nf90_close, nf90_noerr, nf90_open, nf90_nowrite
     12  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    1213  IMPLICIT NONE
    1314
     
    1516  ! --------------------------------------------------------
    1617
    17   INCLUDE "dimensions.h"
     18
    1819
    1920  REAL :: lmt_so2b(klon), lmt_so2h(klon), lmt_so2nff(klon)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/deposition.f90

    r5144 r5159  
    1111  USE lmdz_yomcst
    1212
     13USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     14  USE lmdz_paramet
    1315  IMPLICIT NONE
    1416
    15   INCLUDE "dimensions.h"
     17
    1618  INCLUDE "chem.h"
    17   INCLUDE "paramet.h"
     19
    1820
    1921  !----------------------------- INPUT -----------------------------------
     
    5355    ENDDO
    5456  ENDDO
    55   !
     57
    5658END SUBROUTINE deposition
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/finemission.f90

    r5144 r5159  
    1717  USE lmdz_yomcst
    1818
     19USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     20  USE lmdz_paramet
    1921  IMPLICIT NONE
    2022
    21   INCLUDE "dimensions.h"
     23
    2224  INCLUDE "chem.h"
    23   INCLUDE "paramet.h"
     25
    2426
    2527  INTEGER :: i, k, kminbc, kmaxbc
     
    2830  REAL :: zalt(klon, klev)
    2931  REAL :: zdz(klon, klev)
    30   !
     32
    3133  !------------------------- Scaling Parameters --------------------------
    32   !
     34
    3335  INTEGER :: nbreg_ind, nbreg_bb
    3436  INTEGER :: iregion_ind(klon)  !Defines regions for SO2, BC & OM
     
    7173                      scale_param_ff(iregion_ind(i)) * lmt_omff(i) &
    7274                      ) * 1.e4                        !g/m2/s
    73       !
     75
    7476      IF(id_fine>0)     flux_tr(i, id_fine) = flux_tr(i, id_fine) + &
    7577              (scale_param_ff(iregion_ind(i)) * lmt_bcff(i) + & !mg/m2/s
    7678                      scale_param_ff(iregion_ind(i)) * lmt_omff(i) &
    7779                      ) * 1.e4 * 1.e3                  !mg/m2/s
    78       !
     80
    7981      flux_sparam_ff(i) = flux_sparam_ff(i) + &
    8082              scale_param_ff(iregion_ind(i)) * &
     
    8789                      scale_param_bb(iregion_bb(i)) * lmt_ombb_l(i) & !g/m2/s
    8890                      ) * 1.e4                        !g/m2/s
    89       !
     91
    9092      IF(id_fine>0)    flux_tr(i, id_fine) = flux_tr(i, id_fine) + &
    9193              (scale_param_bb(iregion_bb(i)) * lmt_bcbb_l(i) + & !mg/m2/s
     
    9496                      scale_param_bb(iregion_bb(i)) * lmt_ombb_h(i) & !mg/m2/s
    9597                      ) * 1.e4 * 1.e3                  !mg/m2/s
    96       !
     98
    9799      flux_sparam_bb(i) = flux_sparam_bb(i) + &
    98100              scale_param_bb(iregion_bb(i)) * (lmt_bcbb_l(i) + &
     
    103105            (lmt_bcnff(i) + lmt_bcba(i) + lmt_omnff(i) + &
    104106                    lmt_omnat(i) + lmt_omba(i)) * 1.e4           !g/m2/s
    105     !
     107
    106108    IF(id_fine>0)  flux_tr(i, id_fine) = flux_tr(i, id_fine) + &
    107109            (lmt_bcnff(i) + lmt_omnff(i) + lmt_omnat(i) + &
    108110                    lmt_omba(i) + lmt_bcba(i)) * 1.e4 * 1.e3      !mg/m2/s
    109     !
     111
    110112    flux_sparam_ff(i) = flux_sparam_ff(i) + &
    111113            (lmt_omba(i) + lmt_bcba(i)) * 1.e4 * 1.e3
     
    118120  !  Sources hautes de BC/OM
    119121
    120   !
     122
    121123  ! HIGH LEVEL EMISSIONS OF SO2 ARE IN PRECUREMISSION.F
    122   !
     124
    123125  k = 2                             !introducing emissions in level 2
    124126  !nhl      DO i = 1, klon
    125   !
     127
    126128  !nhl      tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine)+scale_param_ff(iregion_ind(i))*
    127129  !nhl     .               (lmt_bcff_h(i)+lmt_omff_h(i))/zdz(i,k)/100.*pdtphys
    128   !
     130
    129131  !nhl      ENDDO
    130132
     
    132134    DO i = 1, klon
    133135      zzdz = zalt(i, kmaxbc + 1) - zalt(i, kminbc)
    134       !
     136
    135137      IF (iregion_bb(i) >0) THEN
    136138        IF(id_fine>0)   tr_seri(i, k, id_fine) = tr_seri(i, k, id_fine) + &
     
    139141                        / zzdz / 100. * pdtphys
    140142      ENDIF
    141       !
     143
    142144    ENDDO
    143145  ENDDO
    144   !
     146
    145147END SUBROUTINE finemission
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/gastoparticle.f90

    r5144 r5159  
    1010  USE lmdz_yomcst
    1111
     12USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    1213  IMPLICIT NONE
    1314  !
    14   INCLUDE "dimensions.h"
     15
    1516  INCLUDE "chem.h"
    1617  INCLUDE "chem_spla.h"
    17   !
     18
    1819  REAL :: pdtphys
    1920  REAL :: zrho(klon, klev)
     
    3233  REAL :: tend2d(klon, klev)
    3334  INTEGER :: id_prec, id_fine
    34   !
     35
    3536  !------------------------- Scaling Parameter --------------------------
    36   !
     37
    3738  !  REAL scale_param_so4(klon)  !Scaling parameter for sulfate
    3839
    3940  INTEGER :: i, k
    4041  REAL :: tau_chem     !---chemical lifetime in s
    41   !
     42
    4243  !------------------------- Variables to save --------------------------
    43   !
     44
    4445  !nhl      REAL fluxso4chem(klon,klev)
    4546  !nhl      REAL flux_sparam_sulf(klon,klev)
     
    4748  !======================================================================
    4849  pi = atan(1.) * 4.
    49   !
     50
    5051  IF (id_prec>0 .AND. id_fine>0) THEN
    5152    DO k = 1, klev
    5253      DO i = 1, klon
    53         !
     54
    5455        !    tau_chem=scale_param_so4(i)*86400.*(8.-5.*cos(xlat(i)*pi/180.))    !tchemfctn2
    5556        !nhl        tau_chem=86400.*(8.-5.*cos(xlat(i)*pi/180.))    !tchemfctn2
     
    5859        !nhl        tend=(1.-exp(-pdtphys/tau_chem))
    5960        !nhl        tend=scale_param_so4(i) !as this it works
    60         !
     61
    6162        tr_seri(i, k, id_prec) = tr_seri(i, k, id_prec) - tend
    6263        tr_seri(i, k, id_fine) = tr_seri(i, k, id_fine) + &
    6364                tend / RNAVO * masse_ammsulfate  !--gAER/KgAir
    6465        tend2d(i, k) = tend
    65         !
     66
    6667        !nhl        fluxso4chem(i,k) = tend/RNAVO*masse_ammsulfate
    6768        !nhl        flux_sparam_sulf(i,k) = tend/RNAVO*masse_ammsulfate
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/incloud_scav.f90

    r5144 r5159  
    1010  USE lmdz_yomcst
    1111
     12USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     13  USE lmdz_paramet
    1214  IMPLICIT NONE
    1315
    14   INCLUDE "dimensions.h"
    1516  INCLUDE "chem.h"
    16   INCLUDE "paramet.h"
     17
    1718
    1819  !============================= INPUT ===================================
     
    4445
    4546  DO it = 1, nbtr
    46     !
     47
    4748    DO i = 1, klon
    4849      aux_var2(i) = his_dhlsc(i, it)
     
    5455      ENDDO
    5556    ENDDO
    56     !
     57
    5758    IF (lminmax) THEN
    5859      CALL minmaxqfi(aux_var1, qmin, qmax, 'avt inscav')
    5960      !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'avt inscav')
    6061    ENDIF
    61     !
     62
    6263    !nhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3,
    6364    !nhl     .             prfl,psfl,zrho,zdz,t_seri,tr_seri(1,1,it),
     
    6566    CALL inscav_spl(pdtphys, it, masse(it), henry(it), kk(it), 0.5e-3, &
    6667            prfl, psfl, zrho, zdz, t_seri, aux_var1, aux_var2)
    67     !
     68
    6869    IF (lminmax) THEN
    6970      CALL minmaxqfi(aux_var1, qmin, qmax, 'depot humide lsc')
    7071      !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide lsc')
    7172    ENDIF
    72     !
    73     !
     73
     74
    7475    !-scheme for convective in-cloud scavenging
    75     !
     76
    7677    !nhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
    7778    !nhl     .             pmflxr,pmflxs,zrho,zdz,t_seri,tr_seri(1,1,it),
     
    7980    CALL inscav_spl(pdtphys, it, masse(it), henry(it), kk(it), 1.e-3, &
    8081            pmflxr, pmflxs, zrho, zdz, t_seri, aux_var1, aux_var3)
    81     !
     82
    8283    IF (lminmax) THEN
    8384      CALL minmaxqfi(aux_var1, qmin, qmax, 'depot humide con')
    8485      !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide con')
    8586    ENDIF
    86     !
     87
    8788    DO j = 1, klev
    8889      DO i = 1, klon
     
    9596    ENDDO
    9697
    97     !
     98
    9899  ENDDO !--boucle sur it
    99100
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/incloud_scav_lsc.f90

    r5144 r5159  
    1010  USE lmdz_yomcst
    1111
     12USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     13  USE lmdz_paramet
    1214  IMPLICIT NONE
    1315
    14   INCLUDE "dimensions.h"
     16
    1517  INCLUDE "chem.h"
    16   INCLUDE "paramet.h"
     18
    1719
    1820  !============================= INPUT ===================================
     
    4345  EXTERNAL minmaxqfi, inscav_spl
    4446  DO it = 1, nbtr
    45     !
     47
    4648    DO i = 1, klon
    4749      aux_var2(i) = his_dhlsc(i, it)
     
    5355      ENDDO
    5456    ENDDO
    55     !
     57
    5658    IF (lminmax) THEN
    5759      CALL minmaxqfi(aux_var1, qmin, qmax, 'avt inscav')
    5860      !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'avt inscav')
    5961    ENDIF
    60     !
     62
    6163    !nhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3,
    6264    !nhl     .             prfl,psfl,zrho,zdz,t_seri,tr_seri(1,1,it),
     
    6466    CALL inscav_spl(pdtphys, it, masse(it), henry(it), kk(it), 0.5e-3, &
    6567            prfl, psfl, zrho, zdz, t_seri, aux_var1, aux_var2)
    66     !
     68
    6769    IF (lminmax) THEN
    6870      CALL minmaxqfi(aux_var1, qmin, qmax, 'depot humide lsc')
    6971      !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide lsc')
    7072    ENDIF
    71     !
    72     !
     73
     74
    7375    !-scheme for convective in-cloud scavenging
    74     !
     76
    7577    !nhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
    7678    !nhl     .             pmflxr,pmflxs,zrho,zdz,t_seri,tr_seri(1,1,it),
     
    7981    !  print *,'JE inscav0'
    8082    !  IF (iflag_con.LT.3) THEN
    81     !
     83
    8284    !  print *,'JE inscav1'
    8385    !  print *,'iflag_con',iflag_con
    8486    !  CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
    8587    ! .             pmflxr,pmflxs,zrho,zdz,t_seri,aux_var1,aux_var3)
    86     !
     88
    8789    !c
    8890    !  IF (lminmax) THEN
    8991    !    CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide con')
    9092    !cnhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide con')
    91     !
     93
    9294    !  ENDIF
    93     !
     95
    9496    !  ENDIF ! iflag_con
    9597
    96     !
     98
    9799    !  print *,'JE inscav2'
    98100    DO j = 1, klev
     
    106108    ENDDO
    107109
    108     !
     110
    109111  ENDDO !--boucle sur it
    110112
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/inscav_spl.f90

    r5144 r5159  
    55  USE lmdz_yomcst
    66
     7USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    78  IMPLICIT NONE
    89  !=====================================================================
     
    1213  !=====================================================================
    1314  !
    14   INCLUDE "dimensions.h"
     15
    1516  INCLUDE "chem.h"
    16   !
     17
    1718  INTEGER :: it
    1819  REAL :: pdtime              ! pas de temps (s)
     
    3233  REAL :: x(klon, klev)        ! q de traceur
    3334  REAL :: his_dh(klon)        ! tendance de traceur integre verticalement
    34   !
     35
    3536  !--variables locales
    3637  INTEGER :: i, k
    37   !
     38
    3839  REAL :: dx      ! tendance de traceur
    3940  REAL :: f_a     !--rapport de la phase aqueuse a la phase gazeuse
     
    5455  !--101.325  m3/l x Pa/atm
    5556  !--R        Pa.m3/mol/K
    56   !
     57
    5758  !------------------------------------------
    58   !
     59
    5960  !nhl      IF (it.EQ.2.OR.it.EQ.3) THEN !--aerosol  ! AS IT WAS FIRST
    6061  IF (it==2.OR.it==3.OR.it==4) THEN !--aerosol
     
    6364    frac = frac_gas
    6465  ENDIF
    65   !
     66
    6667  IF (it==1) THEN
    6768    DO k = 1, klev
     
    9798    STOP
    9899  ENDIF
    99   !
     100
    100101  ! NHL
    101102  ! Auxiliary variables defined to deal with the fact that precipitation
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/kg_to_cm3.f90

    r5144 r5159  
    55  USE lmdz_yomcst
    66
     7USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    78  IMPLICIT NONE
    89
    9   INCLUDE "dimensions.h"
     10
    1011
    1112  REAL :: t_seri(klon, klev), pplay(klon, klev)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/lsc_scav_orig.F90

    r5142 r5159  
    1414  USE lmdz_YOECUMF
    1515
    16   IMPLICIT NONE
     16  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     17  IMPLICIT NONE
    1718!=====================================================================
    1819! Objet : depot humide (lessivage et evaporation) de traceurs
     
    2223!=====================================================================
    2324
    24   INCLUDE "dimensions.h"
     25
    2526  INCLUDE "chem.h"
    2627
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/lsc_scav_spl.F90

    r5142 r5159  
    1616  USE lmdz_YOECUMF
    1717
    18   IMPLICIT NONE
     18  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     19  IMPLICIT NONE
    1920!=====================================================================
    2021! Objet : depot humide (lessivage et evaporation) de traceurs
     
    2526! SPLA version taken from trunk revision 2041
    2627
    27   INCLUDE "dimensions.h"
     28
    2829  INCLUDE "chem.h"
    2930
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/minmaxqfi2.f90

    r5158 r5159  
    11SUBROUTINE minmaxqfi2(zq, qmin, qmax, comment)
    2   !
     2
    33  USE dimphy
    44  USE infotrac
    55  USE lmdz_libmath, ONLY: ismax, ismin
    66
     7USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    78  IMPLICIT NONE
    89
    9   INCLUDE "dimensions.h"
     10
    1011
    1112  ! CHARACTER*20 comment
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/minmaxsource.f90

    r5158 r5159  
    55  USE lmdz_libmath, ONLY: ismax, ismin
    66
     7USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    78  IMPLICIT NONE
    89
    9   INCLUDE "dimensions.h"
     10
    1011
    1112  ! CHARACTER*20 comment
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/neutral.f90

    r5158 r5159  
    2626  ! be 0. The flux is then set to 0.
    2727  !----------------------------------------------------------------------
    28   !
     28
     29USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    2930  USE dimphy
    30   INCLUDE "dimensions.h"
    31   !
     31
     32
    3233  REAL :: u10_mps(klon), ustar_mps(klon), obklen_m(klon)
    3334  REAL :: u10n_mps(klon)
     
    3637  ! pour etre coherent avec vk de bl_for_dms.F
    3738  parameter (pi = 3.141592653589793, von_karman = 0.35)
    38   !
     39
    3940  REAL :: phi, phi_inv, phi_inv_sq, f1, f2, f3, dum1, psi
    4041  INTEGER :: i
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/nightingale.f90

    r5144 r5159  
    22        cdragh, cdragm, t, q, ftsol, tsol, &
    33        pctsrf, lmt_dmsconc, lmt_dms)
    4   !
     4
    55  USE dimphy
    66  USE indice_sol_mod
    77  USE lmdz_yomcst
    88
     9USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    910  IMPLICIT NONE
    1011  !
    11   INCLUDE "dimensions.h"
    12   !
     12
     13
    1314  REAL :: u(klon, klev), v(klon, klev)
    1415  REAL :: u_10m(klon), v_10m(klon)
     
    2223  REAL :: lmt_dmsconc(klon)  ! concentration oceanique DMS
    2324  REAL :: lmt_dms(klon)      ! flux de DMS
    24   !
     25
    2526  REAL :: ustar(klon), obklen(klon)
    2627  REAL :: u10(klon), u10n(klon)
     
    2829  REAL :: t1, t2, t3, t4, viscosity_kin, diffusivity, schmidt
    2930  INTEGER :: i
    30   !
     31
    3132  CALL bl_for_dms(u, v, paprs, pplay, cdragh, cdragm, &
    3233          t, q, tsol, ustar, obklen)
    33   !
     34
    3435  DO i = 1, klon
    3536    u10(i) = SQRT(u_10m(i)**2 + v_10m(i)**2)
    3637  ENDDO
    37   !
     38
    3839  CALL neutral(u10, ustar, obklen, u10n)
    39   !
     40
    4041  DO i = 1, klon
    41     !
     42
    4243    ! tvelocity - transfer velocity, also known as kw (cm/s)
    4344    ! schmidt_corr - Schmidt number correction factor (dimensionless)
     
    4748    !  volatile tracers.'  Glob. Biogeochem. Cycles, 14:373-387, 2000.
    4849    ! compute transfer velocity using u10neutral
    49     !
     50
    5051    tvelocity = 0.222 * u10n(i) * u10n(i) + 0.333 * u10n(i)
    51     !
     52
    5253    ! above expression gives tvelocity in cm/hr. convert to cm/s. 1hr =3600 sec
    5354
     
    7475    schmidt = viscosity_kin / diffusivity
    7576    schmidt_corr = (schmidt / 600.)**(-.5)
    76     !
     77
    7778    lmt_dms(i) = tvelocity * pctsrf(i, is_oce) &
    7879            * lmt_dmsconc(i) / 1.0e12 * schmidt_corr * RNAVO
    79     !
     80
    8081    IF (lmt_dmsconc(i)<=1.e-20) lmt_dms(i) = 0.0
    81     !
     82
    8283  ENDDO
    83   !
     84
    8485END SUBROUTINE nightingale
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/phys_output_write_spl_mod.F90

    r5139 r5159  
    400400    USE lmdz_compbl, ONLY: iflag_pbl, iflag_pbl_split, iflag_order2_sollw, ifl_pbltree
    401401
     402USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    402403    IMPLICIT NONE
    403404
    404405    !   INCLUDE "temps.h"
    405     INCLUDE "dimensions.h"
     406
    406407
    407408    ! Input
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/phytracr_spl_mod.F90

    r5158 r5159  
    800800    USE lmdz_alpale
    801801    USE lmdz_yoethf
     802    USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     803    USE lmdz_paramet
    802804
    803805    IMPLICIT NONE
     
    814816    !!   et c'est encore different avec le parser de DC ?
    815817    !======================================================================
    816     INCLUDE "dimensions.h"
    817818    INCLUDE "chem.h"
    818819    INCLUDE "chem_spla.h"
    819     INCLUDE "paramet.h"
    820820
    821821    !======================================================================
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/precuremission.f90

    r5144 r5159  
    2222  USE lmdz_yomcst
    2323
     24USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     25  USE lmdz_paramet
    2426  IMPLICIT NONE
    2527
    26   INCLUDE "dimensions.h"
     28
    2729  INCLUDE "chem.h"
    2830  INCLUDE "chem_spla.h"
    29   INCLUDE "paramet.h"
     31
    3032
    3133  !============================= INPUT ===================================
     
    4850  LOGICAL :: edgar, bateau
    4951  INTEGER :: id_prec, id_fine
    50   !
     52
    5153  !------------------------- Scaling Parameters --------------------------
    52   !
     54
    5355  INTEGER :: nbreg_ind, nbreg_bb
    5456  INTEGER :: iregion_ind(klon)  !Defines regions for SO2, BC & OM
     
    5658  REAL :: scale_param_bb(nbreg_bb)  !Scaling parameter for biomas burning
    5759  REAL :: scale_param_ind(nbreg_ind) !Scaling parameter for industrial emissions
    58   !
     60
    5961  !============================= OUTPUT ==================================
    60   !
     62
    6163  REAL :: source_tr(klon, nbtr)
    6264  REAL :: flux_tr(klon, nbtr)
     
    112114              + scale_param_ind(iregion_ind(i)) * lmt_so2ff_l(i) * 1.e4 &
    113115                      * frach2sofso2            ! molec/m2/s
    114       !
     116
    115117      IF(id_fine>0) source_tr(i, id_fine) = &
    116118              source_tr(i, id_fine) + (1 - fracso2emis) &
    117119                      * scale_param_ind(iregion_ind(i)) * lmt_so2ff_l(i) &
    118120                      * 1.e4 * masse_ammsulfate / RNAVO  ! g/m2/s
    119       !
     121
    120122      IF(id_prec>0)   flux_tr(i, id_prec) = flux_tr(i, id_prec) + (&
    121123              scale_param_ind(iregion_ind(i)) * (lmt_so2ff_l(i) + &
     
    126128                      * fracso2emis &
    127129              ) * 1.e4 / RNAVO * masse_s * 1.e3          ! mgS/m2/s
    128       !
     130
    129131      IF(id_fine>0)  flux_tr(i, id_fine) = &
    130132              flux_tr(i, id_fine) + (1 - fracso2emis) &
     
    132134                      lmt_so2ff_h(i)) &
    133135                      * 1.e4 / RNAVO * masse_ammsulfate * 1.e3    ! mgS/m2/s
    134       !
     136
    135137      flux_sparam_ind(i) = flux_sparam_ind(i) + (1 - fracso2emis) &
    136138              * scale_param_ind(iregion_ind(i)) * (lmt_so2ff_l(i) + &
     
    143145                      * scale_param_bb(iregion_bb(i)) * lmt_so2bb_l(i) &
    144146                      * (1. - pctsrf(i, is_oce)) * 1.e4
    145       !
     147
    146148      IF(id_fine>0)     source_tr(i, id_fine) = &
    147149              source_tr(i, id_fine) + (1 - fracso2emis) &
     
    149151                      (1. - pctsrf(i, is_oce)) * 1.e4 * &
    150152                      masse_ammsulfate / RNAVO  ! g/m2/s
    151       !
     153
    152154      IF(id_prec>0)     flux_tr(i, id_prec) = flux_tr(i, id_prec) + &
    153155              (scale_param_bb(iregion_bb(i)) * lmt_so2bb_l(i) &
     
    155157                      * (1. - pctsrf(i, is_oce)) * fracso2emis &
    156158                      * 1.e4 / RNAVO * masse_s * 1.e3          ! mgS/m2/s
    157       !
     159
    158160      IF(id_fine>0) flux_tr(i, id_fine) = &
    159161              flux_tr(i, id_fine) + (1 - fracso2emis) &
     
    162164                      * (1. - pctsrf(i, is_oce)) &
    163165                      * 1.e4 / RNAVO * masse_ammsulfate * 1.e3    ! mgS/m2/s
    164       !
     166
    165167      flux_sparam_bb(i) = &
    166168              scale_param_bb(iregion_bb(i)) * (lmt_so2bb_l(i) + &
     
    179181            + (lmt_h2sbio(i) &
    180182                    + lmt_dms(i) + lmt_dmsbio(i)) * 1.e4            ! molec/m2/s
    181     !
     183
    182184    IF(id_fine>0)   source_tr(i, id_fine) = source_tr(i, id_fine) &
    183185            + (1 - fracso2emis) &
    184186                    * (lmt_so2ba(i) + lmt_so2nff(i)) * 1.e4 * &
    185187                    masse_ammsulfate / RNAVO  ! g/m2/s
    186     !
     188
    187189    IF(id_prec>0)   flux_tr(i, id_prec) = flux_tr(i, id_prec) &
    188190            + (lmt_h2sbio(i) &
     
    191193                    + lmt_dms(i) + lmt_dmsbio(i)) &
    192194                    * 1.e4 / RNAVO * masse_s * 1.e3          ! mgS/m2/s
    193     !
     195
    194196    IF(id_fine>0)   flux_tr(i, id_fine) = flux_tr(i, id_fine) &
    195197            + (1 - fracso2emis) &
    196198                    * (lmt_so2ba(i) + lmt_so2nff(i)) &
    197199                    * 1.e4 / RNAVO * masse_ammsulfate * 1.e3    ! mgS/m2/s
    198     !
     200
    199201    flux_sparam_ind(i) = flux_sparam_ind(i) + (1 - fracso2emis) &
    200202            * lmt_so2nff(i) &
    201203            * 1.e4 / RNAVO * masse_ammsulfate * 1.e3    ! mgS/m2/s
    202     !
     204
    203205  ENDDO
    204206
     
    228230  !  Sources hautes de SO2
    229231
    230   !
     232
    231233  !--only GEIA SO2 emissions has high emissions
    232234  !--unit: molec/cm2/s divided by layer height (in cm) multiplied by timestep
    233   !
     235
    234236  k = 2                             !introducing emissions in level 2
    235237  DO i = 1, klon
    236     !
     238
    237239    IF (iregion_bb(i)>0) THEN
    238240      IF(id_prec>0)   tr_seri(i, k, id_prec) = &
     
    240242                      * scale_param_bb(iregion_bb(i)) * lmt_so2bb_h(i) &
    241243                      / zdz(i, k) / 100. * pdtphys
    242       !
     244
    243245      IF(id_fine>0)     tr_seri(i, k, id_fine) = tr_seri(i, k, id_fine) &
    244246              + (1. - fracso2emis) &
     
    253255                              * scale_param_ind(iregion_ind(i)) * lmt_so2ff_h(i)) &
    254256                      / zdz(i, k) / 100. * pdtphys
    255       !
     257
    256258      IF(id_fine>0)    tr_seri(i, k, id_fine) = tr_seri(i, k, id_fine) &
    257259              + (1. - fracso2emis) &
     
    259261                      * masse_ammsulfate / RNAVO / zdz(i, k) / 100. * pdtphys   !g/cm3
    260262    ENDIF
    261     !
     263
    262264  ENDDO
    263265
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/read_dust.f90

    r5117 r5159  
    44  USE lmdz_phys_para
    55  USE netcdf, ONLY: nf90_get_var, nf90_nowrite, nf90_open, nf90_inq_varid
     6USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     7  USE lmdz_paramet
    68  IMPLICIT NONE
    79
    8   INCLUDE "dimensions.h"
    9   INCLUDE "paramet.h"
     10
     11
    1012
    1113  INTEGER :: step, nbjour
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/read_newemissions.f90

    r5119 r5159  
    11! Routine to read the emissions of the different species
    2 !
     2
    33SUBROUTINE read_newemissions(julien, jH_emi, edgar, flag_dms, &
    44        debutphy, &
     
    2424  USE lmdz_ssum_scopy, ONLY: scopy
    2525
     26USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     27  USE lmdz_paramet
    2628  IMPLICIT NONE
    2729
    28   INCLUDE "dimensions.h"
    29   INCLUDE 'paramet.h'
     30
     31
    3032  INCLUDE 'chem.h'
    3133  INCLUDE 'chem_spla.h'
     
    4345  REAL :: xlon(klon)       ! longitudes pour chaque point
    4446
    45   !
     47
    4648  !   Emissions:
    4749  !   ---------
    48   !
     50
    4951  !---------------------------- SEA SALT & DUST emissions ------------------------
    5052  REAL :: lmt_sea_salt(klon, ss_bins) !Sea salt 0.03-8.0 um !NOT SAVED OK
     
    100102  REAL, SAVE, ALLOCATABLE :: lmt_dms(:)           ! emissions de dms
    101103  !$OMP THREADPRIVATE(lmt_dms)
    102   !
     104
    103105  !  Lessivage
    104106  !  ---------
    105   !
     107
    106108  REAL :: pmflxr(klon, klev + 1), pmflxs(klon, klev + 1) !--convection
    107109  REAL :: prfl(klon, klev + 1), psfl(klon, klev + 1)   !--large-scale
    108110  ! REAL pmflxr(klon,klev), pmflxs(klon,klev) !--convection
    109111  ! REAL prfl(klon,klev),   psfl(klon,klev)   !--large-scale
    110   !
     112
    111113  !  Variable interne
    112114  !  ----------------
    113   !
     115
    114116  INTEGER :: icount
    115117  REAL :: tau_1, tau_2
    116118  REAL :: max_flux, min_flux
    117119  INTRINSIC MIN, MAX
    118   !
     120
    119121  ! JE: Changes due to new pdtphys in new physics.
    120122  !  REAL windintime ! time in hours of the wind input files resolution
     
    145147  IF (.NOT. ALLOCATED(lmt_dms)) ALLOCATE(lmt_dms(klon))
    146148  ! end je nov2013
    147   !
     149
    148150  !***********************************************************************
    149151  ! DUST EMISSIONS
    150152  !***********************************************************************
    151   !
     153
    152154  IF (debutphy) THEN
    153155    !---Fields are read only at the beginning of the period
     
    233235    dust_ec(i) = tau_1 * dust_ec1(i) + tau_2 * dust_ec2(i)
    234236  ENDDO
    235   !
     237
    236238  !JE      IF (test_vent.EQ.(6*2)) THEN
    237239  !JE        PRINT *,'6 hrs interval reached'
     
    251253  ! .     ,jH_vent
    252254  ! endJEi
    253   !
     255
    254256  avgdryrate = 300. / 365. * pdtphys / 86400.
    255   !
     257
    256258  DO i = 1, klon
    257     !
     259
    258260    IF (cly(i)<9990..AND.wth(i)<9990.) THEN
    259261      zprecipinsoil(i) = zprecipinsoil(i) + &
    260262              (pmflxr(i, 1) + pmflxs(i, 1) + prfl(i, 1) + psfl(i, 1)) * pdtphys
    261       !
     263
    262264      clyfac = MIN(16., cly(i) * 0.4 + 8.) ![mm] max amount of water hold in top soil
    263265      drying = avgdryrate * exp(0.03905491 * &
     
    282284    ENDIF
    283285  ENDDO
    284   !
     286
    285287  print *, 'Total N of grids with surpressed emission = ', icount
    286288  print *, 'dust_ec = ', SUM(dust_ec), MINVAL(dust_ec), &
     
    295297
    296298  IF (lafinphy) THEN
    297     !
     299
    298300    CALL gather(zprecipinsoil, zprecipinsoil_glo)
    299301    !$OMP MASTER
     
    307309    !$OMP END MASTER
    308310    !$OMP BARRIER
    309     !
     311
    310312  ENDIF
    311   !
     313
    312314  !***********************************************************************
    313315  ! SEA SALT EMISSIONS
    314316  !***********************************************************************
    315   !
     317
    316318  DO i = 1, klon
    317319    pct_ocean(i) = pctsrf(i, is_oce)
     
    322324  ! print *,'SUM, MAX & MIN Sea Salt = ',SUM(lmt_sea_salt),
    323325  ! .               MAXVAL(lmt_sea_salt),MINVAL(lmt_sea_salt)
    324   !
     326
    325327  !***********************************************************************
    326328  ! SULFUR & CARBON EMISSIONS
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/read_surface.F90

    r5158 r5159  
    1010       USE iophy
    1111       USE netcdf, ONLY:nf90_inq_varid,nf90_noerr,nf90_get_var,nf90_nowrite,nf90_inq_varid,nf90_open
     12USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     13  USE lmdz_paramet
    1214       IMPLICIT NONE
    1315
    14        INCLUDE "dimensions.h"
    15        INCLUDE "paramet.h"
     16
     17
    1618
    1719       CHARACTER*10 name
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/read_vent.f90

    r5158 r5159  
    44  USE lmdz_phys_para
    55  USE netcdf, ONLY: nf90_get_var, nf90_open, nf90_inq_varid, nf90_nowrite
     6USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     7  USE lmdz_paramet
    68  IMPLICIT NONE
    7   INCLUDE "dimensions.h"
    8   INCLUDE "paramet.h"
     9
     10
    911
    1012  INTEGER :: step, nbjour
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/seasalt.f90

    r5144 r5159  
    11! This SUBROUTINE estimateis Sea Salt emission fluxes over
    22! Oceanic surfaces.
    3 !
     3
    44SUBROUTINE seasalt(v_10m, u_10m, pct_ocean, lmt_sea_salt)
    55
     
    88  USE lmdz_yomcst
    99
     10USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    1011  IMPLICIT NONE
    1112  !
    12   INCLUDE "dimensions.h"
     13
    1314  INCLUDE "chem.h"
    1415  INCLUDE "chem_spla.h"
    15   !
     16
    1617  INTEGER :: i, bin                 !local variables
    1718  REAL :: pct_ocean(klon)           !hfraction of Ocean in each grid
     
    2223
    2324  REAL :: wind, ocean
    24   !
     25
    2526  !------Sea salt emission fluxes for each size bin calculated
    2627  !------based on on parameterisation of Gong et al. (1997).
     
    2930  !------Fluxes at various wind speeds (@10 m from sea
    3031  !------surfaces are estimated using relationship: F=flux*U_10^3.14
    31   !
     32
    3233  !nhl for size bin of 0.03-0.5 and 0.5-20
    3334  DATA sea_salt_flux/4.5E-09, 8.7E-7/
     
    3637    w_speed_10m(i) = (v_10m(i)**2.0 + u_10m(i)**2.0)**0.5
    3738  ENDDO
    38   !
     39
    3940  DO bin = 1, ss_bins
    4041    wind = 0.0
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/sediment_mod.f90

    r5144 r5159  
    11!----- This SUBROUTINE calculates the sedimentation flux of Tracers
    2 !
     2
    33SUBROUTINE sediment_mod(t_seri, pplay, zrho, paprs, time_step, RHcl, &
    44        id_coss, id_codu, id_scdu, &
     
    77        sed_ss3D, sed_dust3D, sed_dustsco3D, tr_seri)
    88  !nhl     .                                       xlon,xlat,
    9   !
     9
    1010  USE dimphy
    1111  USE infotrac
     
    1313  USE lmdz_yomcst
    1414
     15USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    1516  IMPLICIT NONE
    1617  !
    17   INCLUDE "dimensions.h"
     18
    1819  INCLUDE "chem.h"
    19   !
     20
    2021  REAL :: RHcl(klon, klev)     ! humidite relative ciel clair
    2122  REAL :: tr_seri(klon, klev, nbtr) !conc of tracers
     
    3839  REAL :: xlon(klon)       ! longitudes pour chaque point
    3940  INTEGER :: id_coss, id_codu, id_scdu
    40   !
     41
    4142  !------local variables
    42   !
     43
    4344  INTEGER :: i, k, nbre_RH
    4445  PARAMETER(nbre_RH = 12)
    45   !
     46
    4647  REAL :: lambda, ss_g
    4748  REAL :: mmd_ss      !mass median diameter of SS (um)
     
    5556  REAL :: zdz(klon, klev)       ! layers height (m)
    5657  REAL :: temp                 ! temperature in degree Celius
    57   !
     58
    5859  INTEGER :: RH_num
    5960  REAL :: RH_MAX, DELTA, rh, RH_tab(nbre_RH)
    6061  PARAMETER (RH_MAX = 95.)
    61   !
     62
    6263  DATA RH_tab/0., 10., 20., 30., 40., 50., 60., 70., 80., 85., 90., 95./
    63   !
    64   !
     64
     65
    6566  DATA rho_ss/2160., 2160., 2160., 2160, 1451.6, 1367.9, &
    6667          1302.9, 1243.2, 1182.7, 1149.5, 1111.6, 1063.1/
    67   !
     68
    6869  DATA ss_growth_f/0.503, 0.503, 0.503, 0.503, 0.724, 0.782, &
    6970          0.838, 0.905, 1.000, 1.072, 1.188, 1.447/
    70   !
    71   !
     71
     72
    7273  mmd_ss = 12.7   !dia -um at 80% for bin 0.5-20 um but 90% of real mmd
    7374  ! obsolete      mmd_dust=2.8  !micrometer for bin 0.5-20 and 0.5-10 um
     
    9596
    9697  rho_dust = 2600. !kg/m3
    97   !
     98
    9899  !--------- Air viscosity (poise=0.1 kg/m-sec)-----------
    99   !
     100
    100101  DO k = 1, klev
    101102    DO i = 1, klon
    102       !
     103
    103104      zdz(i, k) = (paprs(i, k) - paprs(i, k + 1)) / zrho(i, k) / RG
    104       !
     105
    105106      temp = t_seri(i, k) - RTT
    106       !
     107
    107108      IF (temp<0.) THEN
    108109        air_visco(i, k) = (1.718 + 0.0049 * temp - 1.2e-5 * temp * temp) * 1.e-4
     
    110111        air_visco(i, k) = (1.718 + 0.0049 * temp) * 1.e-4
    111112      ENDIF
    112       !
     113
    113114    ENDDO
    114115  ENDDO
    115   !
     116
    116117  !--------- for Sea Salt -------------------
    117   !
    118   !
    119   !
     118
     119
     120
    120121  IF(id_coss>0) THEN
    121122    DO k = 1, klev
    122123      DO i = 1, klon
    123         !
     124
    124125        !---cal. correction factor hygroscopic growth of aerosols
    125         !
     126
    126127        rh = MIN(RHcl(i, k) * 100., RH_MAX)
    127128        RH_num = INT(rh / 10. + 1.)
     
    129130        IF (rh>90.) RH_num = 11
    130131        DELTA = (rh - RH_tab(RH_num)) / (RH_tab(RH_num + 1) - RH_tab(RH_num))
    131         !
     132
    132133        ss_g = ss_growth_f(rh_num) + &
    133134                DELTA * (ss_growth_f(RH_num + 1) - ss_growth_f(RH_num))
     
    135136        rho_ss1 = rho_ss(rh_num) + &
    136137                DELTA * (rho_ss(RH_num + 1) - rho_ss(RH_num))
    137         !
     138
    138139        v_stokes = RG * (rho_ss1 - zrho(i, k)) * & !m/sec
    139140                (mmd_ss * ss_g) * (mmd_ss * ss_g) * &
    140141                1.e-12 / (18.0 * air_visco(i, k) / 10.)
    141         !
     142
    142143        lambda = 6.6 * 1.e-8 * (103125 / pplay(i, k)) * (t_seri(i, k) / 293.15)
    143         !
     144
    144145        CC = 1.0 + 1.257 * lambda / (mmd_ss * ss_g) / 1.e6  ! C-correction factor
    145         !
     146
    146147        v_sed = v_stokes * CC                       ! m/sec !orig
    147         !
     148
    148149        !---------check for v_sed*dt<zdz
    149         !
     150
    150151        IF (v_sed * time_step>zdz(i, k)) THEN
    151152          v_sed = zdz(i, k) / time_step
    152153        ENDIF
    153         !
     154
    154155        v_dep_ss(i, k) = v_sed
    155156        sed_flux(i, k) = tr_seri(i, k, id_coss) * v_sed !g/cm3*m/sec
    156157        !sed_ss3D(i,k)= -sed_flux(i,k)/zdz(i,k)      !g/cm3*sec !!!!!!!
    157158        ! conc_sed_ss3D(i,k)=sed_flux(i,k)*1.e6      !g/m3*sec !!!!!!!
    158         !
    159       ENDDO          !klon
    160     ENDDO          !klev
    161     !
     159
     160      ENDDO          !klon
     161    ENDDO          !klev
     162
    162163    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    163164    sed_ss3D(:, :) = 0.0  ! initialisation
     
    169170      ENDDO          !klon
    170171    ENDDO          !klev
    171     !
     172
    172173    DO k = 1, klev - 1
    173174      DO i = 1, klon
     
    186187
    187188    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    188     !
     189
    189190    DO i = 1, klon
    190191      sed_ss(i) = sed_flux(i, 1) * 1.e6 * 1.e3    !--unit mg/m2/s
     
    195196    ENDDO
    196197  ENDIF
    197   !
     198
    198199  !
    199200
    200201  !--------- For dust ------------------
    201   !
    202   !
     202
     203
    203204  IF(id_codu>0) THEN
    204205    DO k = 1, klev
    205206      DO i = 1, klon
    206         !
     207
    207208        v_stokes = RG * (rho_dust - zrho(i, k)) * & !m/sec
    208209                mmd_dust * mmd_dust * &
    209210                1.e-12 / (18.0 * air_visco(i, k) / 10.)
    210         !
     211
    211212        lambda = 6.6 * 1.e-8 * (103125 / pplay(i, k)) * (t_seri(i, k) / 293.15)
    212213        CC = 1.0 + 1.257 * lambda / (mmd_dust) / 1.e6        !dimensionless
    213214        v_sed = v_stokes * CC                       !m/sec
    214         !
     215
    215216        !---------check for v_sed*dt<zdz
    216         !
     217
    217218        IF (v_sed * time_step>zdz(i, k)) THEN
    218219          v_sed = zdz(i, k) / time_step
    219220        ENDIF
    220221
    221         !
     222
    222223        v_dep_dust(i, k) = v_sed
    223224        sed_flux(i, k) = tr_seri(i, k, id_codu) * v_sed !g/cm3.m/sec
    224225        !sed_dust3D(i,k)= -sed_flux(i,k)/zdz(i,k)      !g/cm3*sec !!!!!!!
    225         !
     226
    226227      ENDDO          !klon
    227228    ENDDO          !klev
     
    237238    ENDDO          !klev
    238239
    239     !
     240
    240241    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    241242
     
    246247      ENDDO          !klon
    247248    ENDDO          !klev
    248     !
     249
    249250    DO k = 1, klev
    250251      DO i = 1, klon
     
    266267
    267268  !--------- For scoarse  dust ------------------
    268   !
    269   !
     269
     270
    270271  IF(id_scdu>0) THEN
    271272    DO k = 1, klev
    272273      DO i = 1, klon
    273         !
     274
    274275        v_stokes = RG * (rho_dust - zrho(i, k)) * & !m/sec
    275276                mmd_dustsco * mmd_dustsco * &
    276277                1.e-12 / (18.0 * air_visco(i, k) / 10.)
    277         !
     278
    278279        lambda = 6.6 * 1.e-8 * (103125 / pplay(i, k)) * (t_seri(i, k) / 293.15)
    279280        CC = 1.0 + 1.257 * lambda / (mmd_dustsco) / 1.e6        !dimensionless
    280281        v_sed = v_stokes * CC                       !m/sec
    281         !
     282
    282283        !---------check for v_sed*dt<zdz
    283284
     
    286287        ENDIF
    287288
    288         !
     289
    289290        v_dep_dustsco(i, k) = v_sed
    290291        sed_flux(i, k) = tr_seri(i, k, id_scdu) * v_sed !g/cm3.m/sec
    291292        !sed_dustsco3D(i,k)= -sed_flux(i,k)/zdz(i,k)      !g/cm3*sec !!!!!!!
    292         !
     293
    293294      ENDDO          !klon
    294295    ENDDO          !klev
     
    303304      ENDDO          !klon
    304305    ENDDO          !klev
    305     !
     306
    306307    DO k = 1, klev - 1
    307308      DO i = 1, klon
     
    320321
    321322
    322     !
     323
    323324    DO i = 1, klon
    324325      sed_dustsco(i) = sed_flux(i, 1) * 1.e6 * 1.e3    !--unit mg/m2/s
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/tiedqneg.f90

    r5134 r5159  
    22
    33  USE dimphy
     4  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
    45  IMPLICIT NONE
    56  !======================================================================
     
    1516  !======================================================================
    1617
    17   INCLUDE "dimensions.h"
     18
    1819  REAL :: pres_h(klon, klev + 1)
    1920  REAL :: q(klon, klev)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/trconvect.f90

    r5144 r5159  
    99  USE lmdz_yomcst
    1010
     11USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     12  USE lmdz_paramet
    1113  IMPLICIT NONE
    1214
    13   INCLUDE "dimensions.h"
     15
    1416  INCLUDE "chem.h"
    15   INCLUDE "paramet.h"
     17
    1618
    1719  !============================= INPUT ===================================
     
    4244
    4345  DO it = 1, nbtr
    44     !
     46
    4547    DO i = 1, klon
    4648      dtrconv(i, it) = 0.0
     
    5355    ENDDO
    5456
    55     !
     57
    5658    !nhl      CALL nflxtr(pdtphys, pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,
    5759    !nhl     .            pplay, paprs, tr_seri(1,1,it), d_tr(1,1,it) )
    5860    CALL nflxtr(pdtphys, pmfu, pmfd, pen_u, pde_u, pen_d, pde_d, &
    5961            pplay, paprs, aux_var1, aux_var2)
    60     !
     62
    6163    CALL tiedqneg(paprs, aux_var1, aux_var2)
    6264    !nhl      CALL tiedqneg(paprs,tr_seri(1,1,it), d_tr(1,1,it))
     
    6769      ENDDO
    6870    ENDDO
    69     !
     71
    7072    DO k = 1, klev
    7173      DO i = 1, klon
     
    7779      ENDDO
    7880    ENDDO
    79     !
     81
    8082    !nhl      CALL kg_to_cm3(pplay,t_seri,d_tr(1,1,it))
    8183    CALL kg_to_cm3(pplay, t_seri, aux_var2)
     
    109111      ENDDO
    110112    ENDIF
    111     !
     113
    112114  ENDDO
    113115
Note: See TracChangeset for help on using the changeset viewer.