Parent Directory | Revision Log
Sticky Revision: |
Move Sources/* to root directory.
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.
Removed 8 first arguments of fxyhyper, use variables of module serre instead. Moved reading of variables of module serre from procedure conf_gcm to new procedure read_serre. In guide, added conditions to avoid useless calls to tau2alpha and writefield. Bugfix: offline corresponds to alpha = 1. Open only one NetCDF file to read number of vertical levels. In tau2alpha, added conditions to avoid useless computations of dxdyu and dxdyv. gamma is not needed for a regular grid.
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.
Changed name of module "comvert" to "disvert_m". Changed constant 1. to 0.3 in vertical sampling "strato".
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.
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".
-- 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".
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 |