/[lmdze]/trunk/filtrez/test_inifilr.f
ViewVC logotype

Contents of /trunk/filtrez/test_inifilr.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 276 - (show annotations)
Thu Jul 12 14:49:20 2018 UTC (5 years, 10 months ago) by guez
File size: 2879 byte(s)
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.

1 program test_inifilr
2
3 use dimensions, only: iim, jjm
4 use dynetat0_m, only: xprimp025, xprimm025, rlatu1, rlatu2, rlatu, rlatv, &
5 yprimu1, yprimu2, rlonu, rlonv, xprimu, xprimv, read_serre
6 use fxhyp_m, only: fxhyp
7 use fyhyp_m, only: fyhyp
8 use inifilr_m, only: inifilr, jfiltnu, jfiltnv, jfiltsu, jfiltsv, &
9 matriceun, matrinvn, matricevn, matriceus, matrinvs, matricevs
10 use netcdf, only: NF90_CLOBBER, NF90_FLOAT
11 use netcdf95, only: nf95_create, NF95_DEF_DIM, NF95_DEF_VAR, NF95_ENDDEF, &
12 NF95_PUT_VAR, NF95_CLOSE, nf95_put_att
13 use nr_util, only: pi
14 use unit_nml_m, only: unit_nml, set_unit_nml
15
16 IMPLICIT NONE
17
18 integer ncid, dimid_longitude
19 integer dimid_rlatu, dimid_rlatv
20 integer varid_matriceu, varid_matrinv, varid_matricev
21 integer varid_rlatu, varid_rlatv
22
23 !-----------------------------------------------------------------------
24
25 call set_unit_nml
26 open(unit_nml, file="used_namelists.txt", status="replace", action="write")
27 call read_serre
28
29 CALL fyhyp(rlatu, rlatv, rlatu2, yprimu2, rlatu1, yprimu1)
30 CALL fxhyp(xprimm025, rlonv, xprimv, rlonu, xprimu, xprimp025)
31 rlatu(1) = pi / 2.
32 rlatu(jjm + 1) = -rlatu(1)
33
34 CALL inifilr
35 close(unit_nml)
36
37 call nf95_create("test_inifilr_out.nc", NF90_CLOBBER, ncid)
38
39 call NF95_DEF_DIM(ncid, "longitude", iim, dimid_longitude)
40 call NF95_DEF_DIM(ncid, "rlatu", jfiltnu + jjm - jfiltsu, dimid_rlatu)
41 call NF95_DEF_DIM(ncid, "rlatv", jfiltnv + jjm - jfiltsv + 1, dimid_rlatv)
42
43 call NF95_DEF_VAR(ncid, "rlatu", NF90_FLOAT, dimid_rlatu, varid_rlatu)
44 call nf95_put_att(ncid, varid_rlatu, "units", "degrees_north")
45
46 call NF95_DEF_VAR(ncid, "rlatv", NF90_FLOAT, dimid_rlatv, varid_rlatv)
47 call nf95_put_att(ncid, varid_rlatv, "units", "degrees_north")
48
49 call NF95_DEF_VAR(ncid, "matriceu", NF90_FLOAT, &
50 (/dimid_longitude, dimid_longitude, dimid_rlatu/), varid_matriceu)
51 call NF95_DEF_VAR(ncid, "matrinv", NF90_FLOAT, &
52 (/dimid_longitude, dimid_longitude, dimid_rlatu/), varid_matrinv)
53 call NF95_DEF_VAR(ncid, "matricev", NF90_FLOAT, &
54 (/dimid_longitude, dimid_longitude, dimid_rlatv/), varid_matricev)
55
56 call NF95_ENDDEF(ncid)
57
58 call NF95_PUT_VAR(ncid, varid_rlatu, &
59 (/rlatu(2:jfiltnu), rlatu(jfiltsu:jjm)/) / pi * 180.)
60 call NF95_PUT_VAR(ncid, varid_rlatv, &
61 (/rlatv(:jfiltnv), rlatv(jfiltsv:)/) / pi * 180.)
62
63 call NF95_PUT_VAR(ncid, varid_matriceu, matriceun)
64 call NF95_PUT_VAR(ncid, varid_matrinv, matrinvn)
65 call NF95_PUT_VAR(ncid, varid_matricev, matricevn)
66 call NF95_PUT_VAR(ncid, varid_matriceu, matriceus, start = (/1, 1, jfiltnu/))
67 call NF95_PUT_VAR(ncid, varid_matrinv, matrinvs, start = (/1, 1, jfiltnu/))
68 call NF95_PUT_VAR(ncid, varid_matricev, matricevs, &
69 start = (/1, 1, jfiltnv + 1/))
70
71 call NF95_CLOSE(ncid)
72 print *, 'Created file "test_inifilr_out.nc".'
73
74 end program test_inifilr

  ViewVC Help
Powered by ViewVC 1.1.21