/[lmdze]/trunk/Sources/phylmd/CV30_routines
ViewVC logotype

Log of /trunk/Sources/phylmd/CV30_routines

View Directory Listing Directory Listing


Sticky Revision:
(Current path doesn't exist after revision 253)

Revision 213 - Directory Listing
Modified Mon Feb 27 15:44:55 2017 UTC (7 years, 1 month ago) by guez
Removed module conema3_m. Moved variables epmax and iflag_clw of
conema3_m to conf_phys_m, where they are defined. Removed unused
variable ok_adj_ema of conema3_m.

Added variables d_t_ec, dtsw0 and dtlw0 to histins.nc (following LMDZ).

Removed case not lessivage in phytrac. (Not used in LMDZ without INCA
either.)


Revision 207 - Directory Listing
Modified Thu Sep 1 10:30:53 2016 UTC (7 years, 7 months ago) by guez
New philosophy on compiler options.

Removed source code for thermcep = f. (Not used in LMDZ either.)


Revision 205 - Directory Listing
Modified Tue Jun 21 15:16:03 2016 UTC (7 years, 10 months ago) by guez
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.


Revision 201 - Directory Listing
Modified Mon Jun 6 17:42:15 2016 UTC (7 years, 10 months ago) by guez
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.


Revision 200 - Directory Listing
Modified Thu Jun 2 15:40:30 2016 UTC (7 years, 10 months ago) by guez
Changes results.

Revision 199 - Directory Listing
Modified Tue May 31 16:22:42 2016 UTC (7 years, 10 months ago) by guez
Changes results.

Revision 198 - Directory Listing
Modified Tue May 31 16:17:35 2016 UTC (7 years, 10 months ago) by guez
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.


Revision 197 - Directory Listing
Modified Tue May 24 12:25:29 2016 UTC (7 years, 11 months ago) by guez
Clarified the computation of sigt in cv30_unsat. Replacing pr2 by 1 -
pr1 changes the results.


Revision 196 - Directory Listing
Modified Mon May 23 13:50:39 2016 UTC (7 years, 11 months ago) by guez
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.


Revision 195 - Directory Listing
Modified Wed May 18 17:56:44 2016 UTC (7 years, 11 months ago) by guez
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).


Revision 194 - Directory Listing
Modified Thu May 12 14:35:35 2016 UTC (7 years, 11 months ago) by guez
Clarified computation of wdtrain in procedure cv30_unsat: sum
intrinsic instead of loop. Changes results.


Revision 193 - Directory Listing
Modified Thu May 12 13:22:19 2016 UTC (7 years, 11 months ago) by guez
In procedure cv30_unsat, in downdraft_loop, there was a test on
any(inb >= i .and. lwork). It was useless to do this test at each
iteration since, if it becomes true for a given value of i, it is
necessarily true for all subsequent (lower) values of i. So instead,
we compute imax before the loop.

In procedure cv30_unsat, no need to initialize wdtrain to 0 because it
is computed inside the loop at all positions where it will be useful.


Revision 192 - Directory Listing
Modified Thu May 12 13:00:07 2016 UTC (7 years, 11 months ago) by guez
Removed the possibility to read aerosol fields. This was not
operational. It required fields already regridded in the three
dimensions. It seems quite weird to me not to have online vertical
regridding, since the surface pressure varies. There was the
possibility of adding vertical regridding. But development is not in
the spirit of LMDZE. Furthermore, the treatment of aerosols that was
in LMDZE is completely obsolete in LMDZ. We could try importing the
up-to-date treatment of aerosols of LMDZ, but that carries LMDZE quite
far: there is the problem of the calendar and the problem of updated
radiative transfer required for updated aerosols.


Revision 190 - Directory Listing
Modified Thu Apr 14 15:15:56 2016 UTC (8 years ago) by guez
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.


Revision 189 - Directory Listing
Modified Tue Mar 29 15:20:23 2016 UTC (8 years ago) by guez
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.


Revision 188 - Directory Listing
Modified Tue Mar 22 16:31:39 2016 UTC (8 years, 1 month ago) by guez
Removed argument ncum of cv30_unsat, arguments nloc, ncum, nd, na of cv30_yield.


Revision 187 - Directory Listing
Modified Mon Mar 21 18:01:02 2016 UTC (8 years, 1 month ago) by guez
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.


Revision 186 - Directory Listing
Modified Mon Mar 21 15:36:26 2016 UTC (8 years, 1 month ago) by guez
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.


Revision 185 - Directory Listing
Modified Wed Mar 16 15:04:46 2016 UTC (8 years, 1 month ago) by guez
CV3 to CV30 (following LMDZ) (continued).

