source: LMDZ6/trunk/libf/phylmd/StratAer/strataer_nuc_mod.f90 @ 5447

Last change on this file since 5447 was 5268, checked in by abarral, 2 months ago

.f90 <-> .F90 depending on cpp key use

File size: 2.6 KB
Line 
1! $Id: strataer_nuc_mod.F90 3930 2021-06-11 19:39:09Z oboucher $
2MODULE strataer_nuc_mod
3! This module contains information about strato microphysic model nucleation parameters
4 
5  IMPLICIT NONE
6 
7CONTAINS
8 
9  ! Init all nucleation params
10  SUBROUTINE strataer_nuc_init()
11   
12    USE ioipsl_getin_p_mod, ONLY : getin_p
13    USE print_control_mod, ONLY : lunout
14    USE mod_phys_lmdz_para, ONLY : is_master
15    USE strataer_local_var_mod, ONLY: ALPH2SO4,flag_nuc_rate_box,nuclat_min,nuclat_max, &
16         nucpres_min,nucpres_max
17   
18    !Config Key  = flag_nuc_rate_box
19    !Config Desc = define or not a box for nucleation rate
20    ! - F = global nucleation
21    ! - T = 2D-box for nucleation need nuclat_min, nuclat_max, nucpres_min and
22    ! nucpres_max
23    !       to define its bounds.
24    !Config Def  = F
25    !Config Help = Used in physiq.F
26    !
27    CALL getin_p('flag_nuc_rate_box',flag_nuc_rate_box)
28    CALL getin_p('nuclat_min',nuclat_min)
29    CALL getin_p('nuclat_max',nuclat_max)
30    CALL getin_p('nucpres_min',nucpres_min)
31    CALL getin_p('nucpres_max',nucpres_max)
32   
33    ! Read argument H2SO4 accommodation  coefficient [condensation/evaporation]
34    CALL getin_p('alph2so4',ALPH2SO4)
35   
36    !============= Print params =============
37    IF (is_master) THEN
38       WRITE(lunout,*) 'IN STRATAER_NUC : ALPH2SO4 = ',alph2so4
39       WRITE(lunout,*) 'IN STRATAER_NUC : flag_nuc_rate_box = ',flag_nuc_rate_box
40       IF (flag_nuc_rate_box) THEN
41          WRITE(lunout,*) 'IN STRATAER_NUC : nuclat_min = ',nuclat_min,', nuclat_max = ',nuclat_max
42          WRITE(lunout,*) 'IN STRATAER_NUC : nucpres_min = ',nucpres_min,', nucpres_max = ',nucpres_max
43       ENDIF
44    ENDIF ! if master
45   
46  END SUBROUTINE strataer_nuc_init
47 
48  ! Init aerosol tracers and large scale scavinging
49  SUBROUTINE tracstrataer_init(aerosol,lessivage)
50   
51    USE infotrac_phy, ONLY: nbtr, nbtr_sulgas, id_H2SO4_strat
52    USE ioipsl, ONLY : getin
53    USE print_control_mod, ONLY : lunout
54   
55    ! Output variables
56    LOGICAL,DIMENSION(nbtr), INTENT(INOUT) :: aerosol
57    LOGICAL,INTENT(INOUT)                  :: lessivage
58    INTEGER :: it
59   
60    ! Initialization
61    lessivage  =.TRUE.
62    aerosol(:) = .FALSE.
63   
64    DO it= 1, nbtr_sulgas
65       aerosol(it)=.FALSE.
66       IF (it==id_H2SO4_strat) aerosol(it)=.TRUE.
67    ENDDO
68    DO it= nbtr_sulgas+1, nbtr
69       aerosol(it)=.TRUE.
70    ENDDO
71   
72    !!jyg(20130206) : le choix d activation du lessivage est fait dans phytrac avec iflag_lscav
73!    CALL getin('lessivage',lessivage)
74    WRITE(lunout,*) 'IN TRACSTRATAER_INIT lessivage: ',lessivage
75   
76  END SUBROUTINE tracstrataer_init
77 
78END MODULE strataer_nuc_mod
Note: See TracBrowser for help on using the repository browser.