Parent Directory | Revision Log
Sticky Revision: |
Moved variable nb_files from module histcom_var to module histbeg_totreg_m. Removed unused argument q of writehist. No history file is created in program ce0l so there is no need to call histclo in etat0. In phyredem, access variables rlat and rlon directly from module phyetat0_m instead of having them as arguments. This is clearer for the program gcm. There are bad side effects for the program ce0l: we have to modify the module variables rlat and rlon in procedure etat0, and we need the additional file phyetat0.f to compile ce0l.
Removed unused argument missval in ma_fucoll_r[1-3]1, ma_fufill_r[1-3]1. Split filtreg into two procedures: filtreg_scal and filtreg_v. I did not like the test on the extent of the argument and there was no common code between the two cases: jjm and jjm + 1. Also, it is simpler now to just remove the argument "direct" from filtreg_v instead of allowing it and then stopping the program if it is false. Removed the computation of pkf in reanalyse2nat, was not used. As a consequence of the split of filtreg, had to extract the computation of pkf out of exner_hyb. This is clearer anyway because we want to be able to call exner_hyb with any size in the first two dimensions (as in test_disvert). But at the same time exner_hyb required particular sizes for the computation of pkf. It was awkward. The only computation of pkf is now in leapfrog.
Sources inside, compilation outside.
The information in argument rdayvrai of calfis was redundant with the information in argument time. Furthermore, in the physics part of gcm, we need separately the day number (an integer) and the time of day. So, replaced real argument rdayvrai of calfis containing elapsed time by integer argument dayvrai containing day number. Corresponding change in leapfrog. In procedure physiq, replaced real argument rdayvrai by integer argument dayvrai. In procedures readsulfate and readsulfate_preind, replaced real argument r_day by arguments dayvrai and time. In procedure alboc, replaced real argument rjour by integer argument jour. alboc was always called by interfsurf_hq with actual argument real(jour), and the meaning of the dummy argument in alboc seems to be that it should be an integer. In procedure leapfrog, local variable time could not be > 1. Removed test. In physiq, replaced nint(rdayvrai) by dayvrai. This changes the results since julien now changes at 0 h instead of 12 h. This follows LMDZ, where the argument of ozonecm is days_elapsed+1.
Removed arguments day0, anne0 of procedures initdynav and inithist. Use directly day_ref, annee_ref instead. Moved variables annee_ref, day_ref of module temps to module dynetat0_m. Deleted variables dayref and anneeref of module conf_gcm_m and removed them from namelist conf_gcm_nml. These variables were troubling intermediary on the way to annee_ref and day_ref. Gave as default values to annee_ref and day_ref the default values of dayref and anneeref. Moved the test on raz_date from main unit gcm to procedure dynetat0. Created namelist dynetat0_nml. Read annee_ref and day_ref from standard input in dynetat0 and redefine them from "start.nc" if not raz_date. Rationale: 1 - Choose the best programming from the point of view of program gcm only, forgetting program ce0l. 2 - The normal case is to define annee_ref and day_ref from "start.nc" so put them in module dynetat0_m rather than in conf_gcm_m. 3 - Try to always read the same namelists in the same order regardless of choices in previous namelists. Downsides: 1 -We now need the file "dynetat0.f" for the program ce0l, because dynetat0_m is used by dynredem0. 2 - We need to define annee_ref and day_ref from procedure etat0. Removed useless variable day_end of module temps.
The variable temps of file restart.nc is always 0. So we remove the possibility that it can be something else. So removed argument time_0 of caldyn, dynetat0, leapfrog.
Extracted code from tau2alpha for first call into new procedure init_tau2alpha. dxdys, dxdyu, dxdyv are now local variables if guide computed by init_tau2alpha. This allows us to remove terrible argument type of tau2alpha: we just give to tau2alpha the right dxdy and rlat. In module conf_guide_m, changed default values of tau_min_*, because 0.02 is too small for the default daystep = 240, iperiod = 5. Changed default values of guide_[uv] to false. Moved variable ok_guide from conf_gcm_m to conf_guide_m, ok_guide is no longer an input parameter, it is computed from guide_*. Had then to move test on ok_guide and day_step from conf_gcm_m to conf_guide_m. Added checks on input nudging parameters in procedure conf_guide. Upgraded variable factt to module conf_guide_m in order to check nudging parameters. Bug fix: variable guide_q was not in namelist conf_guide_nml. Removed unused variables aire_min, aire_max of MODULE guide_m. Moved the call to conf_guide from guide to gcm. This was needed to define ok_guide before getting into guide (since ok_guide is no longer in conf_gcm_m). Moved test on grossismx and grossismy from tau2alpha to guide. It is clearer now that only tau_max is used for a regular grid, and we do not have to repeat this test in each call to tau2alpha. In guide, we only call writefield when alpha is not a constant.
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.
Imported procedure grilles_gcm_sub from LMDZ. Had then to transform local variable phis of etat to argument. Replaced calls to lnblnk by calls to trim. Removed arguments nlat, klevel and griscal of filtreg. Replaced integer arguments ifiltre and iaire by logical arguments direct and intensive. Changed default values of guide_t and guide_q to false.
Renamed module cvparam to cv_param. Deleted procedure cv_param. Changed variables of module cv_param into parameters. In procedures cv_driver, cv_uncompress and cv3_uncompress, removed some arguments giving dimensions and used module variables klon and klev instead. In procedures gradiv2, laplacien_gam and laplacien, changed declarations of local variables because klevel is not always klev. Removed code for nudging surface pressure. Removed arguments pim and pjm of tau2alpha. Added assignment of false to variable first. Replaced real argument del of procedures foeew and FOEDE by logical argument.
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.
Module pressure_var is now only used in gcm. Created local variables pls and p3d in etat0, added argument p3d to regr_pr_o3. In leapfrog, moved computation of p3d and exner function immediately after integrd, for clarity (does not change the execution). Removed unused arguments: ntra, tra1 and tra of cv3_compress; ntra, tra and traent of cv3_mixing; ntra, ftra, ftra1 of cv3_uncompress; ntra, tra, trap of cv3_unsat; ntra, tra, trap, traent, ftra of cv3_yield; tra, tvp, pbase, bbase, dtvpdt1, dtvpdq1, dplcldt, dplcldr, ntra of concvl; ndp1, ntra, tra1 of cv_driver Removed argument d_tra and computation of d_tra in concvl. Removed argument ftra1 and computation of ftra1 in cv_driver. ftra1 was just set to 0 in cv_driver, associated to d_tra in concvl, and set again to zero in concvl.
In procedure leapfrog, computation of p3d and a call to exner_hyb were made before and after the call to calfis. This was a repetition of the same calculation since calfis does not change the surface pressure. Kept only one calculation, and moved it before the test for the call to calfis.
Removed argument ps of calfis (was not done in revision 91, error in log message). Removed optional actual argument pkf of the call to exner_hyb before calfis, in leapfrog. pkf was not used before the next call to exner_hyb.
Removed unused variables lock_startdate and time_stamp of module calendar. Noticed that physiq does not change the surface pressure. So removed arguments ps and dpfi of subroutine addfi. dpfi was always 0. The computation of ps in addfi included some averaging at the poles. In principle, this does not change ps but in practice it does because of finite numerical precision. So the results of the simulation are changed. Removed arguments ps and dpfi of calfis. Removed argument d_ps of physiq. du at the poles is not computed by dudv1, so declare only the corresponding latitudes in dudv1. caldyn passes only a section of the array dudyn as argument. Removed variable niadv of module iniadvtrac_m. Declared arguments of exner_hyb as assumed-shape arrays and made all other horizontal sizes in exner_hyb dynamic. This allows the external program test_disvert to use exner_hyb at a single horizontal position.
Removed procedures ini_histday, ini_histhf, write_histday and write_histhf. Divided file regr_pr_coefoz.f into regr_pr_av.f and regr_pr_int.f. (Following LMDZ.) Divided module regr_pr_coefoz into modules regr_pr_av_m and regr_pr_int_m. Renamed regr_pr_av_coefoz to regr_pr_av and regr_pr_int_coefoz to regr_pr_int. The idea is that those procedures are more general than Mobidic. Removed argument dudyn of calfis and physiq. dudyn is not used either in LMDZ. Removed computation in calfis of unused variable zpsrf (not used either in LMDZ). Removed useless computation of dqfi in calfis (part 62): the results were overwritten. (Same in LMDZ.)
Removed call to pvtheta in calfis because the result pvteta is not used (not used either in LMDZ). Removed unused argument dv of calfis. (Corresponding argument in LMDZ is pdvcov and computations from pdvcov are made in calfis but not used.) Removed procedures that were not called.
Removed useless argument mode of subroutine read_reanalyse.
In leapfrog, removed computation of ps at the poles. dynetat0 checks that there is a single value of ps at each pole and ps is only modified in the program gcm by integrd and addfi. Both integrd and addfi ensure there is a single value of ps at each pole. This modification changes the results of gcm.
Changed all ".f90" suffixes to ".f".
Moved procedure inigeom into module comgeom. In disvert, renamed s_sampling to vert_sampling, following LMDZ. Removed choice strato1. In case read, read ap and bp instead of s (following LMDZ). Added argument phis to start_init_orog and start_init_dyn, and removed variable phis of module start_init_orog_m. In etat0 and start_init_orog, renamed relief to zmea_2d. In start_init_dyn, renamed psol to ps. In start_init_orog, renamed relief_hi to relief. No need to set phis(iim + 1, :) = phis(1, :), already done in grid_noro. Documentation for massbar out of SVN, in massbar.txt. Documentation was duplicated in massdair, but not relevant in massdair. In conflx, no need to initialize pen_[ud] and pde_[ud]. In flxasc, used intermediary variable fact (following LMDZ). In grid_noro, added local variable zmea0 for zmea not smoothed and computed zphi from zmea instead of zmea0 (following LMDZ). This changes the results of ce0l. Removed arguments pen_u and pde_d of phytrac and nflxtr, which were not used.
Moved everything out of libf.
No reason to call inidissip in ce0l. In inidissip, set random seed to 1 beacuse PGI compiler does not accept all zeros. dq was computed needlessly in caladvtrac. Arguments masse and dq of calfis not used. Replaced real*8 by double precision. Pass arrays with inverted order of vertical levels to conflx instead of creating local variables for this inside conflx.
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.
Deleted files cvparam3.f90 and nuagecom.f90. Moved variables from module cvparam3 to module cv3_param_m. Moved variables rad_chau1 and rad_chau2 from module nuagecom to module conf_phys_m. Read clesphys2_nml from conf_phys instead of gcm. Removed argument iflag_con from several procedures. Access module variable instead.
Split "flincom.f90" into "flinclo.f90", "flinfindcood.f90", "flininfo.f90" and "flinopen_nozoom.f90", in directory "IOIPSL/Flincom". Renamed "etat0_lim" to "ce0l", as in LMDZ. Split "readsulfate.f" into "readsulfate.f90", "readsulfate_preind.f90" and "getso4fromfile.f90". In etat0, renamed variable q3d to q, as in "dynredem1". Replaced calls to Flicom procedures by calls to NetCDF95. In leapfrog, added call to writehist. Extracted ASCII art from "grid_noro" into a file "grid_noro.txt". Transformed explicit-shape local arrays into automatic arrays, so that test on values of iim and jjm is no longer needed. Test on weight: IF (weight(ii, jj) /= 0.) THEN is useless. There is already a test before: if (any(weight == 0.)) stop "zero weight in grid_noro" In "aeropt", replaced duplicated lines with different values of inu by a loop on inu. Removed arguments of "conf_phys". Corresponding variables are now defined in "physiq", in a namelist. In "conf_phys", read a namelist instead of using getin.
Cleaning.
Changed name of module "comvert" to "disvert_m". Changed constant 1. to 0.3 in vertical sampling "strato".
Removed unused procedure "divgrad". In procedure "dissip", save memory by using intermediary arrays "gdx" and "gdy" several times instead of additional array "grx" and "gry". In procedure "inidissip", write "dtdiss * teta*" instead of "teta*". In "comvert", change name of s_sampling from "LMD5" to "tropo" and from "strato2" to "strato".
Removed variable lstardis in module comdissnew and procedures gradiv and nxgrarot. lstardir had to be true. gradiv and nxgrarot were called if lstardis was false. Removed argument iter of procedure filtreg. iter had to be 1. gradiv and nxgrarot called filtreg with iter == 2. Moved procedure flxsetup into module yoecumf. Module yoecumf is only used in program units of directory Conflx, moved it there.
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".
No more included file in LMDZE, not even "netcdf.inc". Created a variable containing the list of common source files in GNUmakefile. So we now also see clearly files that are specific to each program. Split module "histcom". Assembled resulting files in directory "Histcom". Removed aliasing in calls to "laplacien".
Write used namelists to file "" instead of standard output. Avoid aliasing in "inidissip" in calls to "divgrad2", "divgrad", "gradiv2", "gradiv", "nxgraro2" and "nxgrarot". Add a degenerate dimension to arrays so they have rank 3, like the dummy arguments in "divgrad2", "divgrad", "gradiv2", "gradiv", "nxgraro2" and "nxgrarot". Extract the initialization part from "bilan_dyn" and make a separate procedure, "init_dynzon", from it. Move variables from modules "iniprint" and "logic" to module "conf_gcm_m". Promote internal procedures of "fxy" to private procedures of module "fxy_m". Extracted documentation from "inigeom". Removed useless "save" attributes. Removed useless intermediate variables. Extracted processing of poles from loop on latitudes. Write coordinates to file "longitude_latitude.txt" instead of standard output. Do not use ozone tracer for radiative transfer.
Imported "writehist.f" from LMDZ. Moved module variable "histaveid" from "com_io_dyn" to "initdynav_m". In "inithist", access directly module variables from "com_io_dyn" instead of going through the arguments. Copying from LMDZ, write "u" and scalar variables to separate files. Create a new variable for the new file in "com_io_dyn". Copying from LMDZ, change the vertical axes of the three files. Removed some useless initializations in "dissip". In "bilan_dyn", removed useless variable "time". Avoiding the approximate test on "dt_cum" being a multiple of "dt_app", just compute "ncum" from known usage of "bilan_dyn" and compute "dt_cum" from "ncum". Change "periodav" from real to integer in "conf_gcm_m". Since "day_step" is required to be a multiple of "iperiod", so is "ncum".
-- In procedure "bilan_dyn", replaced average of "zvq" by integral of "zvq", following a comment of Francis Codron : Le calcul actuel donne des unités peu pratiques : transports de chaleur en K m / s par exemple. C'est bien pour les sorties à 2 dimensions, latitude et pression, car alors le transport ne dépend pas de l'espacement des niveaux, mieux pour comparer ou tracer en latitude et pression. Par contre, quand on somme sur la verticale, on préfèrerait avoir des transports d'énergie en watts, ou au moins an K kg / s (à multiplier par "Cp" ou "L"). On doit pouvoir recalculer le transport intégré à partir des fichiers de sortie, mais c'est embêtant (calcul de "cv"). -- Gathered files in directory Dissipation.
Split "thermcell.f" and "cv3_routines.f". Removed copies of files that are now in "L_util". Moved "mva9" and "diagetpq" to their own files. Unified variable names across procedures.
Removed procedure "psextbar". "psextbar" was called but the result of the call was not used.
Split file "histwrite.f90" into "histwrite.f90", "histwrite_real.f90" and "histvar_seq.f90". Extracted documentation from "psextbar.f" into "psextbar.txt" (out of SVN).
Removed argument "pdteta" of "calfis", because it was not used. Created module "conf_guide_m", containing procedure "conf_guide". Moved module variables from "guide_m" to "conf_guide_m". In module "getparam", removed "ini_getparam" and "fin_getparam" from generic interface "getpar". Created module variables in "tau2alpha_m" to replace common "comdxdy".
"start_init_phys" is now called directly by "etat0" instead of through "start_init_dyn". "qsol_2d" is no longer a variable of module "start_init_phys_m", it is an argument of "start_init_phys". "start_init_dyn" now receives "tsol_2d" from "etat0". Split file "vlspltqs.f" into "vlspltqs.f90", "vlxqs.f90" and ""vlyqs.f90". In "start_init_orog", replaced calls to "flin*" by calls to NetCDF95.
Moved "Test_ozonecm" out of SVN.
"alpha" useless, always 0, in "exner_hyb".
"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".
Inlined procedure "pression". Split "guide.f90" into "guide.f90" and "tau2alpha.f90". Split "read_reanalyse.f" into single-procedure files in directory "Read_reanalyse". Useless copy of variables in "iniphysiq". Directly define module variables in "gcm" and remove procedure "iniphysiq". Added "pressure-altitude" in "test_disvert".
Now using the library "NR_util".
Split "ini_hist.f90" into single-procedure files. In "calfis" and "physiq", removed dummy argument "nq" since "nq" must be equal to "nqmx". In "calfis", renamed dummy argument "pq" to "q", same name as actual argument in "leapfrog". Renamed local variable "zqfi" to "qx", same name as dummy argument in "physiq". Removed arguments "itop_con" and "ibas_con" of "phytrac", which were not used.
Test namelist input in procedure "conf_gcm" rather than program unit "gcm". Compute "time" in procedure "sortvarc" rather than "leapfrog". Rewrote "leapfrog" with a single loop on "itau" instead of two nested loops on number of periodic matsuno-leapfrog cycles and leapfrog iterations.
Split "stringop.f90" into single-procedure files. Gathered files in directory "IOIPSL/Stringop". Split "flincom.f90" into "flincom.f90" and "flinget.f90". Removed unused procedures from module "flincom". Removed unused argument "filename" of procedure "flinopen_nozoom". Removed unused files. Split "grid_change.f90" into "grid_change.f90" and "gr_phy_write_3d.f90". Removed unused procedures from modules "calendar", "ioipslmpp", "grid_atob", "gath_cpl" and "getincom". Removed unused procedures in files "ppm3d.f" and "thermcell.f". Split "mathelp.f90" into "mathelp.f90" and "mathop.f90". Removed unused variable "dpres" of module "comvert". Use argument "itau" instead of local variables "iadvtr" and "first" to control algorithm in procedure "fluxstokenc". Removed unused arguments of procedure "integrd". Removed useless computations at the end of procedure "leapfrog". Merged common block "matrfil" into module "parafilt".
Split "vlsplt.f" in single-procedure files. Gathered the files in directory "dyn3d/Vlsplt". Defined "pbarum(:, 1, :)" and "pbarum(:, jjm + 1, :)" in procedure "groupe".
Imported Source files of the external library "IOIPSL_Lionel" into "libf/IOIPSL". Split "cray.f90" into "scopy.f90" and "ssum.f90". Rewrote "leapfrog" in order to have a clearer algorithmic structure.
In "leapfrog", transformed some arrays with a single dimension for horizontal position into arrays with two horizontal dimensions. Simplified the computation of potential temperature and surface pressure at the poles.
Removed unused "diagedyn.f" and "undefSTD.f". In "etat0", the variable "dt" of module "temps" was defined from "landicered.nc", which was meaningless and useless. Replaced "dt" by a local trash variable. Removed variable "dt" from module "temps" and created instead a local variable of "leapfrog" and an argument of "integrd".
"dyn3d" and "filtrez" do not contain any included file so make rules have been updated. "comdissip.f90" was useless, removed it. "dynredem0" wrote undefined value in "controle(31)", that was overwritten by "dynredem1". Now "dynredem0" just writes 0 to "controle(31)". Removed arguments of "inidissip". "inidissip" now accesses the variables by use association. In program "etat0_lim", "itaufin" is not defined so "dynredem1" wrote undefined value to "controle(31)". Added argument "itau" of "dynredem1" to correct that. "itaufin" does not need to be a module variable (of "temps"), made it a local variable of "leapfrog". Removed calls to "diagedyn" from "leapfrog".
Moved variable "dtdiss" from module "comconst", variable "idissip" from module "conf_gcm_m" and all variables from module "comdissipn" to module "inidissip_m". "inidissip" creates file "inidissip.csv". "idissip" is no longer read from a namelist. Removed useless computation of "dtdiss" in procedure "iniconst".
Simplified "etat0_lim.sh" and "gcm.sh" because the full versions depended on personal arrangements for directories and machines. Translated included files into modules. Encapsulated procedures into modules. Moved variables from module "comgeom" to local variables of "inigeom". Deleted some unused variables in "comgeom". Moved variable "day_ini" from module "temps" to module "dynetat0_m". Removed useless test on variable "time" and useless "close" statement in procedure "leapfrog". Removed useless call to "inigeom" in procedure "limit".
Created directory "phylmd/Radlwsw". Split "radlwsw.f" in files containing a single procedure. Removed variable "itaufinp1" in "leapfrog".
Split "orografi.f": one file for each procedure. Put the created files in new directory "Orography". Removed argument "vcov" of procedure "sortvarc". Removed arguments "itau" and "time" of procedure "caldyn0". Removed arguments "itau", "time" and "vcov" of procedure "sortvarc0". Removed argument "time" of procedure "dynredem1". Removed NetCDF variable "temps" in files "start.nc" and "restart.nc", because its value is always 0. Removed argument "nq" of procedures "iniadvtrac" and "leapfrog". The number of "tracers read in "traceur.def" must now be equal to "nqmx", or "nqmx" must equal 4 if there is no file "traceur.def". Replaced variable "nq" by constant "nqmx" in "leapfrog". NetCDF variable for ozone field in "coefoz.nc" must now be called "tro3" instead of "r". Fixed bug in "zenang".
Superficial modifications
Deleted argument "presnivs" of "physiq", "ini_histhf", "ini_histhf3d", "ini_histday", "ini_histins", "ini_histrac", "phytrac". Access it from "comvert" instead. Replaced calls to NetCDF Fortran 77 interface by calls to Fortran 90 interface or to NetCDF95. Procedure "gr_phy_write_3d" now works with a variable of arbitrary size in the second dimension. Annotated use statements with "only" clause. Replaced calls to NetCDF interface version 2 by calls to Fortran 90 interface in "guide.f90" and "read_reanalyse.f". In "write_histrac", replaced calls to "gr_fi_ecrit" by calls to "gr_phy_write_2d" and "gr_phy_write_3d".
In module "regr_pr", rewrote scanning of horizontal positions as a single set of loops, using a mask. Added some "intent" attributes. In "dynredem0", replaced calls to Fortran 77 interface of NetCDF by calls to NetCDF95. Removed calls to "nf_redef", regrouped all writing operations. In "dynredem1", replaced some calls to Fortran 77 interface of NetCDF by calls to Fortran 90 interface. Renamed variable "nqmax" to "nq_phys". In "physiq", if "nq >= 5" then "wo" is computed from the parameterization of "Cariolle".
-- Minor change of behaviour: "etat0" does not compute "rugsrel" nor "radpas". Deleted arguments "radpas" and "rugsrel" of "phyredem". Deleted argument "rugsrel" of "phyetat0". "startphy.nc" does not contain the variable "RUGSREL". In "physiq", "rugoro" is set to 0 if not "ok_orodr". The whole program "etat0_lim" does not use "clesphys2". -- Minor modification of input/output: Created subroutine "read_clesphys2". Variables of "clesphys2" are read in "read_clesphys2" instead of "conf_gcm". "printflag" does not print variables of "clesphys2". -- Should not change any result at run time: References to module "numer_rec" instead of individual modules of "Numer_rec_Lionel". Deleted argument "clesphy0" of "calfis", "physiq", "conf_gcm", "leapfrog", "phyetat0". Deleted variable "clesphy0" in "gcm". "phyetat0" does not modify variables of "clesphys2". The program unit "gcm" does not modify "itau_phy". Added some "intent" attributes. "regr11_lint" does not call "polint".
-- 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".
Added NetCDF directory "/home/guez/include" in "g95.mk" and "nag_tools.mk". Added some "intent" attributes in "PVtheta", "advtrac", "caladvtrac", "calfis", "diagedyn", "dissip", "vlspltqs", "aeropt", "ajsec", "calltherm", "clmain", "cltrac", "cltracrn", "concvl", "conema3", "conflx", "fisrtilp", "newmicro", "nuage", "diagcld1", "diagcld2", "drag_noro", "lift_noro", "SUGWD", "physiq", "phytrac", "radlwsw", "thermcell". Removed the case "ierr == 0" in "abort_gcm"; moved call to "histclo" and messages for end of run from "abort_gcm" to "gcm"; replaced call to "abort_gcm" in "leapfrog" by exit from outer loop. In "calfis": removed argument "pp" and variable "unskap"; changed "pksurcp" from scalar to rank 2; use "pressure_var"; rewrote computation of "zplev", "zplay", "ztfi", "pcvgt" using "dyn_phy"; added computation of "pls". Removed unused variable in "dynredem0". In "exner_hyb": changed "dellta" from scalar to rank 1; replaced call to "ssum" by call to "sum"; removed variables "xpn" and "xps"; replaced some loops by array expressions. In "leapfrog": use "pressure_var"; deleted variables "p", "longcles". Converted common blocks "YOECUMF", "YOEGWD" to modules. Removed argument "pplay" in "cvltr", "diagetpq", "nflxtr". Created module "raddimlw" from include file "raddimlw.h". Corrected call to "new_unit" in "test_disvert".
Created module from included file parafilt. Converted caldyn0 to free format. Added a rule to create cross-references with NAG. Added optional attribute in iniadvtrac. Suppressed argument nq in dynredem0 and dynredem1, using nqmx instead. Replaced some NetCDF calls by netcdf95 calls in dynredem0. Added intent attribute in dynredem0 and dynredem1. Annotated use statements with only clause, in dynredem1. Suppressed variable nq and argument of iniadvtrac in etat0. Added test on nqmx in etat0.
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 |