Parent Directory | Revision Log
Sticky Revision: |
dnwd0 is just - mp. Compute it simply in concvl. da, phi and mp were set to 0 in physiq before the call to concvl. Clearer to set da1, phi1 and mp1 to 0 in cv_driver so they are intent out. qcheck was debugging, printed to standard output and was called several times per time step of physics. zxtsol was a duplicate of ztsol.
Removed intermediary objects of cv_thermo_m, access suphec_m directly. Procedure cv_thermo disappeared, all objects are named constants. In cv_driver and below, limited extents of arrays to what is needed. lv, cpn and th in cv30_compress were set at level nl + 1 but lv1, cpn1 and th1 are not defined at this level. This did not lead to an error because values at nl + 1 were not used. Removed test on ok_sync in phystokenc because it is not read at run time. Printing min and max of output NetCDF variables is heavy and archaic. Used histwrite_phy in phytrac.
Changes results.
Removed variables nk1 and nk in cv_driver and below. These arrays were just equal to the constant minorig. (This is also the case in LMDZ.) In cv_thermo, removed some variables which were copies of variables of suphec_m. Changed some variables to named constants.
Removed argument icbmax of cv30_feed, not used in cv_driver (not used in LMDZ either). Clearer to have iflag1 = 0 in cv30_feed than in cv_driver. Clearer to have iflag1 = 42 in cv30_uncompress than in cv_driver. Removed argument iflag of cv30_compress. Since there is iflag1 = 42 in cv30_uncompress, iflag1 that comes out of cv_driver is disconnected from iflag1 computed by cv30_feed and cv30_trigger. Removed some references to convect3 and convect4 in comments. This program derives from the convect3 version, we do not need to know about other versions. Bug fix in cv30_undilute1: icbs1 was not made >= 2.
In cv30_feed, iflag1 is 0 on entry so we can simplify the test for iflag1 = 7. In cv30_feed, for the computation of icb, replaced sequential search (with a useless end of loop on k) by a call to locate. In CV30 routines, replaced len, nloc, nd, na by klon or klev. Philosophy: no more generality than actually necessary. Converted as many variables as possible to named constants in cv30_param_m and downgraded pbcrit, ptcrit, dtovsh, dpbase, dttrig, tau, delta to local objects in procedures. spfac, betad and omtrain are useless and removed. Instead of filling the array sigp with the constant spfac in cv30_undilute2, just made sigp a constant in cv30_unsat. In cv_driver, define as allocatable variables that are only used on the range (ncum, nl).
Created module cv_thermo_m around procedure cv_thermo. Moved variables from module cvthermo to module cv_thermo_m, where they are defined. In ini_histins and initphysto, using part of rlon and rlat from phyetat0_m is pretending that we do not know about the dynamical grid, while the way we extract zx_lon(:, 1) and zx_lat(1, :) depends on ordering inside rlon and rlat. So we might as well simplify and clarify by using directly rlonv and rlatu. Removed intermediary variables in write_histins and phystokenc.
There was a function gr_phy_write_3d in dyn3d and a function gr_phy_write_2d in module grid_change. Moved them into a new module gr_phy_write_m under a generic interface gr_phy_write. Replaced calls to gr_fi_ecrit by calls to gr_phy_write. Removed arguments len, nloc and nd of cv30_compress. Removed arguments wd and wd1 of cv30_uncompress, wd of cv30_yield, wd of concvl, wd1 of cv_driver. Was just filled with 0. Removed option ok_gust in physiq, never used. In cv30_unsat, cv30_yield and cv_driver, we only need to define b to level nl - 1.
Removed argument ncum of cv30_unsat, arguments nloc, ncum, nd, na of cv30_yield.
Made variable nl of module cv30_param_m a parameter. There was no coding allowing it to change. Removed arguments nloc and nd of cv30_undilute2, arguments nloc, nd and na of cv30_unsat. Just use klon and klev directly (going for clarity). Removed the option cvflag_grav = f. This was a lot of redundant code, probably obsolete, and cvflag_grav was initialized to true with no provision for changing it (as in LMDZ). In cv30_unsat, downdraft_loop started at i = nl + 1, but for i >= nl, i > inb, so num1 = 0.
Removed variables nlm and nlp of module cv30_param_m. We do not believe much in the benefit of these intermediary variables so we go for clarity. Removed variable noff of module cv30_param_m. Never used anywhere else. Just set the value of nl explicitly in cv30_param. Removed argument nd of cv30_param. Only called with nd = klev. Replaced calls to zilch by array assignments. There was a strange double call to zilch with the same arguments in cv30_mixing. Removed procedure cv_flag. Just set the value of variable cvflag_grav of module cvflag at declaration.
CV3 to CV30 (following LMDZ) (continued).
CV3 to CV30 (following LMDZ).
Moved variables date0, deltat, datasz_max, ncvar_ids, point, buff_pos, buffer, regular from module histcom_var to modules where they are defined. Removed procedure ioipslmpp, useless for a sequential program. Added argument datasz_max to histwrite_real (to avoid circular dependency with histwrite). Removed useless variables and computations everywhere. Changed real litteral constants from default kind to double precision in lwb, lwu, lwvn, sw1s, swtt, swtt1, swu. Removed unused arguments: paer of sw, sw1s, sw2s, swclr; pcldsw of sw1s, sw2s; pdsig, prayl of swr; co2_ppm of clmain, clqh; tsol of transp_lay; nsrf of screenp; kcrit and kknu of gwstress; pstd of orosetup. Added output of relative humidity.
Sources inside, compilation outside.
Removed intermediate variables in calcul_fluxs.
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.
Changed all ".f90" suffixes to ".f".
Moved everything out of libf.
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 "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.
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 |