Parent Directory | Revision Log
Sticky Revision: |
Just encapsulated SUBROUTINE vlsplt in a module and cleaned it. In procedure vlx, local variables dxqu and adxqu only need indices iip2:ip1jm. Otherwise, just cleaned vlx. Procedures dynredem0 and dynredem1 no longer have argument fichnom, they just operate on a file named "restart.nc". The programming guideline here is that gcm should not be more complex than it needs by itself, other programs (ce0l etc.) just have to adapt to gcm. So ce0l now creates files "restart.nc" and "restartphy.nc". In order to facilitate decentralizing the writing of "restartphy.nc", created a procedure phyredem0 out of phyredem. phyredem0 creates the NetCDF header of "restartphy.nc" while phyredem writes the NetCDF variables. As the global attribute itau_phy needs to be filled in phyredem0, at the beginnig of the run, we must compute its value instead of just using itap. So we have a dummy argument lmt_pas of phyredem0. Also, the ncid of "startphy.nc" is upgraded from local variable of phyetat0 to dummy argument. phyetat0 no longer closes "startphy.nc". Following the same decentralizing objective, the ncid of "restart.nc" is upgraded from local variable of dynredem0 to module variable of dynredem0_m. "restart.nc" is not closed at the end of dynredem0 nor opened at the beginning of dynredem1. In procedure etat0, instead of creating many vectors of size klon which will be filled with zeroes, just create one array null_array. In procedure phytrac, instead of writing trs(: 1) to a text file, write it to "restartphy.nc" (following LMDZ). This is better because now trs(: 1) is next to its coordinates. We can write to "restartphy.nc" from phytrac directly, and not add trs(: 1) to the long list of variables in physiq, thanks to the decentralizing of "restartphy.nc". In procedure phyetat0, we no longer write to standard output the minimum and maximum values of read arrays. It is ok to check input and abort on invalid values but just printing statistics on input seems too much useless computation and out of place clutter.
Sources inside, compilation outside.
Imported writefield from LMDZ. Close at the end of gcm the files which were created by writefiled (not done in LMDZ). Removed procedures for the output of Grads files. Removed calls to dump2d. In guide, replaced calls to wrgrads by calls to writefield. In vlspltqs, removed redundant programming of saturation pressure. Call foeew from module FCTTRE instead. Bug fix in interpre: size of w exceeding size of correponding actual argument wg in advtrac. In leapfrog, call guide until the end of the run, instead of six hours before the end. Bug fix in readsulfate_preind: type of arguments.
Removed procedure sortvarc0. Called sortvarc with an additional argument resetvarc instead. (Following LMDZ.) Moved current time computations and some printing statements from sortvarc to caldyn. Could then remove arguments itau and time_0 of sortvarc, and could remove "use dynetat0". Better to keep "dynetat0.f" as a gcm-only file. Moved some variables from module ener to module sortvarc. Split file "mathelp.f" into single-procedure files. Removed unused argument nadv of adaptdt. Removed dimension arguments of bernoui. Removed unused argument nisurf of interfoce_lim. Changed the size of argument lmt_sst of interfoce_lim from klon to knon. Removed case when newlmt is false. dynredem1 is called only once in each run, either ce0l or gcm. So variable nb in call to nf95_put_var was always 1. Removed variable nb. Removed dimension arguments of calcul_fluxs. Removed unused arguments precip_rain, precip_snow, snow of calcul_fluxs. Changed the size of all the arrays in calcul_fluxs from klon to knon. Removed dimension arguments of fonte_neige. Changed the size of all the arrays in fonte_neige from klon to knon. Changed the size of arguments tsurf and tsurf_new of interfsurf_hq from klon to knon. Changed the size of argument ptsrf of soil from klon to knon.
Removed unused file "condsurf.f" (only useful for ocean slab). day_step must be a multiple of 4 * iperiod if ok_guide. Changed type of variable online of module conf_guide_m from integer to logical. Value -1 was not useful, equivalent to not ok_guide. Removed argument masse of procedure guide. masse is kept consistent with ps throughout the run. masse need only be computed again just after ps has been modified. In prodecure guide, replaced use of remanent variable first by test on itau. Replaced test on variable "test" by test on integer values. In leapfrog, for the call to guide, replaced test on real values by test on integer values. Bug fix in tau2alpha: computation of dxdyv (following LMDZ revision 1040). In procedure wrgrads, replaced badly chosen argument name "if" by i_f.
Removed unused files "interfoce_slab.f" and "gath2cpl.f". Removed unused variables coastalflow and riverflow of module interface_surf. Removed unused arguments cal, radsol, dif_grnd, fluxlat, fluxsens, dflux_s, dflux_l of procedure fonte_neige. Removed unused arguments tslab, seaice of procedure interfsurf_hq and clqh. Removed unused arguments seaice of procedure clmain. In interfsurf_hq, used variable soil_model of module clesphys2 instead of cascading it as an argument from physiq. In phyetat0, stop if masque not found. Variable TS instead of "TS[0-9][0-9]" in "(re)startphy.nc", with additional dimension nbsrf.
Changed all ".f90" suffixes to ".f".
Converted to free source form files which were still in fixed source form. The conversion was done using the polish mode of the NAG Fortran Compiler. In addition to converting to free source form, the processing of the files also: -- indented the code (including comments); -- set Fortran keywords to uppercase, and set all other identifiers to lower case; -- added qualifiers to end statements (for example "end subroutine conflx", instead of "end"); -- changed the terminating statements of all DO loops so that each loop ends with an ENDDO statement (instead of a labeled continue).
Moved everything out of libf.
Extracted ASCII art from "inigeom" into a separate text file in the documentation. "test_disvert" now creates a separate file for layer thicknesses. Moved variables from module "yomcst" to module "suphec_m" because this is where those variables are defined. Kept in "yomcst" only parameters of Earth orbit. Gave the attribute "parameter" to some variables of module "suphec_m". Variables of module "yoethf" were defined in procedure "suphec". Moved these definitions to a new procedure "yoethf" in module "yoethf_m".
Initial import
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
ViewVC Help | |
Powered by ViewVC 1.1.21 |