Ignore:
Timestamp:
Jul 23, 2024, 5:57:06 PM (2 months ago)
Author:
abarral
Message:

Replace 1DUTILS.h by module lmdz_1dutils.f90
Replace 1DConv.h by module lmdz_old_1dconv.f90 (it's only used by old_* files)
Convert *.F in DUST to *.f90

File:
1 moved

Legend:

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

    r5103 r5104  
    1 c Subroutine that calculates the effect of precipitation in scavenging
    2 c WITHIN the cloud, for large scale as well as convective precipitation
    3       SUBROUTINE incloud_scav(lminmax,qmin,qmax,masse,henry,kk,prfl,
    4      .                      psfl,pmflxr,pmflxs,zrho,zdz,t_seri,pdtphys,
    5      .                                   his_dhlsc,his_dhcon1,tr_seri)
     1! Subroutine that calculates the effect of precipitation in scavenging
     2! WITHIN the cloud, for large scale as well as convective precipitation
     3SUBROUTINE incloud_scav(lminmax, qmin, qmax, masse, henry, kk, prfl, &
     4        psfl, pmflxr, pmflxs, zrho, zdz, t_seri, pdtphys, &
     5        his_dhlsc, his_dhcon1, tr_seri)
    66
    7       USE dimphy
    8       USE infotrac
    9       USE indice_sol_mod
     7  USE dimphy
     8  USE infotrac
     9  USE indice_sol_mod
    1010
    11       IMPLICIT NONE
     11  IMPLICIT NONE
    1212
    13       INCLUDE "dimensions.h"
    14       INCLUDE "chem.h"
    15       INCLUDE "YOMCST.h"
    16       INCLUDE "paramet.h"
     13  INCLUDE "dimensions.h"
     14  INCLUDE "chem.h"
     15  INCLUDE "YOMCST.h"
     16  INCLUDE "paramet.h"
    1717
    18 c============================= INPUT ===================================
    19       REAL qmin, qmax
    20       REAL masse(nbtr)
    21       REAL henry(nbtr)         !--cste de Henry  mol/l/atm
    22       REAL kk(nbtr)            !--coefficient de var avec T (K)
    23       REAL prfl(klon,klev+1),   psfl(klon,klev+1)     !--large-scale
    24 !      REAL prfl(klon,klev),   psfl(klon,klev)     !--large-scale
    25       REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--convection
    26 !      REAL pmflxr(klon,klev), pmflxs(klon,klev)   !--convection
    27       REAL zrho(klon,klev), zdz(klon,klev)
    28       REAL t_seri(klon,klev)
    29       LOGICAL lminmax
    30       REAL pdtphys
    31 !      REAL prfl(klon,klev+1),   psfl(klon,klev+1)     !--large-scale  ! Titane
    32 !      REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--convection   ! Titane
    33 c============================= OUTPUT ==================================
    34       REAL tr_seri(klon,klev,nbtr) ! traceur
    35       REAL aux_var1(klon,klev) ! traceur
    36       REAL aux_var2(klon) ! traceur
    37       REAL aux_var3(klon) ! traceur
    38       REAL his_dhlsc(klon,nbtr)        ! in-cloud scavenging lsc
    39       REAL his_dhcon1(klon,nbtr)       ! in-cloud scavenging con
    40 c========================= LOCAL VARIABLES =============================     
    41       INTEGER it, i, j
    42      
    43       EXTERNAL minmaxqfi, inscav_spl
    44      
    45       DO it=1, nbtr
    46 c
    47       DO i=1,klon
    48         aux_var2(i)=his_dhlsc(i,it)
    49         aux_var3(i)=his_dhcon1(i,it)
     18  !============================= INPUT ===================================
     19  REAL :: qmin, qmax
     20  REAL :: masse(nbtr)
     21  REAL :: henry(nbtr)         !--cste de Henry  mol/l/atm
     22  REAL :: kk(nbtr)            !--coefficient de var avec T (K)
     23  REAL :: prfl(klon, klev + 1), psfl(klon, klev + 1)     !--large-scale
     24  ! REAL prfl(klon,klev),   psfl(klon,klev)     !--large-scale
     25  REAL :: pmflxr(klon, klev + 1), pmflxs(klon, klev + 1)   !--convection
     26  ! REAL pmflxr(klon,klev), pmflxs(klon,klev)   !--convection
     27  REAL :: zrho(klon, klev), zdz(klon, klev)
     28  REAL :: t_seri(klon, klev)
     29  LOGICAL :: lminmax
     30  REAL :: pdtphys
     31  ! REAL prfl(klon,klev+1),   psfl(klon,klev+1)     !--large-scale  ! Titane
     32  ! REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--convection   ! Titane
     33  !============================= OUTPUT ==================================
     34  REAL :: tr_seri(klon, klev, nbtr) ! traceur
     35  REAL :: aux_var1(klon, klev) ! traceur
     36  REAL :: aux_var2(klon) ! traceur
     37  REAL :: aux_var3(klon) ! traceur
     38  REAL :: his_dhlsc(klon, nbtr)        ! in-cloud scavenging lsc
     39  REAL :: his_dhcon1(klon, nbtr)       ! in-cloud scavenging con
     40  !========================= LOCAL VARIABLES =============================
     41  INTEGER :: it, i, j
     42
     43  EXTERNAL minmaxqfi, inscav_spl
     44
     45  DO it = 1, nbtr
     46    !
     47    DO i = 1, klon
     48      aux_var2(i) = his_dhlsc(i, it)
     49      aux_var3(i) = his_dhcon1(i, it)
     50    ENDDO
     51    DO j = 1, klev
     52      DO i = 1, klon
     53        aux_var1(i, j) = tr_seri(i, j, it)
    5054      ENDDO
    51       DO j=1,klev
    52       DO i=1,klon
    53         aux_var1(i,j)=tr_seri(i,j,it)
     55    ENDDO
     56    !
     57    IF (lminmax) THEN
     58      CALL minmaxqfi(aux_var1, qmin, qmax, 'avt inscav')
     59      !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'avt inscav')
     60    ENDIF
     61    !
     62    !nhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3,
     63    !nhl     .             prfl,psfl,zrho,zdz,t_seri,tr_seri(1,1,it),
     64    !nhl     .             his_dhlsc(1,it))
     65    CALL inscav_spl(pdtphys, it, masse(it), henry(it), kk(it), 0.5e-3, &
     66            prfl, psfl, zrho, zdz, t_seri, aux_var1, aux_var2)
     67    !
     68    IF (lminmax) THEN
     69      CALL minmaxqfi(aux_var1, qmin, qmax, 'depot humide lsc')
     70      !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide lsc')
     71    ENDIF
     72    !
     73    !
     74    !-scheme for convective in-cloud scavenging
     75    !
     76    !nhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
     77    !nhl     .             pmflxr,pmflxs,zrho,zdz,t_seri,tr_seri(1,1,it),
     78    !nhl     .             his_dhcon1(1,it))
     79    CALL inscav_spl(pdtphys, it, masse(it), henry(it), kk(it), 1.e-3, &
     80            pmflxr, pmflxs, zrho, zdz, t_seri, aux_var1, aux_var3)
     81    !
     82    IF (lminmax) THEN
     83      CALL minmaxqfi(aux_var1, qmin, qmax, 'depot humide con')
     84      !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide con')
     85    ENDIF
     86    !
     87    DO j = 1, klev
     88      DO i = 1, klon
     89        tr_seri(i, j, it) = aux_var1(i, j)
    5490      ENDDO
    55       ENDDO
    56 c     
    57       IF (lminmax) THEN
    58         CALL minmaxqfi(aux_var1,qmin,qmax,'avt inscav')
    59 cnhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'avt inscav')
    60       ENDIF
    61 c
    62 cnhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3,
    63 cnhl     .             prfl,psfl,zrho,zdz,t_seri,tr_seri(1,1,it),
    64 cnhl     .             his_dhlsc(1,it))
    65       CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3,
    66      .             prfl,psfl,zrho,zdz,t_seri,aux_var1,aux_var2)
    67 c
    68       IF (lminmax) THEN
    69         CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide lsc')
    70 cnhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide lsc')
    71       ENDIF
    72 c
    73 c
    74 c-scheme for convective in-cloud scavenging
    75 c
    76 cnhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
    77 cnhl     .             pmflxr,pmflxs,zrho,zdz,t_seri,tr_seri(1,1,it),
    78 cnhl     .             his_dhcon1(1,it))
    79       CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
    80      .             pmflxr,pmflxs,zrho,zdz,t_seri,aux_var1,aux_var3)
    81 c
    82       IF (lminmax) THEN
    83         CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide con')
    84 cnhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide con')
    85       ENDIF
    86 c
    87       DO j=1,klev
    88       DO i=1,klon
    89         tr_seri(i,j,it)=aux_var1(i,j)
    90       ENDDO
    91       ENDDO
    92       DO i=1,klon
    93         his_dhlsc(i,it)=aux_var2(i)
    94         his_dhcon1(i,it)=aux_var3(i)
    95       ENDDO
     91    ENDDO
     92    DO i = 1, klon
     93      his_dhlsc(i, it) = aux_var2(i)
     94      his_dhcon1(i, it) = aux_var3(i)
     95    ENDDO
    9696
    97 c
    98       ENDDO !--boucle sur it
     97    !
     98  ENDDO !--boucle sur it
    9999
    100       END
     100END SUBROUTINE incloud_scav
Note: See TracChangeset for help on using the changeset viewer.