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.
Move Sources/* to root directory.
In order to be able to choose finer resolutions, set large memory model in compiler options and use dynamic libraries. Variables rlatd, rlond, cuphy and cvphy of module comgeomphy were never used. (In LMDZ, they are used only for Orchid.) There is a bug in PGI Fortran 13.10 that does not accept the combination of forall, pack and spread in regr_pr_av and regr_pr_int. In order to circumvent this bug, created the function gr_dyn_phy. In program test_inifilr, use a single latitude coordinate for north and south.
Variable pls of module pressure_var was only modified by calfis but I could not move it to module calfis_m because it was used by a procedure called by calfis (it would have been a cyclic dependency). In the same way, variable p3d of module pressure_var was only modified by leapfrog but I could not move it to module leapfrog_m. So removed module pressure_var. p3d becomes a local variable of leapfrog and an argument of calfis. Use paprs and play in regr_pr_int and regr_pr_av (following LMDZ). The idea in regr_pr_int and regr_pr_av is to spread and pack before the regridding instead of packing afterward. The cost in memory should only be a two-dimensional temporary array created by spread. The cost in clarity is only the transiting of paprs and pplay through regr_pr_comb_coefoz, but this is more than compensated by removing the side effect on module variables.
Sources inside, compilation outside.
Removed intermediate variables in calcul_fluxs.
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.)
Changed all ".f90" suffixes to ".f".
Moved everything out of libf.
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".
Split "conflx.f" into single-procedure files in directory "Conflx". Split "cv_routines.f" into single-procedure files in directory "CV_routines". Made module "cvparam" from included file "cvparam.h". No included file other than "netcdf.inc" left in LMDZE.
Replaced calls to "flinget" by calls to "NetCDF95".
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.
Now using the library "NR_util".
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".
Inlined procedures "regr_pr_av" and "regr_pr_int" in "regr_pr_o3", "regr_pr_av_coefoz" and "regr_pr_int_coefoz".
Created rule for "compare_sampl_*" files in "Documentation/Manuel_LMDZE.texfol/Graphiques/GNUmakefile". Extracted "qcheck", "radiornpb", "minmaxqfi" into separate files. Read pressure coordinate of ozone coefficients once per run instead of every day. Added some "intent" attributes. Added argument "nq" to "ini_histday". Replaced calls to "gr_fi_ecrit" by calls to "gr_phy_write_2d". "Sigma_O3_Royer" is written to "histday.nc" only if "nq >= 4". Moved "ini_histrac" to module "ini_hist". Compute "zmasse" in "physiq", pass it to "phytrac". Removed computations of "pftsol*" and "ppsrf*" in "phytrac". Do not use variable "rg" from module "YOMCST" in "TLIFT".
-- 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".
This revision is not in working order. Pending some moving of files. Moving files around.
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 |