Ignore:
Timestamp:
Dec 6, 2022, 12:01:16 AM (22 months ago)
Author:
lguez
Message:

Sync latest trunk changes to Ocean_skin

Location:
LMDZ6/branches/Ocean_skin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Ocean_skin

  • LMDZ6/branches/Ocean_skin/libf/phylmd/StratAer/strataer_mod.F90

    r4013 r4368  
    7979    !Config Help = Used in physiq.F
    8080    !
    81     flag_sulf_emit = 0
     81    flag_sulf_emit = 0 ! Background (default)
     82    flag_sulf_emit_distrib = 0 ! Gaussian (default)
    8283    nErupt = 0 ! eruption number
    8384    injdur = 0 ! init injection duration
     
    8788       CALL getin_p('nErupt',nErupt)
    8889       CALL getin_p('injdur',injdur)
     90       CALL getin_p('flag_sulf_emit_distrib',flag_sulf_emit_distrib)
     91
     92       year_emit_vol=0 ; mth_emit_vol=0 ; day_emit_vol=0
     93       m_aer_emiss_vol=0. ; altemiss_vol=0. ; sigma_alt_vol=0.
     94       xlon_min_vol=0. ; xlon_max_vol=0.
     95       xlat_min_vol=0. ; xlat_max_vol=0.
     96
     97       IF (nErupt.GT.0) THEN
     98          ALLOCATE(year_emit_vol(nErupt),mth_emit_vol(nErupt),day_emit_vol(nErupt))
     99          ALLOCATE(m_aer_emiss_vol(nErupt),altemiss_vol(nErupt),sigma_alt_vol(nErupt))
     100          ALLOCATE(xlat_min_vol(nErupt),xlon_min_vol(nErupt))
     101          ALLOCATE(xlat_max_vol(nErupt),xlon_max_vol(nErupt))
     102       ELSE
     103          WRITE(lunout,*) 'ERROR : Using flag_sulf_emit=1 (ie Volcanic eruption) but nErupt (',nErupt,') <=0 !'
     104          CALL abort_physic('strataer_mod','No eruption define in physiq_def (nErupt=0). Add one or use background condition.',1)
     105       ENDIF
     106
     107       CALL getin_p('year_emit_vol',year_emit_vol)
     108       CALL getin_p('mth_emit_vol',mth_emit_vol)
     109       CALL getin_p('day_emit_vol',day_emit_vol)
     110       CALL getin_p('m_aer_emiss_vol',m_aer_emiss_vol)
     111       CALL getin_p('altemiss_vol',altemiss_vol)
     112       CALL getin_p('sigma_alt_vol',sigma_alt_vol)
     113       CALL getin_p('xlon_min_vol',xlon_min_vol)
     114       CALL getin_p('xlon_max_vol',xlon_max_vol)
     115       CALL getin_p('xlat_min_vol',xlat_min_vol)
     116       CALL getin_p('xlat_max_vol',xlat_max_vol)
    89117    ELSEIF (flag_sulf_emit == 2) THEN ! SAI
    90118       CALL getin_p('m_aer_emiss_sai',m_aer_emiss_sai)
     
    93121       CALL getin_p('xlat_sai',xlat_sai)
    94122       CALL getin_p('xlon_sai',xlon_sai)
    95        CALL getin_p('flag_sulf_emit_distrib',flag_sulf_emit_distrib)
    96123    ELSEIF (flag_sulf_emit == 3) THEN ! SAI between latitudes
    97124       CALL getin_p('m_aer_emiss_sai',m_aer_emiss_sai)
     
    101128       CALL getin_p('xlat_max_sai',xlat_max_sai)
    102129       CALL getin_p('xlat_min_sai',xlat_min_sai)
    103        CALL getin_p('flag_sulf_emit_distrib',flag_sulf_emit_distrib)
    104130    ENDIF
    105131
    106     ALLOCATE(year_emit_vol(nErupt),mth_emit_vol(nErupt),day_emit_vol(nErupt))
    107     ALLOCATE(m_aer_emiss_vol(nErupt),altemiss_vol(nErupt),sigma_alt_vol(nErupt))
    108     ALLOCATE(xlat_min_vol(nErupt),xlon_min_vol(nErupt))
    109     ALLOCATE(xlat_max_vol(nErupt),xlon_max_vol(nErupt))
    110    
    111     IF (nErupt.GT.0) THEN
    112       year_emit_vol=0 ; mth_emit_vol=0 ; day_emit_vol=0
    113       m_aer_emiss_vol=0. ; altemiss_vol=0. ; sigma_alt_vol=0.
    114       xlon_min_vol=0. ; xlon_max_vol=0.
    115       xlat_min_vol=0. ; xlat_max_vol=0.
    116     ENDIF
    117    
    118     CALL getin_p('year_emit_vol',year_emit_vol)
    119     CALL getin_p('mth_emit_vol',mth_emit_vol)
    120     CALL getin_p('day_emit_vol',day_emit_vol)
    121     CALL getin_p('m_aer_emiss_vol',m_aer_emiss_vol)
    122     CALL getin_p('altemiss_vol',altemiss_vol)
    123     CALL getin_p('sigma_alt_vol',sigma_alt_vol)
    124     CALL getin_p('xlon_min_vol',xlon_min_vol)
    125     CALL getin_p('xlon_max_vol',xlon_max_vol)
    126     CALL getin_p('xlat_min_vol',xlat_min_vol)
    127     CALL getin_p('xlat_max_vol',xlat_max_vol)
    128132    !Config Key  = flag_nuc_rate_box
    129133    !Config Desc = define or not a box for nucleation rate
     
    136140    !
    137141    flag_nuc_rate_box = .FALSE.
     142    nuclat_min=0  ; nuclat_max=0
     143    nucpres_min=0 ; nucpres_max=0
     144
    138145    CALL getin_p('flag_nuc_rate_box',flag_nuc_rate_box)
    139146    CALL getin_p('nuclat_min',nuclat_min)
     
    153160       WRITE(lunout,*) 'IN STRATAER : altemiss_vol',altemiss_vol
    154161       WRITE(lunout,*) 'IN STRATAER : sigma_alt_vol',sigma_alt_vol
    155        WRITE(lunout,*) 'IN STRATAER : ponde_lonlat_vol',ponde_lonlat_vol
    156162       WRITE(lunout,*) 'IN STRATAER : xlat_min_vol',xlat_min_vol
    157163       WRITE(lunout,*) 'IN STRATAER : xlat_max_vol',xlat_max_vol
     
    164170       WRITE(lunout,*) 'IN STRATAER : xlat_sai',xlat_sai
    165171       WRITE(lunout,*) 'IN STRATAER : xlon_sai',xlon_sai
    166        WRITE(lunout,*) 'flag_sulf_emit_distrib = ',flag_sulf_emit_distrib
    167172    ELSEIF (flag_sulf_emit == 3) THEN
    168173       WRITE(lunout,*) 'IN STRATAER : m_aer_emiss_sai',m_aer_emiss_sai
     
    172177       WRITE(lunout,*) 'IN STRATAER : xlat_max_sai',xlat_max_sai
    173178       WRITE(lunout,*) 'IN STRATAER : xlon_sai',xlon_sai
    174        WRITE(lunout,*) 'flag_sulf_emit_distrib = ',flag_sulf_emit_distrib
    175179    ENDIF
     180    WRITE(lunout,*) 'flag_sulf_emit_distrib = ',flag_sulf_emit_distrib
    176181    WRITE(lunout,*) 'IN STRATAER : flag_nuc_rate_box = ',flag_nuc_rate_box
    177182    IF (flag_nuc_rate_box) THEN
     
    181186    !ENDIF
    182187
    183     CALL strataer_ponde_init
    184     WRITE(lunout,*) 'IN STRATAER INT2 END'
     188    IF (flag_sulf_emit == 1) THEN
     189       CALL strataer_ponde_init
     190       WRITE(lunout,*) 'IN STRATAER INT2 END'
     191    END IF
     192    WRITE(lunout,*) 'IN STRATAER END'
    185193
    186194  END SUBROUTINE strataer_init
Note: See TracChangeset for help on using the changeset viewer.