/[lmdze]/trunk/filtrez
ViewVC logotype

Log of /trunk/filtrez

View Directory Listing Directory Listing


Sticky Revision:

Revision 352 - Directory Listing
Modified Thu Jan 16 19:20:50 2020 UTC (4 years, 3 months ago) by guez
Introduce XIOS in program gcm

Introduce XIOS in program gcm. Minimum (and useless) calls: initialize
and finalize.

Take advantage in CMakeLists of improved packaging of libraries:
NetCDF95 brings dependency on NetCDF-Fortran and NetCDF. Compile gcm
with MPI for XIOS.


Revision 351 - Directory Listing
Modified Tue Jan 7 11:59:00 2020 UTC (4 years, 3 months ago) by guez
Simplify `CMakeLists.txt` files

Take advantage of improved building of libraries: use `find_package`
instead of `find_path` and `find_library`.

Link each executable to target `LMDZE_objects` instead of including the
corresponding objects in the definition of the target executable. This
way, the executable inherits the dependencies of `LMDZE_objects` and
we do not need them in `library_list`.

Remove the definition of `library_list`. Replace the reference to
`library_list` by references to just `netcdff_LIBRARY` and `NetCDF_LIBRARY`.


Revision 342 - Directory Listing
Modified Mon Oct 21 13:52:44 2019 UTC (4 years, 5 months ago) by guez
Bug fixes in `CMakeLists.txt`


Revision 329 - Directory Listing
Modified Thu Jun 13 17:29:13 2019 UTC (4 years, 10 months ago) by guez
Add `CMakeLists.txt` files.

Revision 328 - Directory Listing
Modified Thu Jun 13 14:40:06 2019 UTC (4 years, 10 months ago) by guez
Change all `.f` suffixes to `.f90`. (The opposite was done in revision
82.)  Because of change of philosopy in GNUmakefile: we already had a
rewritten rule for `.f`, so it does not make the makefile longer to
replace it by a rule for `.f90`. And it spares us options of
makedepf90 and of the compiler. Also we prepare the way for a simpler
`CMakeLists.txt`.


Revision 313 - Directory Listing
Modified Mon Dec 10 15:54:30 2018 UTC (5 years, 4 months ago) by guez
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.


Revision 277 - Directory Listing
Modified Thu Jul 12 15:56:17 2018 UTC (5 years, 9 months ago) by guez
Move fxhyp and fyhyp to module dynetat0_m to avoid side effect on
variables of module dynetat0_m. A downside is that we need to link
heavyside, coefpoly and tanh_cautious into the gcm and test_fxhyp
executables.

We must move invert_zoom_x and principal_cshift to module dynetat0_m
to avoid circular dependency.

Move definition of rlatu(1) and rlatu(jjm + 1) inside fyhyp to avoid
side effect on rlatu.


Revision 276 - Directory Listing
Modified Thu Jul 12 14:49:20 2018 UTC (5 years, 9 months ago) by guez
Move procedure read_serre from module read_serre_m to module
dynetat0_m, to avoid side effet on variables of module dynetat0_m.

Create procedure set_unit_nml to avoid side effect on variable of
module unit_nml_m.

Downgrade pctsrf from variable of module etat0_m to argument of etat0
and limit to avoid side effect on pctsrf.

Move variable zmasq from module dimphy to module phyetat0_m to avoid
side effect on zmasq.


Revision 266 - Directory Listing
Modified Thu Apr 19 17:54:55 2018 UTC (6 years ago) by guez
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.


Revision 265 - Directory Listing
Modified Tue Mar 20 09:35:59 2018 UTC (6 years, 1 month ago) by guez
Rename module dimens_m to dimensions.

