source: LMDZ6/trunk/libf/phylmd/lmdz_cloud_optics_prop_ini.F90 @ 4705

Last change on this file since 4705 was 4692, checked in by Laurent Fairhead, 10 months ago

Continuing work from poihl workshop on replayisation of routines:
removed most of the modules (discussion needed for rest), declared calling arguments
with INTENTs and created the ini routine

File size: 1.8 KB
Line 
1MODULE lmdz_cloud_optics_prop_ini
2  IMPLICIT NONE
3
4  SAVE
5
6  INTEGER, PROTECTED :: prt_level, lunout
7  INTEGER, PROTECTED :: flag_aerosol
8  INTEGER, PROTECTED :: iflag_t_glace=0
9  LOGICAL, PROTECTED ::ok_cdnc
10  REAL, PROTECTED :: bl95_b0, bl95_b1 ! Parameter in B&L 95-Formula
11  REAL, ALLOCATABLE :: latitude_deg(:)
12  !$OMP THREADPRIVATE(latitude_deg)
13  REAL, PROTECTED :: cdnc_max=-1.
14  REAL, PROTECTED :: cdnc_max_m3=-1.
15  REAL, PROTECTED :: cdnc_min=-1.
16  REAL, PROTECTED :: cdnc_min_m3=-1.
17 
18CONTAINS
19
20  SUBROUTINE cloud_optics_prop_ini(klon, prt_level_in, lunout_in, flag_aerosol_in, &
21       & ok_cdnc_in, bl95_b0_in, &
22       & bl95_b1_in, latitude_deg_in)
23
24    USE ioipsl_getin_p_mod, ONLY : getin_p
25
26    IMPLICIT NONE
27    INTEGER, INTENT(IN) :: klon
28    INTEGER, INTENT(IN) :: prt_level_in, lunout_in
29    INTEGER, INTENT(IN) :: flag_aerosol_in
30    LOGICAL, INTENT(IN) :: ok_cdnc_in
31    REAL, INTENT(IN) :: bl95_b0_in, bl95_b1_in
32    REAL, INTENT(IN) :: latitude_deg_in(klon)
33
34    ALLOCATE(latitude_deg(klon))
35
36    prt_level = prt_level_in
37    lunout = lunout_in
38    flag_aerosol = flag_aerosol_in
39    ok_cdnc = ok_cdnc_in
40    bl95_b0 = bl95_b0_in
41    bl95_b1 = bl95_b1_in
42    latitude_deg(:) = latitude_deg_in(:)
43    call getin_p('cdnc_min',cdnc_min)
44    cdnc_min_m3=cdnc_min*1.E6
45    IF (cdnc_min_m3<0.) cdnc_min_m3=20.E6 ! astuce pour retrocompatibilite
46    write(lunout,*)'cdnc_min=', cdnc_min_m3/1.E6
47    call getin_p('cdnc_max',cdnc_max)
48    cdnc_max_m3=cdnc_max*1.E6
49    IF (cdnc_max_m3<0.) cdnc_max_m3=1000.E6 ! astuce pour retrocompatibilite
50    write(lunout,*)'cdnc_max=', cdnc_max_m3/1.E6
51    CALL getin_p('iflag_t_glace',iflag_t_glace)     
52    write(lunout,*)'iflag_t_glace= ',iflag_t_glace
53   
54  END SUBROUTINE cloud_optics_prop_ini
55
56END MODULE lmdz_cloud_optics_prop_ini
Note: See TracBrowser for help on using the repository browser.