Parent Directory | Revision Log
Sticky Revision: |
clcdrag is no longer used in LMDZ. Replaced by cdrag in LMDZ. In cdrag in LMDZ, zxli is a symbolic constant, false. So removed case zxli true in LMDZE. read_sst is called zero (if no ocean point on the whole planet) time or once per call of physiq. If mod(itap - 1, lmt_pas) == 0 then we have advanced in time of lmt_pas and deja_lu is necessarily false. qsat[sl] and dqsat[sl] were never called. Added output of qsurf in histins, following LMDZ. Last dummy argument dtime of phystokenc is always the same as first dummy argument pdtphys, removed dtime. Removed make rules for nag_xref95, since it does not exist any longer.
Removed option online = f in conf_guide (following LMDZ). Moved computation of alpha_[uvtq] from guide to conf_guide. The aim (for clarity) is to remove from guide things which should only be done once. Had then to move computation of dxdyu, dxdyv from init_tau2alpha to conf_guide to avoid circular dependency (use of guide_u, guide_v in init_tau2alpha).
Replaced explicit Euler integration of nudged fields by exact integration (following LMDZ revision 2134).
correctbid did nothing. (Not used either in LMDZ since revision 1170.) Avoid aliasing in arguments of nat2gcm: use a single set of arguments with intent inout. Argument q of nat2gcm was not used. pres2lev now accepts po in any monotonic order. So the input files for nudging can now have the pressure coordinate in any order. Also, we read the latitude coordinate from the input files for nudging and we invert order if necessary so the input files for nudging can now have the latitude coordinate in any order. In pre2lev, no need for lmomx: use automatic arrays. Removed variable ncep of module conf_guide_m. Instead, we find out what the pressure coordinate is with find_coord.
Removed argument ierr of abort_gcm. It was always 1 and not used. Just encapsulated pres2lev into a module. Removed test on run_off in procedure calcul_fluxs. Useless. The test is always done just before in interfsurf_hq. Removed named constants rea and repsm in module suphec: never used.
Changed unit of variables lat_min_guide and lat_max_guide from module conf_guide_m from degrees to rad. Then we do not have to convert the whole array rlat from rad to degrees in SUBROUTINE tau2alpha. Removed some useless computations in inigeom. Removed module coefils. Moved variables sddv, unsddv, sddu, unsddu, eignfnu, eignfnv of module coefils to module inifgn_m. Downgraded variables coefilu, coefilu2, coefilv, coefilv2, modfrstu, modfrstv of module coefils to local variables of SUBROUTINE inifilr. Write and read a 3-dimensional variable Tsoil in restartphy.nc and startphy.nc instead of multiple variables for the different subs-urfaces and soil layers. This does not allow any longer to provide only the surface value in startphy.nc and spread it to other layers. Instead, if necessary, pre-process the file startphy.nc to spread the surface value.
dynetat0 read rlonu, rlatu, rlonv, rlatv, cu_2d, cv_2d, aire_2d from "start.nc" and then these variables were overwritten by inigeom. Corrected this. Now, inigeom does not compute rlonu, rlatu, rlonv and rlatv. Moreover, cu_2d, cv_2d, aire_2d are not written to "restart.nc". Since xprimu, xprimv, xprimm025, xprimp025, rlatu1, rlatu2, yprimu1, yprimu2 are computed at the same time as rlonu, rlatu, rlonv, rlatv, and since it would not be convenient to separate those computations, we decide to write xprimu, xprimv, xprimm025, xprimp025, rlatu1, rlatu2, yprimu1, yprimu2 into "restart.nc", read them from "start.nc" and not compute them in inigeom. So, in summary, "start.nc" contains all the coordinates and their derivatives, and inigeom only computes the 2D-variables. Technical details: Moved variables rlatu, rlonv, rlonu, rlatv, xprimu, xprimv from module comgeom to module dynetat0_m. Upgraded local variables rlatu1, yprimu1, rlatu2, yprimu2, xprimm025, xprimp025 of procedure inigeom to variables of module dynetat0_m. Removed unused local variable yprimu of procedure inigeom and corresponding argument yyprimu of fyhyp. Moved variables clat, clon, grossismx, grossismy, dzoomx, dzoomy, taux, tauy from module serre to module dynetat0_m (since they are read from "start.nc"). The default values are now defined in read_serre instead of in the declarations. Changed name of module serre to read_serre_m, no more module variable here. The calls to fxhyp and fyhyp are moved from inigeom to etat0. Side effects in programs other than gcm: etat0 and read_serre write variables of module dynetat0; the programs test_fxyp and test_inter_barxy need more source files. Removed unused arguments len and nd of cv3_tracer. Removed unused argument PPSOL of LWU. Bug fix in test_inter_barxy: forgotten call to read_serre.
Sources inside, compilation outside.
Extracted code from tau2alpha for first call into new procedure init_tau2alpha. dxdys, dxdyu, dxdyv are now local variables if guide computed by init_tau2alpha. This allows us to remove terrible argument type of tau2alpha: we just give to tau2alpha the right dxdy and rlat. In module conf_guide_m, changed default values of tau_min_*, because 0.02 is too small for the default daystep = 240, iperiod = 5. Changed default values of guide_[uv] to false. Moved variable ok_guide from conf_gcm_m to conf_guide_m, ok_guide is no longer an input parameter, it is computed from guide_*. Had then to move test on ok_guide and day_step from conf_gcm_m to conf_guide_m. Added checks on input nudging parameters in procedure conf_guide. Upgraded variable factt to module conf_guide_m in order to check nudging parameters. Bug fix: variable guide_q was not in namelist conf_guide_nml. Removed unused variables aire_min, aire_max of MODULE guide_m. Moved the call to conf_guide from guide to gcm. This was needed to define ok_guide before getting into guide (since ok_guide is no longer in conf_gcm_m). Moved test on grossismx and grossismy from tau2alpha to guide. It is clearer now that only tau_max is used for a regular grid, and we do not have to repeat this test in each call to tau2alpha. In guide, we only call writefield when alpha is not a constant.
Imported procedure grilles_gcm_sub from LMDZ. Had then to transform local variable phis of etat to argument. Replaced calls to lnblnk by calls to trim. Removed arguments nlat, klevel and griscal of filtreg. Replaced integer arguments ifiltre and iaire by logical arguments direct and intensive. Changed default values of guide_t and guide_q to false.
Removed unused file "condsurf.f" (only useful for ocean slab). day_step must be a multiple of 4 * iperiod if ok_guide. Changed type of variable online of module conf_guide_m from integer to logical. Value -1 was not useful, equivalent to not ok_guide. Removed argument masse of procedure guide. masse is kept consistent with ps throughout the run. masse need only be computed again just after ps has been modified. In prodecure guide, replaced use of remanent variable first by test on itau. Replaced test on variable "test" by test on integer values. In leapfrog, for the call to guide, replaced test on real values by test on integer values. Bug fix in tau2alpha: computation of dxdyv (following LMDZ revision 1040). In procedure wrgrads, replaced badly chosen argument name "if" by i_f.
Removed option to guide surface pressure because it was not functional: psrea1 was not defined in procedure guide. Removed local variables psrea1 and psrea2 of procedure guide. ps becomes an "intent(in)" argument in guide. Removed case guide_p in guide. Removed variable guide_p of module conf_guide_m. Removed case guide_p and argument ps in read_reanalyse. Removed case guide_p and argument ps in reanalyse2nat.
In procedure conf_guide, replaced calls to getpar by reading a namelist. Removed file getparam.f, now unused. So getin of IOIPSL is now unused too. Removed files getincom.f, getincom2.f, cmpblank.f, find_sig.f, gensig.f and nocomma.f. Moved variables lat_min_guide and lat_max_guide from module tau2alpha_m to module conf_guide_m. Removed variables nivsig and nivsigs of module disvert_m. Instead, in initdynav and initfluxsto, directly wrote arithmetic sequence for verical axis, pending a better vertical axis. Removed variables nivsig and nivsigs of "(re)?.start.nc". In procedure exner_hyb, replaced p(:, :, 1) by equivalent ps.
Changed all ".f90" suffixes to ".f".
Moved everything out of libf.
Removed argument "pdteta" of "calfis", because it was not used. Created module "conf_guide_m", containing procedure "conf_guide". Moved module variables from "guide_m" to "conf_guide_m". In module "getparam", removed "ini_getparam" and "fin_getparam" from generic interface "getpar". Created module variables in "tau2alpha_m" to replace common "comdxdy".
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".
Imported Source files of the external library "IOIPSL_Lionel" into "libf/IOIPSL". Split "cray.f90" into "scopy.f90" and "ssum.f90". Rewrote "leapfrog" in order to have a clearer algorithmic structure.
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 |