Parent Directory | Revision Log
Sticky Revision: |
Moved variables date0, deltat, datasz_max, ncvar_ids, point, buff_pos, buffer, regular from module histcom_var to modules where they are defined. Removed procedure ioipslmpp, useless for a sequential program. Added argument datasz_max to histwrite_real (to avoid circular dependency with histwrite). Removed useless variables and computations everywhere. Changed real litteral constants from default kind to double precision in lwb, lwu, lwvn, sw1s, swtt, swtt1, swu. Removed unused arguments: paer of sw, sw1s, sw2s, swclr; pcldsw of sw1s, sw2s; pdsig, prayl of swr; co2_ppm of clmain, clqh; tsol of transp_lay; nsrf of screenp; kcrit and kknu of gwstress; pstd of orosetup. Added output of relative humidity.
Added argument itau_phy to ini_histins, phyetat0, phytrac and phyredem0. Removed variable itau_phy of module temps. Avoiding side effect in etat0 and phyetat0. The procedures ini_histins, phyetat0, phytrac and phyredem0 are all called by physiq so there is no cascading variable penalty. In procedure inifilr, made the condition on colat0 weaker to allow for rounding error. Removed arguments flux_o, flux_g and t_slab of clmain, flux_o and flux_g of clqh and interfsurf_hq, tslab and seaice of phyetat0 and phyredem. NetCDF variables TSLAB and SEAICE no longer in restartphy.nc. All these variables were related to the not-implemented slab ocean. seaice and tslab were just set to 0 in phyetat0 and never used nor changed. flux_o and flux_g were computed in clmain but never used in physiq. Removed argument swnet of clqh. Was used only to compute a local variable, swdown, which was not used.
Simplifications in procedure albsno. Since veget(:, 2:) was 0, iterations 2 to nvm of the loop computing alb_neig_grid were useless. Useless initializations of alb_neige in procedure interfsurf_hq: alb_neig is always computed by albsno just before being used. Useless computation of local variable zfra in the land ice case.
Do not write any longer to startphy.nc nor read from restartphy.nc the NetCDF variable ALBLW: it was the same than ALBE. ALBE was for the visible and ALBLW for the near infrared. In physiq, use only variables falbe and albsol, removed falblw and albsollw. See revision 888 of LMDZ. Removed unused arguments pdp of SUBROUTINE lwbv, ptave of SUBROUTINE lwv, kuaer of SUBROUTINE lwvd, nq of SUBROUTINE initphysto.
Removed argument dtphys of physiq. Use it directly from comconst in physiq instead. Donwgraded variables eignfnu, eignfnv of module inifgn_m to dummy arguments of SUBROUTINE inifgn. They were not used elsewhere than in the calling procedure inifilr. Renamed argument dv of inifgn to eignval_v. Made alboc and alboc_cd independent of the size of arguments. Now we can call them only at indices knindex in interfsurf_hq, where we need them. Fixed a bug in alboc_cd: rmu0 was modified, and the corresponding actual argument in interfsurf_hq is an intent(in) argument of interfsurf_hq. Variables of size knon instead of klon in interfsur_lim and interfsurf_hq. Removed argument alb_new of interfsurf_hq because it was the same than alblw. Simplified test on cycle_diurne, following LMDZ. Moved tests on nbapp_rad from physiq to read_clesphys2. No need for separate counter itaprad, we can use itap. Define lmt_pas and radpas from integer input parameters instead of real-type computed values.
Removed unused arguments of groupe, cv3_undilute2, cv_undilute2, interfsur_lim, drag_noro, orodrag, gwprofil Chickened out of revision 148: back to double precision in invert_zoom_x (and overloaded rtsafe).
Sources inside, compilation outside.
Removed arguments klon, knon of interfoce_lim. Removed argument knon of interfsur_lim.
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 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.
Created procedure test_disvert (following LMDZ). Added procedures hybrid and funcd in module disvert_m. Upgraded compute_ab from internal procedure of disvert to module procedure. Added variables y, ya in module disvert_m. Upgraded s from local variable of procedure disvert to module variable. Renamed allowed value of variable vert_sampling in procedure disvert from "read" to "read_hybrid". Added possibility to read pressure values, value "read_pressure". Replaced vertical distribution for value "param" by the distribution "strato_correct" from LMDZ (but kept the value "param"). In case "tropo", replaced 1 by dsigmin (following LMDZ). In case "strato", replaced 0.3 by dsigmin (following LMDZ). Changed computation of bp in procedure compute_ab. Removed debugindex case in clmain. Removed useless argument rlon of procedure clmain. Removed useless variables ytaux, ytauy of procedure clmain. Removed intermediary variables tsol, qsol, tsolsrf, tslab in procedure etat0. Removed variable ok_veget:. coupling with the model Orchid is not possible. Removed variable ocean: modeling an ocean slab is not possible. Removed useless variables tmp_rriv and tmp_rcoa from module interface_surf. Moved initialization of variables da, mp, phi in procedure physiq to to inside the test iflag_con >= 3.
Split inter_barxy.f : one procedure per module, one module per file. Grouped the files into a directory. Split orbite.f. Value of raz_date read from the namelist is taken into account (resetting the step counter) even if annee_ref == anneeref and day_ref == dayref. raz_date is no longer modified by gcm main unit. (Following LMDZ.) Removed argument klon of interfsur_lim. Renamed arguments lmt_alb, lmt_rug to alb_new, z0_new (same name as corresponding actual arguments in interfsurf_hq). Removed argument klon of interfsurf_hq. Removed arguments qs and d_qs of diagetpq. Were always zero. Downgraded arguments d_qw, d_ql of diagetpq to local variables, they were not used in physiq. Removed all computations for solid water in diagetpq, was just zero. Downgraded arguments fs_bound, fq_bound of diagphy to local variables, they were not used in physiq. Encapsulated in a test on iprt all computations in diagphy. Removed parameter nbtr of module dimphy. Replaced it everywhere in the program by nqmx - 2. Removed parameter rnpb of procedure physiq. Kept the true case in physiq and phytrac. Could not work with false case anyway. Removed arguments klon, llm, airephy of qcheck. Removed argument ftsol of initrrnpb, was not used.
Changed all ".f90" suffixes to ".f".
Moved everything out of libf.
NaN to signalling NaN in gfortran_debug.mk. Removed unused procedures in getincom and getincom2. In procedure conf_interface, replaced call to getincom by new namelist. Moved procedure conf_interface into module interface_surf. Added variables sig1 and w01 to startphy.nc and restartphy.nc, for procedure cv_driver. Renamed (ema_)?work1 and (ema_)?work2 to sig1 and w01 in concvl and physiq. Deleted unused arguments of clmain, clqh and intersurf_hq, among which (y)?sollwdown. Following LMDZ, in physiq, read sollw instead of sollwdown from startphy.nc, write sollw instead of sollwdown to restartphy.nc. In procedure sw, initialized zfs[ud][pn]a[di], for runs where ok_ade and ok_aie are false. (Following LMDZ.) Added dimension klev to startphy.nc and restartphy.nc, and deleted dimension horizon_vertical. Made t_ancien and q_ancien two-dimensional NetCDF variables. Bug fix: in phyetat0, define ratqs, clwcon and rnebcon for vertical levels >=2. Bug fix: set mfg, p[de]n_[ud] to 0. when iflag_con >= 3. (Following LMDZ.)
In procedure, "addfi" access directly the module variable "dtphys" instead of going through an argument. In "conflx", do not create a local variable for temperature with reversed order of vertical levels. Instead, give an actual argument with reversed order in "physiq". Changed names of variables "rmd" and "rmv" from module "suphec_m" to "md" and "mv". In "hgardfou", print only the first temperature out of range found.
Changed handling of compiler in compilation system. Removed the prefix letters "y", "p", "t" or "z" in some names of variables. Replaced calls to NetCDF by calls to NetCDF95. Extracted "ioget_calendar" procedures from "calendar.f90" into a separate file. Extracted to a separate file, "mathop2.f90", procedures that were not part of the generic interface "mathop" in "mathop.f90". Removed computation of "dq" in "bilan_dyn", which was not used. In "iniadvtrac", removed schemes 20 Slopes and 30 Prather. Was not compatible with declarations of array sizes. In "clcdrag", "ustarhb", "vdif_kcay", "yamada4" and "coefkz", changed the size of some arrays from "klon" to "knon". Removed possible call to "conema3" in "physiq". Removed unused argument "cd" in "yamada".
Removed Numerical Recipes procedure "ran1". Replaced calls to "ran1" in "inidissip" by calls to intrinsic procedures. Split file "interface_surf.f90" into a file with a module containing only variables, "interface_surf", and single-procedure files. Gathered files into directory "Interface_surf". Added argument "cdivu" to "gradiv" and "gradiv2", "cdivh" to "divgrad2" and "divgrad", and "crot" to "nxgraro2" and "nxgrarot". "dissip" now uses variables "cdivu", "cdivh" and "crot" from module "inidissip_m", so it can pass them to "gradiv2", etc. Thanks to this modification, we avoid a circular dependency betwwen "inidissip.f90" and "gradiv2.f90", etc. The value -1. used by "gradiv2", for instance, during computation of eigenvalues is not the value "cdivu" computed by "inidissip". Extracted procedure "start_inter_3d" from module "startdyn", to its own module. In "inidissip", unrolled loop on "ii". I find it clearer now. Moved variables "matriceun", "matriceus", "matricevn", "matricevs", "matrinvn" and "matrinvs" from module "parafilt" to module "inifilr_m". Moved variables "jfiltnu", "jfiltnv", "jfiltsu", "jfiltsv" from module "coefils" to module "inifilr_m".
LMDZE now uses library Jumble. Removed all calls to "flinget". Replaced calls to "flinget", "flininfo", "flinopen_nozoom" by calls to NetCDF95 and Jumble. Split file "cv_driver.f" into "cv_driver.f90", "cv_flag.f90" and "cv_thermo.f90". Bug fix: "QANCIEN" was read twice in "phyeytat0". In "physiq", initialization of "d_t", "d_u", "d_v" was useless.
"pi" comes from "nr_util". Removed subroutine "initialize" in module "comconst". Copied the content of "fxy_sin.h" into "fxysinus", instead of getting it from an "include" line. Removed file "fxy_sin.h". "ps" has rank 2 in "gcm" and "dynetat0". Assumed-shape for argument "q" of "integrd".
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".
-- Minor modification of input/output: Created procedure "read_logic". Variables of module "logic" are read by "read_logic" instead of "conf_gcm". Variable "offline" of module "conf_gcm" is read from namelist instead of "*.def". Deleted arguments "dtime", "co2_ppm_etat0", "solaire_etat0", "tabcntr0" and local variables "radpas", "tab_cntrl" of "phyetat0". "phyetat0" does not read "controle" in "startphy.nc" any longer. "phyetat0" now reads global attribute "itau_phy" from "startphy.nc". "phyredem" does not create variable "controle" in "startphy.nc" any longer. "phyredem" now writes global attribute "itau_phy" of "startphy.nc". Deleted argument "tabcntr0" of "printflag". Removed diagnostic messages written by "printflag" for comparison of the variable "controle" of "startphy.nc" and the variables read from "*.def" or namelist input. -- Removing unwanted functionality: Removed variable "lunout" from module "iniprint", replaced everywhere by standard output. Removed case "ocean == 'couple'" in "clmain", "interfsurf_hq" and "physiq". Removed procedure "interfoce_cpl". -- Should not change anything at run time: Automated creation of graphs in documentation. More documentation on input files. Converted Fortran files to free format: "phyredem.f90", "printflag.f90". Split module "clesphy" into "clesphys" and "clesphys2". Removed variables "conser", "leapf", "forward", "apphys", "apdiss" and "statcl" from module "logic". Added arguments "conser" to "advect", "leapf" to "integrd". Added local variables "forward", "leapf", "apphys", "conser", "apdiss" in "leapfrog". Added intent attributes. Deleted arguments "dtime" of "phyredem", "pdtime" of "flxdtdq", "sh" of "phytrac", "dt" of "yamada". Deleted local variables "dtime", "co2_ppm_etat0", "solaire_etat0", "length", "tabcntr0" in "physiq". Replaced all references to "dtime" by references to "pdtphys".
This revision is not in working order. Pending some moving of files. Important changes. In the program "etat0_lim": ozone coefficients from Mobidic are regridded in time instead of pressure ; consequences in "etat0". In the program "gcm", ozone coefficients from Mobidic are read once per day only for the current day and regridded in pressure ; consequences in "o3_chem_m", "regr_pr_coefoz", "phytrac" and "regr_pr_comb_coefoz_m". NetCDF95 is a library and does not export NetCDF. New variables "nag_gl_options", "nag_fcalls_options" and "nag_cross_options" in "nag_tools.mk". "check_coefoz.jnl" rewritten entirely for new version of "coefoz_LMDZ.nc". Target "obj_etat0_lim" moved from "GNUmakefile" to "nag_rules.mk". Added some "intent" attributes in "calfis", "clmain", "clqh", "cltrac", "cltracrn", "cvltr", "ini_undefSTD", "moy_undefSTD", "nflxtr", "phystokenc", "phytrac", "readsulfate", "readsulfate_preind" and "undefSTD". In "dynetat0", "dynredem0" and "gcm", "phis" has rank 2 instead of 1. "phis" has assumed shape in "dynredem0". Added module containing "dynredem0". Changed some calls with NetCDF Fortran 77 interface to calls with NetCDF95 interface. Replaced calls to "ssum" by calls to "sum" in "inigeom". In "make.sh", new option "-c" to change compiler. In "aaam_bud", argument "rjour" deleted. In "physiq": renamed some variables; deleted variable "xjour". In "phytrac": renamed some variables; new argument "lmt_pas".
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 |