/LMDZ5 Developers: dcugnet

Login name:
dcugnet
Total Commits:
154 (0,7 %)
Lines of Code:
11 107 (0,6 %)
Most Recent Commit:
2017-08-04 19:06
Tweet this:
Tweet this

Activity by Clock Time

Activity by Hour of Day for dcugnet

Activity by Day of Week for dcugnet

Activity in Directories

Directory Changes Lines of Code Lines per Change
Totals 154 (100.0%) 11107 (100.0%) 72.1
trunk/libf/phylmd/ 48 (31.2%) 3787 (34.1%) 78.8
trunk/libf/dyn3d/ 12 (7.8%) 1988 (17.9%) 165.6
trunk/libf/dyn3dmem/ 26 (16.9%) 1278 (11.5%) 49.1
trunk/libf/obsolete/ 5 (3.2%) 1130 (10.2%) 226.0
trunk/libf/misc/ 6 (3.9%) 866 (7.8%) 144.3
trunk/libf/dyn3d_common/ 27 (17.5%) 705 (6.3%) 26.1
trunk/libf/dynlonlat_phylonlat/ 3 (1.9%) 631 (5.7%) 210.3
trunk/libf/dynlonlat_phylonlat/phylmd/ 6 (3.9%) 410 (3.7%) 68.3
trunk/libf/dynphy_lonlat/phylmd/ 12 (7.8%) 286 (2.6%) 23.8
trunk/libf/dyn3dpar/ 3 (1.9%) 13 (0.1%) 4.3
branches/testing/libf/dynphy_lonlat/ 1 (0.6%) 9 (0.1%) 9.0
trunk/libf/phy_common/ 1 (0.6%) 2 (0.0%) 2.0
trunk/libf/dynphy_lonlat/ 3 (1.9%) 2 (0.0%) 0.6
trunk/ 1 (0.6%) 0 (0.0%) 0.0

Activity of dcugnet

Most Recent Commits

dcugnet 2017-08-04 19:06 Rev.: 2981

Fix for time interpolation when ozone files have 14 records (monthly means).

18 lines of code changed in 1 file:

  • trunk/libf/phylmd: regr_pr_time_av_m.F90 (+18 -6)
dcugnet 2017-07-26 14:48 Rev.: 2971

Control outputs for debug are removed.

0 lines of code changed in 1 file:

  • trunk/libf/phylmd: tropopause_m.F90 (-6)
dcugnet 2017-07-25 18:03 Rev.: 2968

Improved method for ozone forcing: the ozone field from the forcing file is
vertically interpolated on the LMDZ pressure field that is stretched, so
that the resulting tropopause is close from the one of LMDZ.
(need to activate key adjust_tropopause=y in run.def)

The stretching is done in a limited region in each column, defined by a
trapezoidal function:
- flat between LMDZ and file tropopauses (full stretching)
- quasi-linear in the 2 surrounding regions (from full to null stretching)
This way, most of the ozone profile is unaffected by the stretching.

The total ozone column is not stricly conserved.

The transition regions are thick enough to ensure that the stretched
pressure profile is growing with decreasing height. Some additional margin
helps to avoid a too steep variation in the stretched region.

In case the distance separating the chemical tropopause of the forcing
fields (built from monthly means) from the LMDZ dynamical tropopause
(extremely variable, both in space and time) is too large, it is under-
evaluated to avoid injecting ozone at low troposphere levels (filaments
of stratospheric air entering the troposphere are not accurately enough
detected to allow that to be done reliably).

In the dynamical tropopause detection routine, the PV and the potential
temperature are moderately smoothed to avoid the algorithm to be fooled
by local variations.

419 lines of code changed in 3 files:

  • trunk/libf/phylmd: physiq_mod.F90 (+3 -5), regr_pr_time_av_m.F90 (+326 -110), tropopause_m.F90 (+90 -57)
dcugnet 2017-07-24 15:56 Rev.: 2963

Fix a bug in the longitude interpolation of ozone, leading for some
resolutions to a too small margin to ensure inetrpolation without
any extrapolation.
Also, minor fix in regular_lonlat_mod.F90 routine to ensure that
boundslon_reg(i,east)>boundslon_reg(i,west).

14 lines of code changed in 3 files:

  • trunk/libf/dynphy_lonlat: inigeomphy_mod.F90 (+2 -2)
  • trunk/libf/phy_common: regular_lonlat_mod.F90 (+2 -2)
  • trunk/libf/phylmd: regr_horiz_time_climoz_m.F90 (+10 -9)