Revision 254 - Directory Listing
Modified Mon Feb 5 10:39:38 2018 UTC (6 years, 2 months ago) by guez
Copied from: trunk/Sources/filtrez revision 253
Move Sources/* to root directory.

Revision 175 - Directory Listing
Modified Fri Feb 5 16:02:34 2016 UTC (8 years, 2 months ago) by guez
Original Path: trunk/Sources/filtrez
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.


Revision 170 - Directory Listing
Modified Mon Sep 14 17:25:15 2015 UTC (8 years, 7 months ago) by guez
Original Path: trunk/Sources/filtrez
Eignvectors computed by procedure jacobi are already normalized. No
need to call acc.


Revision 169 - Directory Listing
Modified Mon Sep 14 17:13:16 2015 UTC (8 years, 7 months ago) by guez
Original Path: trunk/Sources/filtrez
In inifilr_hemisph, colat0 is necessarily >= 1. / rlamda(iim) (see
notes) so we simplify the definition of jfilt. No need to keep modfrst
values at other latitudes than the current one, and we can have one
loop on latitudes instead of two.

Just encapsulated transp into a module.


Revision 168 - Directory Listing
Modified Wed Sep 9 10:41:47 2015 UTC (8 years, 7 months ago) by guez
Original Path: trunk/Sources/filtrez
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.


Revision 167 - Directory Listing
Modified Mon Aug 24 16:30:33 2015 UTC (8 years, 7 months ago) by guez
Original Path: trunk/Sources/filtrez
Added program test_inifilr.

Encapsulated ppm3d into a module and added implicit none. Removed
unused argument dum.

Encountered a problem in procedure invert_zoom_x. With grossismx=2.9,
DZOOMX=0.3, taux=5, for xuv = -0.25, for i = 1, rtsafe fails because
fval is about 1e-16 instead of 0 at xval = pi. So distinguished the
cases abs_y = 0 or pi. Needed then to add argument beta to
invert_zoom_x.

Moved the output of eignvalues of differentiation matrix from inifilr
to inifgn, where they are computed.

Simpler definition of j1 in inifilr.


Revision 166 - Directory Listing
Modified Wed Jul 29 14:32:55 2015 UTC (8 years, 8 months ago) by guez
Original Path: trunk/Sources/filtrez
Split ppm3d.f into files containing a single procedure.

Factorized computations of filtering matrices into a procedure
inifilr_hemisph. Had then to change the matrices from allocatable to
pointer and from customized lower bound to lower bound 1. The change
in lower bounds does not matter because the matrices are only used as
a whole as actual arguments.

Also, in infilr, instead of finding jfilt[ns][uv] from approximately
jjm /2, start at index j1 that corresponds to the equator. This is not
the same if there is a zoom in latitude.

Also, the test (rlamda(modfrst[ns][uv](j)) * cos(rlat[uv](j)) < 1) in
the loops on filtered latitudes is not useful now that we start from
j1: it is necessarily true. See notes.

Just encapsulated lwvn into a module and removed unused argument ktraer.


Revision 165 - Directory Listing
Modified Wed Jul 29 09:52:33 2015 UTC (8 years, 8 months ago) by guez
Original Path: trunk/Sources/filtrez
In procedure inifilr, no use keeping values of coefil for all
latitudes. Just reuse a one-dimensional array. We can do this by
moving computation of coefil in the loops for computation of filtering
matrices. We avoid a redundant computation of coefil by putting the
computation of direct and inverse matrices inside a same loop on
latitudes.

Instead of writing to output file only modfrst, also write associated
latitudes and whether a mode to filter was found.

If a mode was not found (rlamda(modfrst(j)) * cos(rlat(j)) >= 1.) then
the filtering matrix at this latitude is null. So we move this test at
the highest level inside the loop on filtered latitudes. Note that, by
doing so, we do not need to initialize coefil at 0 any longer.


Revision 164 - Directory Listing
Modified Tue Jul 28 14:53:31 2015 UTC (8 years, 8 months ago) by guez
Original Path: trunk/Sources/filtrez
In procedure inifilr, coefilu2 and coefilv2 were not used. coefilu and
coefilv were defined and used only at filtered latitudes so split them
into north and south arrays. Values in eignvl are necessarily
negative. Simplified the computation of eignft.


Revision 161 - Directory Listing
Modified Fri Jul 24 14:27:59 2015 UTC (8 years, 8 months ago) by guez
Original Path: trunk/Sources/filtrez
rlon[uv] and rlat[uv] are already in start.nc.

Just encapsulated covcont in a module.

finvmaold was not used in leapfrog. Downgraded it from dummy argument
to local variable of SUBROUTINE integrd.

Simplified handling of mass in integrd: down from five 3-dimensional
arrays (masse, massem1, finvmaold, massescr and finvmasse) to three
(masse, massem1, finvmaold).


Revision 156 - Directory Listing
Modified Thu Jul 16 17:39:10 2015 UTC (8 years, 9 months ago) by guez
Original Path: trunk/Sources/filtrez
In procedure cltracrn, no need for local variable zx_trs, use directly
local_trs.

In (re)startphy.nc, agglomerate variables for different surface types
into a single variable with an added dimension.

In phyredem, bring together all definitions, do not use redef.


Revision 154 - Directory Listing
Modified Tue Jul 7 17:49:23 2015 UTC (8 years, 9 months ago) by guez
Original Path: trunk/Sources/filtrez
Removed argument dtphys of physiq. Use it directly from comconst in
physiq instead.

Donwgraded variables eignfnu, eignfnv of module inifgn_m to dummy
arguments of SUBROUTINE inifgn. They were not used elsewhere than in
the calling procedure inifilr. Renamed argument dv of inifgn to eignval_v.

Made alboc and alboc_cd independent of the size of arguments. Now we
can call them only at indices knindex in interfsurf_hq, where we need
them. Fixed a bug in alboc_cd: rmu0 was modified, and the
corresponding actual argument in interfsurf_hq is an intent(in)
argument of interfsurf_hq.

Variables of size knon instead of klon in interfsur_lim and interfsurf_hq.

Removed argument alb_new of interfsurf_hq because it was the same than
alblw. Simplified test on cycle_diurne, following LMDZ.

Moved tests on nbapp_rad from physiq to read_clesphys2. No need for
separate counter itaprad, we can use itap. Define lmt_pas and radpas
from integer input parameters instead of real-type computed values.


Revision 153 - Directory Listing
Modified Tue Jun 23 18:26:18 2015 UTC (8 years, 9 months ago) by guez
Original Path: trunk/Sources/filtrez
Changes results.


Revision 152 - Directory Listing
Modified Tue Jun 23 18:18:12 2015 UTC (8 years, 9 months ago) by guez
Original Path: trunk/Sources/filtrez
Clarification in procedure inifgn. The cost is that we use 3 instead
of 2 local 2-dimensional arrays. eignfnv and eignfnu were used as
temporary arrays to compute input to jacobi before being used as
arguments of jacobi. The corresponding dummy argument is intent(out)
in jacobi. It is clearer to have eignfnv and eignfnu appear only as
arguments of jacobi.


Revision 151 - Directory Listing
Modified Tue Jun 23 15:14:20 2015 UTC (8 years, 9 months ago) by guez
Original Path: trunk/Sources/filtrez
In procedure inifilr, only a part of the arrays modfrstu and modfrstv
were defined. Split these into 4 arrays that are fully defined and
used: modfrst[ns][uv].

Clarified the logic for the computation of jfilt[ns][uv]. Changed the
initial value of the search so that the initial values for northern
hemisphere and southern hemisphere cannot be the same.

Clarified the logic for the computation of modfrst[ns][uv]: removed
the cycle and exit instructions.


Revision 144 - Directory Listing
Modified Wed Jun 10 16:46:46 2015 UTC (8 years, 10 months ago) by guez
Original Path: trunk/Sources/filtrez
In procedure fxhyp, the convoluted computation of tanh(fa/fb) occurred
three times. Extracted it into a function. Also, the computation of
xmoy and fxm was repeated. So stored the values in arrays instead.

In procedure fxhyp, in the computation of fhyp, there were tests
xtild(i) == 0. and xtild(i) == pi_d. No use to do these tests at each
iteration. We now they are true for i == nmax and i == 2 * nmax,
respectively, and we know they are false for other values of
"i". Similarly, in the computations of ffdx and xxpr, there were the
tests xmoy == 0. and xmoy == pi_d, these could not be true.

Moved files from bibio to dyn3d, following LMDZ.


Revision 143 - Directory Listing
Modified Tue Jun 9 14:32:46 2015 UTC (8 years, 10 months ago) by guez
Original Path: trunk/Sources/filtrez
Removed argument d of procedure acc. Was probably here just because
automatic arrays were unknown.

eigen_sort was eigsrt from Numerical Recipes.

In procedure inifilr, create file "eignvl.txt" instead of writing to
standard output.


Revision 142 - Directory Listing
Modified Fri Jun 5 19:31:37 2015 UTC (8 years, 10 months ago) by guez
Original Path: trunk/Sources/filtrez
This revision changes results.


Revision 141 - Directory Listing
Modified Fri Jun 5 19:21:08 2015 UTC (8 years, 10 months ago) by guez
Original Path: trunk/Sources/filtrez
Procedure filtreg_hemisph is always called with sdd2 = 1 / sdd1. It
would not make sense otherwise. I do not like that this does not
appear explicitly in filtreg_hemisph. So replaced the two arguments
sdd1 and sdd2 by a single argument sdd. The cost is computing a
division instead of multplication for every 3-dimensional
position. Besides, this changes the results.


Revision 140 - Directory Listing
Modified Fri Jun 5 18:58:06 2015 UTC (8 years, 10 months ago) by guez
Original Path: trunk/Sources/filtrez
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.


Revision 139 - Directory Listing
Modified Tue May 26 17:46:03 2015 UTC (8 years, 10 months ago) by guez
Original Path: trunk/Sources/filtrez
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 138 - Directory Listing
Modified Fri May 22 23:13:19 2015 UTC (8 years, 11 months ago) by guez
Original Path: trunk/Sources/filtrez
Moved variable nb_files from module histcom_var to module
histbeg_totreg_m.

Removed unused argument q of writehist.

No history file is created in program ce0l so there is no need to call
histclo in etat0.

In phyredem, access variables rlat and rlon directly from module
phyetat0_m instead of having them as arguments. This is clearer for
the program gcm. There are bad side effects for the program ce0l: we
have to modify the module variables rlat and rlon in procedure etat0,
and we need the additional file phyetat0.f to compile ce0l.


Revision 137 - Directory Listing
Modified Wed May 6 15:51:03 2015 UTC (8 years, 11 months ago) by guez
Original Path: trunk/Sources/filtrez
Removed unused argument missval in ma_fucoll_r[1-3]1, ma_fufill_r[1-3]1.

Split filtreg into two procedures: filtreg_scal and filtreg_v. I did
not like the test on the extent of the argument and there was no
common code between the two cases: jjm and jjm + 1. Also, it is
simpler now to just remove the argument "direct" from filtreg_v instead
of allowing it and then stopping the program if it is false.

Removed the computation of pkf in reanalyse2nat, was not used.

As a consequence of the split of filtreg, had to extract the
computation of pkf out of exner_hyb. This is clearer anyway because we
want to be able to call exner_hyb with any size in the first two
dimensions (as in test_disvert). But at the same time exner_hyb
required particular sizes for the computation of pkf. It was
awkward. The only computation of pkf is now in leapfrog.


Revision 136 - Directory Listing
Modified Thu Apr 30 18:35:49 2015 UTC (8 years, 11 months ago) by guez
Original Path: trunk/Sources/filtrez
Clarified the logic in filtreg by creating a procedure
filtreg_hemisph. It was terrible with a loop on hemispheres and tests
on hemisphere inside the loop, plus maddening indirections on latitude
bounds, plus repeated code. Went from 126 lines to much clearer 74 +
32 = 106 lines.

In module inifilr_m, finally made the arrays matrice[uv][ns],
matrinv[ns] dynamic (following LMDZ). Changed the lower bound of
matriceun and matrinvn in the 3rd dimension: 2 instead of 1, the index
1 was not defined (nor used).

In module inifilr_m, changed the bounds of matriceus and matrinvs in
the 3rd dimension: jfiltsu:jjm instead of 1:jjm - jfiltsu + 1. Changed
the bounds of matricevs in the 3rd dimension: jfiltsv:jjm instead of
1:jjm - jfiltsv + 1. It is a little simpler and clearer this way in
procedure inifilr.



Revision 135 - Directory Listing
Modified Thu Apr 30 14:22:32 2015 UTC (8 years, 11 months ago) by guez
Original Path: trunk/Sources/filtrez
Use matmul in filtreg.

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

Revision 133 - Directory Listing
Modified Wed Apr 29 15:34:15 2015 UTC (8 years, 11 months ago) by guez
Transformed bernoui from subroutine to function.

Revision 132 - Directory Listing
Modified Fri Mar 20 16:31:06 2015 UTC (9 years, 1 month ago) by guez
Removed procedure jacobi, which was a copy of the file from Numerical
Recipes in Fortran 77. Refer to the Numer_Rec_95 library instead.

There was a strange line in procedure coordij: j cannot be equal to 0
after the loop on j.


Revision 121 - Directory Listing
Modified Wed Jan 28 16:10:02 2015 UTC (9 years, 2 months ago) by guez
In procedure fxhyp, extracted the body of the loop on ik into a new
procedure:  fxhyp_loop_ik.

dzoomx and dzoomy must now be fractions of the entire range, they
cannot be ranges in degrees or rad.

In fxhyp, force Xf(2 * nmax) = pi_d instead of possibly doing it in
fxhyp_loop_ik.

In fxhyp_loop_ik, when testing whether xvrai is between -pi and pi,
changed the boundaries from -pi - 0.1 to - pi_d - 1d-5 and from pi +
0.1 to pi_d + 1d-5. This reveals a misconception of the
code. Therefore, this version does not work.


Revision 113 - Directory Listing
Modified Thu Sep 18 19:56:46 2014 UTC (9 years, 7 months ago) by guez
Moved the call to read_serre out of conf_gcm so that it can be called
only in the program ce0l, not in gcm. In gcm, variables of module
serre are read from start file. Added reading of dzoomx, dzoomy, taux,
tauy from start file, in dynetat0. Those variables were written by
dynredem0 but not read.

Removed possibility fxyhypb = false, because the geometric part of the
program is such a mess. Could then remove variables transx, transy,
alphax, alphay, pxo, pyo of module serre.

Bug fix in tau2alpha: missing save attributes. The first call to
tau2alpha needs to compute dxdyu and dxdyv regardless of value of
argument type, because they will be needed for subsequent calls to
tau2alpha with various values of argument type.


Revision 108 - Directory Listing
Modified Tue Sep 16 14:00:41 2014 UTC (9 years, 7 months ago) by guez
Imported writefield from LMDZ. Close at the end of gcm the files which
were created by writefiled (not done in LMDZ).

Removed procedures for the output of Grads files. Removed calls to
dump2d. In guide, replaced calls to wrgrads by calls to writefield.

In vlspltqs, removed redundant programming of saturation
pressure. Call foeew from module FCTTRE instead.

Bug fix in interpre: size of w exceeding size of correponding actual
argument wg in advtrac.

In leapfrog, call guide until the end of the run, instead of six hours
before the end.

Bug fix in readsulfate_preind: type of arguments.


Revision 107 - Directory Listing
Modified Thu Sep 11 15:09:15 2014 UTC (9 years, 7 months ago) by guez
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.


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

Revision 81 - Directory Listing
Modified Wed Mar 5 14:38:41 2014 UTC (10 years, 1 month ago) by guez
 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).


Revision 76 - Directory Listing
Modified Fri Nov 15 18:45:49 2013 UTC (10 years, 5 months ago) by guez
Copied from: trunk/libf/filtrez revision 75
Moved everything out of libf.

Revision 71 - Directory Listing
Modified Mon Jul 8 18:12:18 2013 UTC (10 years, 9 months ago) by guez
Original Path: trunk/libf/filtrez
No reason to call inidissip in ce0l.

In inidissip, set random seed to 1 beacuse PGI compiler does not
accept all zeros.

dq was computed needlessly in caladvtrac. Arguments masse and dq of
calfis not used.

Replaced real*8 by double precision.

Pass arrays with inverted order of vertical levels to conflx instead
of creating local variables for this inside conflx.


Revision 64 - Directory Listing
Modified Wed Aug 29 14:47:17 2012 UTC (11 years, 7 months ago) by guez
Original Path: trunk/libf/filtrez
Removed variable lstardis in module comdissnew and procedures gradiv
and nxgrarot. lstardir had to be true. gradiv and nxgrarot were called
if lstardis was false. Removed argument iter of procedure
filtreg. iter had to be 1. gradiv and nxgrarot called filtreg with
iter == 2.

Moved procedure flxsetup into module yoecumf. Module yoecumf is only
used in program units of directory Conflx, moved it there.


Revision 57 - Directory Listing
Modified Mon Jan 30 12:54:02 2012 UTC (12 years, 2 months ago) by guez
Original Path: trunk/libf/filtrez
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.


Revision 54 - Directory Listing
Modified Tue Dec 6 15:07:04 2011 UTC (12 years, 4 months ago) by guez
Original Path: trunk/libf/filtrez
Removed Numerical Recipes procedure "ran1". Replaced calls to "ran1"
in "inidissip" by calls to intrinsic procedures.

Split file "interface_surf.f90" into a file with a module containing
only variables, "interface_surf", and single-procedure files. Gathered
files into directory "Interface_surf".

Added argument "cdivu" to "gradiv" and "gradiv2", "cdivh" to
"divgrad2" and "divgrad", and "crot" to "nxgraro2" and
"nxgrarot". "dissip" now uses variables "cdivu", "cdivh" and "crot"
from module "inidissip_m", so it can pass them to "gradiv2",
etc. Thanks to this modification, we avoid a circular dependency
betwwen "inidissip.f90" and "gradiv2.f90", etc. The value -1. used by
"gradiv2", for instance, during computation of eigenvalues is not the
value "cdivu" computed by "inidissip".

Extracted procedure "start_inter_3d" from module "startdyn", to its
own module.

In "inidissip", unrolled loop on "ii". I find it clearer now.

Moved variables "matriceun", "matriceus", "matricevn", "matricevs",
"matrinvn" and "matrinvs" from module "parafilt" to module
"inifilr_m". Moved variables "jfiltnu", "jfiltnv", "jfiltsu",
"jfiltsv" from module "coefils" to module "inifilr_m".


Revision 40 - Directory Listing
Modified Tue Feb 22 13:49:36 2011 UTC (13 years, 1 month ago) by guez
Original Path: trunk/libf/filtrez
"alpha" useless, always 0, in "exner_hyb".


Revision 37 - Directory Listing
Modified Tue Dec 21 15:45:48 2010 UTC (13 years, 4 months ago) by guez
Original Path: trunk/libf/filtrez
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".


Revision 32 - Directory Listing
Modified Tue Apr 6 17:52:58 2010 UTC (14 years ago) by guez
Original Path: trunk/libf/filtrez
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".


Revision 30 - Directory Listing
Modified Thu Apr 1 09:07:28 2010 UTC (14 years ago) by guez
Original Path: trunk/libf/filtrez
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.


Revision 27 - Directory Listing
Modified Thu Mar 25 14:29:07 2010 UTC (14 years ago) by guez
Original Path: trunk/libf/filtrez
"dyn3d" and "filtrez" do not contain any included file so make rules
have been updated.

"comdissip.f90" was useless, removed it.

"dynredem0" wrote undefined value in "controle(31)", that was
overwritten by "dynredem1". Now "dynredem0" just writes 0 to
"controle(31)".

Removed arguments of "inidissip". "inidissip" now accesses the
variables by use association.

In program "etat0_lim", "itaufin" is not defined so "dynredem1" wrote
undefined value to "controle(31)". Added argument "itau" of
"dynredem1" to correct that.

"itaufin" does not need to be a module variable (of "temps"), made it
a local variable of "leapfrog".

Removed calls to "diagedyn" from "leapfrog".


Revision 25 - Directory Listing
Modified Fri Mar 5 16:43:45 2010 UTC (14 years, 1 month ago) by guez
Original Path: trunk/libf/filtrez
Simplified "etat0_lim.sh" and "gcm.sh" because the full versions
depended on personal arrangements for directories and machines.

Translated included files into modules. Encapsulated procedures into modules.

Moved variables from module "comgeom" to local variables of
"inigeom". Deleted some unused variables in "comgeom".

Moved variable "day_ini" from module "temps" to module "dynetat0_m".

Removed useless test on variable "time" and useless "close" statement
in procedure "leapfrog".

Removed useless call to "inigeom" in procedure "limit".


Revision 24 - Directory Listing
Modified Wed Mar 3 13:23:49 2010 UTC (14 years, 1 month ago) by guez
Original Path: trunk/libf/filtrez
Created directory "phylmd/Radlwsw". Split "radlwsw.f" in files
containing a single procedure.

Removed variable "itaufinp1" in "leapfrog".


Revision 23 - Directory Listing
Modified Mon Dec 14 15:25:16 2009 UTC (14 years, 4 months ago) by guez
Original Path: trunk/libf/filtrez
Split "orografi.f": one file for each procedure. Put the created files
in new directory "Orography".

Removed argument "vcov" of procedure "sortvarc". Removed arguments
"itau" and "time" of procedure "caldyn0". Removed arguments "itau",
"time" and "vcov" of procedure "sortvarc0".

Removed argument "time" of procedure "dynredem1". Removed NetCDF
variable "temps" in files "start.nc" and "restart.nc", because its
value is always 0.

Removed argument "nq" of procedures "iniadvtrac" and "leapfrog". The
number of "tracers read in "traceur.def" must now be equal to "nqmx",
or "nqmx" must equal 4 if there is no file "traceur.def". Replaced
variable "nq" by constant "nqmx" in "leapfrog".

NetCDF variable for ozone field in "coefoz.nc" must now be called
"tro3" instead of "r".

Fixed bug in "zenang".


Revision 22 - Directory Listing
Modified Fri Jul 31 15:18:47 2009 UTC (14 years, 8 months ago) by guez
Original Path: trunk/libf/filtrez
Superficial modifications

Revision 5 - Directory Listing
Modified Mon Mar 3 16:32:04 2008 UTC (16 years, 1 month ago) by guez
Original Path: trunk/libf/filtrez
Created module from included file parafilt.
Converted caldyn0 to free format.
Added a rule to create cross-references with NAG.
Added optional attribute in iniadvtrac.
Suppressed argument nq in dynredem0 and dynredem1, using nqmx instead.
Replaced some NetCDF calls by netcdf95 calls in dynredem0.
Added intent attribute in dynredem0 and dynredem1.
Annotated use statements with only clause, in dynredem1.
Suppressed variable nq and argument of iniadvtrac in etat0.
Added test on nqmx in etat0.

Revision 3 - Directory Listing
Added Wed Feb 27 13:16:39 2008 UTC (16 years, 1 month ago) by guez
Original Path: trunk/libf/filtrez
Initial import

  ViewVC Help
Powered by ViewVC 1.1.21