Revision 184 - Directory Listing
Modified Wed Mar 16 14:50:46 2016 UTC (8 years, 1 month ago) by guez
Copied from: trunk/Sources/phylmd/CV3_routines revision 183
CV3 to CV30 (following LMDZ).

Revision 183 - Directory Listing
Modified Wed Mar 16 14:42:58 2016 UTC (8 years, 1 month ago) by guez
Original Path: trunk/Sources/phylmd/CV3_routines
Removed argument snow_con of concvl. Just set snow_con to 0 in physiq
instead of in concvl.

Removed unused argument cbmf1 of cv_driver.

Added computation and output of ptop (following LMDZ).


Revision 182 - Directory Listing
Modified Wed Mar 16 11:11:27 2016 UTC (8 years, 1 month ago) by guez
Original Path: trunk/Sources/phylmd/CV3_routines
Replaced integer variable iflag_con of module clesphys2 by logical
variable conv_emanuel.


Revision 180 - Directory Listing
Modified Tue Mar 15 17:07:47 2016 UTC (8 years, 1 month ago) by guez
Original Path: trunk/Sources/phylmd/CV3_routines
In procedure concvl, renamed arguments snow to snow_con and ktop to
itop_con (names of corresponding actual arguments in physiq). Removed
useless argument pmflxs. Removed the alternative between iflag_con ==
3 or 4, the same computations were done in both cases.


Revision 178 - Directory Listing
Modified Fri Mar 11 18:47:26 2016 UTC (8 years, 1 month ago) by guez
Original Path: trunk/Sources/phylmd/CV3_routines
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.


Revision 150 - Directory Listing
Modified Thu Jun 18 13:49:26 2015 UTC (8 years, 10 months ago) by guez
Original Path: trunk/Sources/phylmd/CV3_routines
Removed unused arguments of groupe, cv3_undilute2, cv_undilute2,
interfsur_lim, drag_noro, orodrag, gwprofil

Chickened out of revision 148: back to double precision in
invert_zoom_x (and overloaded rtsafe).


Revision 145 - Directory Listing
Modified Tue Jun 16 15:23:29 2015 UTC (8 years, 10 months ago) by guez
Original Path: trunk/Sources/phylmd/CV3_routines
Renamed bibio to misc.

In procedure fxhyp, use the fact that xf is an odd function of xtild.

In procedure invert_zoom_x, replace linear search in xf by
bisection. Also, use result from previous loop iteration as initial
guess. Variable "it" cannot be equal to 2 * nmax after search.

Unused arguments: hm of cv3_feed; ph, qnk, tv,tvp of cv3_mixing; ppsol
of lw; rconst, temp of vdif_kcay; rconst, plev, temp, ustar, l_mix of
yamada.


Revision 139 - Directory Listing
Modified Tue May 26 17:46:03 2015 UTC (8 years, 11 months ago) by guez
Original Path: trunk/Sources/phylmd/CV3_routines
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.


Revision 134 - Directory Listing
Modified Wed Apr 29 15:47:56 2015 UTC (8 years, 11 months ago) by guez
Original Path: trunk/Sources/phylmd/CV3_routines
Sources inside, compilation outside.

Revision 105 - Directory Listing
Modified Thu Sep 4 10:40:24 2014 UTC (9 years, 7 months ago) by guez
Original Path: trunk/phylmd/CV3_routines
Removed intermediate variables in calcul_fluxs.

Revision 103 - Directory Listing
Modified Fri Aug 29 13:00:05 2014 UTC (9 years, 7 months ago) by guez
Original Path: trunk/phylmd/CV3_routines
Renamed module cvparam to cv_param. Deleted procedure
cv_param. Changed variables of module cv_param into parameters.

In procedures cv_driver, cv_uncompress and cv3_uncompress, removed
some arguments giving dimensions and used module variables klon and
klev instead.

In procedures gradiv2, laplacien_gam and laplacien, changed
declarations of local variables because klevel is not always klev.

Removed code for nudging surface pressure.

Removed arguments pim and pjm of tau2alpha. Added assignment of false
to variable first.

Replaced real argument del of procedures foeew and FOEDE by logical
argument.


Revision 99 - Directory Listing
Modified Wed Jul 2 18:39:15 2014 UTC (9 years, 9 months ago) by guez
Original Path: trunk/phylmd/CV3_routines
Created procedure test_disvert (following LMDZ). Added procedures
hybrid and funcd in module disvert_m. Upgraded compute_ab from
internal procedure of disvert to module procedure. Added variables y,
ya in module disvert_m. Upgraded s from local variable of procedure
disvert to module variable.