dcugnet 2017-07-13 18:43 Rev.: 2947

* The "units" attribute of SST variable is now checked to allow celcius
degrees to kelvins conversion if required.
* Few cosmetic changes for output text file to make it more readable (and
help to detect if ce0l has really done what was expected).

45 lines of code changed in 1 file:

  • trunk/libf/dynphy_lonlat/phylmd: limit_netcdf.F90 (+45 -25)
dcugnet 2017-07-11 17:42 Rev.: 2942

Remove test on sea ice concentration.

The aim of the test was to detect if a sea ice concentration field supposedly in
percents (holding the attribute "units" as correct) was in fact in area fraction.
But in some cases, all the fractions can be lower than one on the globe for
particular months, even if the field is really in percents.

2 lines of code changed in 1 file:

  • trunk/libf/dynphy_lonlat/phylmd: limit_netcdf.F90 (+2 -2)
dcugnet 2017-05-24 16:02 Rev.: 2893

Change for limit files (ce0l:limit_netcdf.F90): daily records are interpolated
at 12h (no longer 0h), so that the 0h-24h mean value is used the whole day.

2 lines of code changed in 1 file:

  • trunk/libf/dynphy_lonlat/phylmd: limit_netcdf.F90 (+2 -2)
dcugnet 2017-05-23 15:49 Rev.: 2889

Change of behaviour for ce0l:
* The time interpolation of AMIP mid-month boundary conditions datasets
(corresponding ce0l standard files/variables names: "amipbc_sst_1x1.bnc/tosbcs",
"amipbc_sic_1x1.nc/sicbcs") is no longer using splines, but is now linear.
See https://pcmdi.llnl.gov/mips/amip/details
* New ce0l standard files/variables names "amib_sst_1x1.nc/sst", "amip_sic_1x1.nc/sic"
are introduced to allow splines time interpolation with monthly mean observations
if needed (not adviced).
Note that splines time interpolation is still used for other fields "BILS", "ALB", "RUG"
and other cases ("amip_sst_1x1.nc" "cpl_atm_sst.nc" "histmth_sst.nc" "sstk.nc" for SST).

56 lines of code changed in 1 file:

  • trunk/libf/dynphy_lonlat/phylmd: limit_netcdf.F90 (+56 -17)
dcugnet 2017-03-13 15:54 Rev.: 2821

Fix bug introduced in rev. 2820.

1 lines of code changed in 1 file:

  • trunk/libf/phylmd: open_climoz_m.F90 (+1 -1)
dcugnet 2017-03-10 18:46 Rev.: 2820

Fix and cleaning/improvements over the previous commit:
* Old style climoz files are handled without trouble.
* New style climoz (monthly with 14 records or daily) are handled
with the same read_climoz key values (1 or 2).
* Daily files reading activation is done using the same key
used in ce0l to create them: ok_daily_climoz=y. This key is now
put to FALSE by default (old style 360 days files are not considered
as daily).

140 lines of code changed in 4 files:

  • trunk/libf/phylmd: conf_phys_m.F90 (+1 -1), open_climoz_m.F90 (+88 -78), physiq_mod.F90 (+12 -21), regr_pr_time_av_m.F90 (+39 -32)
dcugnet 2017-03-08 16:34 Rev.: 2819

* 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

39 lines of code changed in 2 files:

  • trunk/libf/phylmd: physiq_mod.F90 (+15 -2), regr_pr_time_av_m.F90 (+24 -18)
dcugnet 2017-02-02 20:01 Rev.: 2788

Changes in ce0l about the way ozone forcing files are generated:

1) 3D raw input files "climoz.nc" are now handled.
2) Default behaviour is now to let the gcm interpolate in time online.
This helps to avoid huge forcing files (in particular for 3D fields).
In this case, the output files "climoz_LMDZ.nc" all have 14 records:
* records 2-13 are obtained with records 1-12 of "climoz.nc".
* records 1 and 14 are obtained respectively with:
- record 12 of "climoz_m.nc" if available, of "climoz.nc" otherwise.
- record 1 of "climoz_p.nc" if available, of "climoz.nc" otherwise.
3) If ok_daily_climoz key is TRUE, the time interpolation (one record
a day) is forced, using the 14 records described below.
This now depends on the calendar (it was on a 360 days basis only).

Changes in the gcm about the way zone forcing files are read/interpolated:

