Parent Directory | Revision Log
Links to HEAD: | (view) (annotate) |
Sticky Revision: |
Change all `.f` suffixes to `.f90`. (The opposite was done in revision 82.) Because of change of philosopy in GNUmakefile: we already had a rewritten rule for `.f`, so it does not make the makefile longer to replace it by a rule for `.f90`. And it spares us options of makedepf90 and of the compiler. Also we prepare the way for a simpler `CMakeLists.txt`.
Rename module dimens_m to dimensions.
In procedures leapfrog, caldyn and integrd, in revision 47, I had renamed du to dudyn because it was the name used in physiq. But in revision 90, I removed argument dudyn of physiq. So clearer now to go back to the name du, analoguous to dv (as in LMDZ).
Try to clarify the logic. Remove module ener. Move variables from module ener to module dynetat0_m, where they are defined in program gcm. In sortvarc, I do not see how ptot0 could be 0, discard this possibility. Remove dummy argument resetvarc of procedure sortvarc. The difference is that sortvarc is called by caldyn or caldyn0 so just do different processing in caldyn and caldyn0 instead of inside sortvarc. No need for variables ang, etot, ptot, rmsdpdt, rmsv, stot, ztot to be at module level in module sortvarc_m, downgrade them to arguments of sortvarc. Instead of modyfying the meaning of ang, etot, ptot, rmsdpdt, rmsv, stot, ztot from absolute quantities to variations of these quantities, print the ratio in caldyn.
Move Sources/* to root directory.
*trmb[1-3] were just filled with 0. Remove these variables and output.
New philosophy on compiler options. Removed source code for thermcep = f. (Not used in LMDZ either.)
rlon[uv] and rlat[uv] are already in start.nc. Just encapsulated covcont in a module. finvmaold was not used in leapfrog. Downgraded it from dummy argument to local variable of SUBROUTINE integrd. Simplified handling of mass in integrd: down from five 3-dimensional arrays (masse, massem1, finvmaold, massescr and finvmasse) to three (masse, massem1, finvmaold).
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.
Sources inside, compilation outside.
Transformed bernoui from subroutine to function.
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.
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 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 useless argument mode of subroutine read_reanalyse.
Changed all ".f90" suffixes to ".f".
Moved procedure iniconst inside module comconst. Removed useless variables of module comconst: im, jm, lllm, imp1, jmp1, lllmm1, lllmp1, lcl, cotot, unsim. Move definition of dtvr that was in dynetat0 and etat0 to iniconst. Moved comparison of dtvr from day_step and start.nc that was in gcm to dynetat0. Moved call to disvert out of iniconst. Moved call to iniconst in gcm before call to dynetat0. Removed unused argument pvteta of physiq (not used either in LMDZ).
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.
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.
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".
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.
"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.
"alpha" useless, always 0, in "exner_hyb".
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".
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".
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".
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".
-- 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".
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 |