Ignore:
Timestamp:
Mar 8, 2017, 3:34:12 PM (7 years ago)
Author:
dcugnet
Message:
  • Modification to allow previous convention climoz files (360 records for all calendars) to be handled again:
    • read_climoz=1 / 2 (tro3 only / tro3 and tro3_daylight) => 360 records file
    • read_climoz=3 / 4 (same) => daily (calendar compliant) file or monthly (14 records) file
  • Few fixes in the ozone forcing reading routine
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/physiq_mod.F90

    r2812 r2819  
    10211021                                  = ["tro3         ","tro3_daylight"]
    10221022    ! vars_climoz(1:read_climoz): variables names in climoz file.
     1023    ! vars_climoz(1:read_climoz-2) if read_climoz>2 (temporary)
     1024    REAL :: ro3i ! 0<=ro3i<=360 ; required time index in NetCDF file for
     1025                 ! the ozone fields, old method.
    10231026
    10241027    include "YOMCST.h"
     
    19721975
    19731976          wo(:,:,1)=ozonecm(latitude_deg, paprs,read_climoz,rjour=zzz)
     1977       ELSE IF(ANY([1,2]==read_climoz)) THEN
     1978          ro3i = REAL(INT((days_elapsed+jh_cur-jh_1jan)/year_len*360.))
     1979          IF(INT(ro3i) == 360) ro3i = 359.
     1980          ! (This should never occur, except perhaps because of roundup
     1981          ! error. See documentation.)
     1982          WRITE(*,*)' >> Using 360 records ozone files (old method).'
     1983          CALL regr_pr_time_av(ncid_climoz, vars_climoz(1:read_climoz),      &
     1984                               ro3i+1., press_edg_climoz, paprs, wo)
     1985          FORALL (l = 1: read_climoz) wo(:, :, l) = wo(:, :, l) * rmo3 / rmd &
     1986               * zmasse / dobson_u / 1e3
    19741987       ELSE
    19751988          IF(adjust_tropopause) THEN
     
    19771990            CALL dyn_tropopause(t_seri, ztsol, paprs, pplay, presnivs, rot,  &
    19781991                 pr_tropopause)
    1979             CALL regr_pr_time_av(ncid_climoz, vars_climoz(1:read_climoz),    &
     1992            CALL regr_pr_time_av(ncid_climoz, vars_climoz(1:read_climoz-2),  &
    19801993                 days_elapsed+jh_cur-jh_1jan, press_edg_climoz, paprs, wo,   &
    19811994                 time_climoz,  latitude_deg,  press_cen_climoz, pr_tropopause)
    19821995          ELSE
    19831996            WRITE(*,*)' >> Interpolating O3 field directly on gcm levels.'
    1984             CALL regr_pr_time_av(ncid_climoz, vars_climoz(1:read_climoz),    &
     1997            CALL regr_pr_time_av(ncid_climoz, vars_climoz(1:read_climoz-2),  &
    19851998                 days_elapsed+jh_cur-jh_1jan, press_edg_climoz, paprs, wo,   &
    19861999                 time_climoz)
Note: See TracChangeset for help on using the changeset viewer.