1) 3D horizontally interpolated "climoz_LMDZ.nc" files are now handled.
2) Daily files (already interpolated in time) are still handled, but their
number of records must match the expected number of days, that depends
on the calendar (records step is no longer 1/360 year).
3) 14 records monthly files are now handled (and prefered). This reduces
the I/O to a minimum and the aditional computational cost is low (simple
online linear time interpolation).
4) If adjust_tropopause key is TRUE, the input fields are stretched using
following method:
* LMDZ dynamical tropopause is detected:
Ptrop_lmdz = MAX ( P(Potential Vorticity==2PVU), P(theta==380K) )
* file chemical tropopause is detected:
Ptrop_file = P( tro3 == o3t ), where:
o3t = 91. + 28. * SIN(PI*(month-2)/6) (ppbV)
This formula comes from Thouret & al., ACP 6, 1033-1051, 2006.
The second term of the expression is multiplied by TANH(lat_deg/20.)
to account for latitude dependency.
* File profile is streched in a +/- 5kms zone around the mean tropopause
to ensure resulting tropopause matches the one of LMDZ.
See procedure regr_pr_time_av for more details.


3121 lines of code changed in 27 files:

  • trunk/libf/dynphy_lonlat/phylmd: etat0phys_netcdf.F90 (+3 -3)
  • trunk/libf/misc: regr1_conserv_m.F90 (del), regr1_lint_m.F90 (del), regr3_lint_m.F90 (del), regr_conserv_m.F90 (new 388), regr_lint_m.F90 (new 219), slopes_m.F90 (+259 -202)
  • trunk/libf/obsolete: regr1_conserv_m.F90 (new 358), regr1_lint_m.F90 (new 98), regr3_lint_m.F90 (new 100), regr_lat_time_climoz_m.F90 (new 450), regr_pr_av_m.F90 (new 124)
  • trunk/libf/phylmd: clesphys.h (+4 -1), conf_phys_m.F90 (+27 -1), limit_read_mod.F90 (+1 -1), open_climoz_m.F90 (+36 -18), phys_local_var_mod.F90 (+4), physiq_mod.F90 (+31 -34), regr_horiz_time_climoz_m.F90 (new 510), regr_lat_time_climoz_m.F90 (del), regr_lat_time_coefoz_m.F90 (+6 -6), regr_pr_av_m.F90 (del), regr_pr_comb_coefoz_m.F90 (+3 -3), regr_pr_int_m.F90 (+3 -2), regr_pr_o3_m.F90 (+3 -3), regr_pr_time_av_m.F90 (new 390), tropopause_m.F90 (new 104)
dcugnet 2017-01-23 15:55 Rev.: 2768

Fix a bug about limit.nc file checking.
The limit.nc number of days does not need to be checked every day ; it
is now checked only at the start of the run ; this avoids the gcm to
stop because of a mismatch between the file and model number of days
(in the case of an irregular calendar) on last day due to the fact
that the calendar is updated before the end of the day.

30 lines of code changed in 1 file:

  • trunk/libf/phylmd: limit_read_mod.F90 (+30 -39)
dcugnet 2017-01-19 17:56 Rev.: 2766

* Fix limit_netcdf to handle correctly files with sea ice concentration
in fractions and not percents. CMIP6 official files have "units"
attribute equal to "1.0" with a null end character.
* Extraction of few calendar-related functions in cal_tools_m.F90.

128 lines of code changed in 2 files:

  • trunk/libf/dynphy_lonlat/phylmd: limit_netcdf.F90 (+39 -103)
  • trunk/libf/phylmd: cal_tools_m.F90 (new 89)
dcugnet 2016-10-12 14:53 Rev.: 2665

* A (re)startphy.nc file (standard name: "startphy0.nc") can be read by ce0l to
get land mask, so mask can be defined (in decreasing priority order) from:
1) "o2a.nc file" if this file is found
2) "startphy0.nc" if this file is found
3) "Relief.nc" otherwise
* Sub-cell scales parameters for orographic gravity waves can be read from file
"oro_params.nc" if the configuration key "read_orop" is TRUE.
The effect is to bypass the "grid_noro" routine in ce0l, so that any
pre-defined mask (from o2a.nc or startphy0.nc) is then overwritten.
* The gcm stops if the "limit.nc" records number differs from the current year
number of days. A warning is issued in case the gcm calendar does not match
the time axis attribute "calendar" (if available) from the "limit.nc" file.
This attribute is now added to the "limit.nc" time axis.
* Few simplifications in grid_noro
* Few parameters changes in acama_gwd and flott_gwd.
* Variable d_u can be saved in the outputs.

