Parent Directory | Revision Log
Sticky Revision: |
Rename iniadvtrac to infotrac_init, to be closer to LMDZ.
Move procedures principal_cshift and invert_zoom_x each to its own module. Procedure fund and module variable abs_y go with invert_zoom_x.
Remove module temps. Move variable itau_dyn from module temps to module dynetat0_m, where it is defined. Split module dynetat0_m into dynetat0_m and dynetat0_chosen_m. The motivation is to create smaller modules. Procedures principal_cshift and invert_zoomx had to stay in dynetat0_m because of circular dependency. Now we will be able to move them away. Module variables which are chosen by the user, not computed, in program ce0l go to dynetat0_chosen_m: day_ref, annee_ref, clon, clat, grossismx, grossismy, dzoomx, dzoomy, taux, tauy. Move variable "pa" from module disvert_m to module dynetat0_chosen_m. Define "pa" in dynetat0_chosen rather than etat0. Define day_ref and annee_ref in procedure read_serre rather than etat0.
Created procedure phyetat0_new to avoid side effects on variables of module phyetat0_m. Had then to change test_ozonecm: read rlat from netCDF file instead of specifying it in test_ozonecm.
Define macros of the preprocessor CPP_IIM, CPP_JJM, CPP_LLM so we can control the resolution from the compilation command, and automate compilation for several resolutions. In module yoethf_m, transform variables into named constants. So we do not need procedure yoethf any longer. Bug fix in program test_inter_barxy, missing calls to fyhyp and fxhyp, and definition of rlatu. Remove variable iecri of module conf_gcm_m. The files dyn_hist*.nc are written every time step. We are simplifying the output system, pending replacement by a whole new system. Modify possible value of vert_sampling from "param" to "strato_custom", following LMDZ. Default values of corresponding namelist variables are now the values used for LMDZ CMIP6.
Rename module dimens_m to dimensions.
Extracted the call to read_comdissnew out of conf_gcm. Made ok_instan a variable of module clesphys, itau_phy a variable of module phyetat0_m, nid_ins a variable of module ini_histins_m, itap a variable of new module time_phylmdz, so that histwrite_phy can be called from any procedure without the need to cascade those variables into that procedure. Made itau_w a variable of module time_phylmdz so that it is computed only once per time step of physics. Extracted variables of module clesphys which were in namelist conf_phys_nml into their own namelist, clesphys_nml, and created procedure read_clesphys reading clesphys_nml, to avoid side effect. No need for double precision in procedure getso4fromfile. Assume there is a single variable for the whole year in the NetCDF file instead of one variable per month. Created generic procedure histwrite_phy and removed procedure write_histins, following LMDZ. histwrite_phy has only two arguments, can be called from anywhere, and should manage the logic of writing or not writing into various history files with various operations. So the test on ok_instan goes inside histwrite_phy. Test for raz_date in phyetat0 instead of physiq to avoid side effect. Created procedure increment_itap to avoid side effect. Removed unnecessary differences between procedures readsulfate and readsulfate_pi.
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.
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.
Sources inside, compilation outside.
Added some test programs. In fxhyp_loop_ik, changed precision from 1e-3 to 1e-6. Reset initial value of xo1 to first guess of xi instead of final value of xi for previous i (better logic).
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 |