Renamed allowed value of variable vert_sampling in procedure disvert
from "read" to "read_hybrid". Added possibility to read pressure
values, value "read_pressure". Replaced vertical distribution for
value "param" by the distribution "strato_correct" from LMDZ (but kept
the value "param"). In case "tropo", replaced 1 by dsigmin (following
LMDZ). In case "strato", replaced 0.3 by dsigmin (following LMDZ).

Changed computation of bp in procedure compute_ab.

Removed debugindex case in clmain. Removed useless argument rlon of
procedure clmain. Removed useless variables ytaux, ytauy of procedure
clmain.

Removed intermediary variables tsol, qsol, tsolsrf, tslab in procedure
etat0.

Removed variable ok_veget:. coupling with the model Orchid is not
possible. Removed variable ocean: modeling an ocean slab is not
possible.

Removed useless variables tmp_rriv and tmp_rcoa from module
interface_surf.

Moved initialization of variables da, mp, phi in procedure physiq to
to inside the test iflag_con >= 3.


Revision 97 - Directory Listing
Modified Fri Apr 25 14:58:31 2014 UTC (10 years ago) by guez
Original Path: trunk/phylmd/CV3_routines
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.


Revision 91 - Directory Listing
Modified Wed Mar 26 17:18:58 2014 UTC (10 years, 1 month ago) by guez
Original Path: trunk/phylmd/CV3_routines
Removed unused variables lock_startdate and time_stamp of module
calendar.

Noticed that physiq does not change the surface pressure. So removed
arguments ps and dpfi of subroutine addfi. dpfi was always 0. The
computation of ps in addfi included some averaging at the poles. In
principle, this does not change ps but in practice it does because of
finite numerical precision. So the results of the simulation are
changed. Removed arguments ps and dpfi of calfis. Removed argument
d_ps of physiq.

du at the poles is not computed by dudv1, so declare only the
corresponding latitudes in dudv1. caldyn passes only a section of the
array dudyn as argument.

Removed variable niadv of module iniadvtrac_m.

Declared arguments of exner_hyb as assumed-shape arrays and made all
other horizontal sizes in exner_hyb dynamic. This allows the external
program test_disvert to use exner_hyb at a single horizontal position.


Revision 82 - Directory Listing
Modified Wed Mar 5 14:57:53 2014 UTC (10 years, 1 month ago) by guez
Original Path: trunk/phylmd/CV3_routines
Changed all ".f90" suffixes to ".f".

Revision 76 - Directory Listing
Modified Fri Nov 15 18:45:49 2013 UTC (10 years, 5 months ago) by guez
Original Path: trunk/phylmd/CV3_routines
Moved everything out of libf.

Revision 72 - Directory Listing
Modified Tue Jul 23 13:00:07 2013 UTC (10 years, 9 months ago) by guez
Original Path: trunk/libf/phylmd/CV3_routines
NaN to signalling NaN in gfortran_debug.mk.

Removed unused procedures in getincom and getincom2. In procedure
conf_interface, replaced call to getincom by new namelist. Moved
procedure conf_interface into module interface_surf.

Added variables sig1 and w01 to startphy.nc and restartphy.nc, for
procedure cv_driver. Renamed (ema_)?work1 and (ema_)?work2 to sig1 and
w01 in concvl and physiq.

Deleted unused arguments of clmain, clqh and intersurf_hq, among which
(y)?sollwdown. Following LMDZ, in physiq, read sollw instead of
sollwdown from startphy.nc, write sollw instead of sollwdown to
restartphy.nc.

In procedure sw, initialized zfs[ud][pn]a[di], for runs where ok_ade
and ok_aie are false. (Following LMDZ.)

Added dimension klev to startphy.nc and restartphy.nc, and deleted
dimension horizon_vertical. Made t_ancien and q_ancien two-dimensional
NetCDF variables. Bug fix: in phyetat0, define ratqs, clwcon and
rnebcon for vertical levels >=2.

Bug fix: set mfg, p[de]n_[ud] to 0. when iflag_con >= 3. (Following LMDZ.)


Revision 69 - Directory Listing
Modified Mon Feb 18 16:33:12 2013 UTC (11 years, 2 months ago) by guez
Original Path: trunk/libf/phylmd/CV3_routines
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.


Revision 52 - Directory Listing
Modified Fri Sep 23 12:28:01 2011 UTC (12 years, 7 months ago) by guez
Original Path: trunk/libf/phylmd/CV3_routines
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.


Revision 47 - Directory Listing
Added Fri Jul 1 15:00:48 2011 UTC (12 years, 9 months ago) by guez
Original Path: trunk/libf/phylmd/CV3_routines
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.


  ViewVC Help
Powered by ViewVC 1.1.21