387 lines of code changed in 17 files:

  • trunk/libf/dyn3d: conf_gcm.F90 (+10 -1), logic_mod.F90 (+3 -2)
  • trunk/libf/dyn3dmem: conf_gcm.F90 (+10 -1), logic_mod.F90 (+3 -2)
  • trunk/libf/dyn3dpar: conf_gcm.F90 (+10 -1), logic_mod.F90 (+3 -2)
  • trunk/libf/dynphy_lonlat/phylmd: ce0l.F90 (+39 -9), etat0phys_netcdf.F90 (+16 -3), limit_netcdf.F90 (+27 -2)
  • trunk/libf/phylmd: acama_gwd_rando_m.F90 (+5 -4), flott_gwd_rando_m.F90 (+2 -2), grid_noro_m.F90 (+213 -130), limit_read_mod.F90 (+35 -2), phys_output_ctrlout_mod.F90 (+2), phys_output_mod.F90 (+2 -2), phys_output_write_mod.F90 (+5 -3), physiq_mod.F90 (+2 -2)
dcugnet 2016-06-20 19:29 Rev.: 2576

Use "traditional" sst/sic files without additional records from contiguous years,
but check for previous and next files. Example for Amip Sea Surface Temperature:
* amipbc_sst_1x1.nc must be present.
* if amipbc_sst_1x1_m.nc is present (previous year), its last record is used
for interpolation ; otherwise, the last record of amipbc_sst_1x1.nc is used.
* if amipbc_sst_1x1_p.nc is present (next year), its first record is used
for interpolation ; otherwise, the first record of amipbc_sst_1x1.nc is used.
If both contiguous fiels are missing, the interpolation then implies periodicity.
Note: grid_noro0 has been moved from limit_netcd to grid_noro_m where it belongs.

204 lines of code changed in 2 files:

  • trunk/libf/dynphy_lonlat/phylmd: limit_netcdf.F90 (+57 -160)
  • trunk/libf/phylmd: grid_noro_m.F90 (+147 -5)
dcugnet 2016-06-03 20:02 Rev.: 2540

Improved time interpolation for "limit.nc" files, depending on the number
of records found in the input SST/SIC files:
* 14 records => for interannual runs.
Record nr. 1 contains the december field of the previous year.
Record nr. 14 contains the january field of the next year.
* 12 records => for climatic runs.
Records 1 and 14 are duplicated from records 13 and 2.
* as much records as need by the LMDZ calendar for the considered year
=> no time interpolation at all (typically: for guided runs with
SST and SIC known every day).
In the first case: typical SST daily increment is about 0.04K at 3 sigmas.
The gap between 2 years (last day of previous - first day of current year)
decreases from 1K at 3 sigmas (former method) to 0.25K (improved method).
Could be improved a bit by taking even more records (16 ?) and a lot by
interpolating the whole time serie together.

0 lines of code changed in 2 files:

  • trunk/libf/dynphy_lonlat/phylmd: limit_netcdf.F90 (new)
dcugnet 2016-06-01 14:48 Rev.: 2532

Bug fix: For high resolutions or particular zoom center locations, an output cell (LMDZ grid) with no matching input cells ("landiceref.nc" file grid) caused a crash.

0 lines of code changed in 2 files:

  • trunk/libf/dynphy_lonlat: grid_atob_m.f90 (changed)
dcugnet 2016-05-30 17:09 Rev.: 2528

Bug fix: for high output resolution or particular zoom center locations, output cells with no matching input cell caused crash.

9 lines of code changed in 1 file:

  • branches/testing/libf/dynphy_lonlat: grid_atob_m.f90 (+9 -40)
dcugnet 2015-09-07 17:50 Rev.: 2361

In etat0dyn: removed few useless lines: "masque" is always known because etat0dyn is called after etat0phys.
In grid_atob: shape error in routine fine2coarse now fixed: "msk" argument and local variable mask must have the dimensions of the output grid. Working unit of dist_sphe is no longer degree, but radian.


34 lines of code changed in 2 files:

  • trunk/libf/dynlonlat_phylonlat: grid_atob_m.f90 (+33 -33)
  • trunk/libf/dynlonlat_phylonlat/phylmd: etat0dyn_netcdf.F90 (+1 -16)

(5 more)

Generated by StatSVN 0.7.0