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

Contents of /trunk/filtrez/test_inifilr.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 265 - (show annotations)
Tue Mar 20 09:35:59 2018 UTC (6 years, 1 month ago) by guez
File size: 2925 byte(s)
Rename module dimens_m to dimensions.
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
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 jumble, only: new_unit
11 use netcdf, only: NF90_CLOBBER, NF90_FLOAT
12 use netcdf95, only: nf95_create, NF95_DEF_DIM, NF95_DEF_VAR, NF95_ENDDEF, &
13 NF95_PUT_VAR, NF95_CLOSE, nf95_put_att
14 use nr_util, only: pi
15 use unit_nml_m, only: unit_nml
16 use read_serre_m, only: read_serre
17
18 IMPLICIT NONE
19
20 integer ncid, dimid_longitude
21 integer dimid_rlatu, dimid_rlatv
22 integer varid_matriceu, varid_matrinv, varid_matricev
23 integer varid_rlatu, varid_rlatv
24
25 !-----------------------------------------------------------------------
26
27 call new_unit(unit_nml)
28 open(unit_nml, file="used_namelists.txt", status="replace", action="write")
29 call read_serre
30
31 CALL fyhyp(rlatu, rlatv, rlatu2, yprimu2, rlatu1, yprimu1)
32 CALL fxhyp(xprimm025, rlonv, xprimv, rlonu, xprimu, xprimp025)
33 rlatu(1) = pi / 2.
34 rlatu(jjm + 1) = -rlatu(1)
35
36 CALL inifilr
37 close(unit_nml)
38
39 call nf95_create("test_inifilr_out.nc", NF90_CLOBBER, ncid)
40
41 call NF95_DEF_DIM(ncid, "longitude", iim, dimid_longitude)
42 call NF95_DEF_DIM(ncid, "rlatu", jfiltnu + jjm - jfiltsu, dimid_rlatu)
43 call NF95_DEF_DIM(ncid, "rlatv", jfiltnv + jjm - jfiltsv + 1, dimid_rlatv)
44
45 call NF95_DEF_VAR(ncid, "rlatu", NF90_FLOAT, dimid_rlatu, varid_rlatu)
46 call nf95_put_att(ncid, varid_rlatu, "units", "degrees_north")
47
48 call NF95_DEF_VAR(ncid, "rlatv", NF90_FLOAT, dimid_rlatv, varid_rlatv)
49 call nf95_put_att(ncid, varid_rlatv, "units", "degrees_north")
50
51 call NF95_DEF_VAR(ncid, "matriceu", NF90_FLOAT, &
52 (/dimid_longitude, dimid_longitude, dimid_rlatu/), varid_matriceu)
53 call NF95_DEF_VAR(ncid, "matrinv", NF90_FLOAT, &
54 (/dimid_longitude, dimid_longitude, dimid_rlatu/), varid_matrinv)
55 call NF95_DEF_VAR(ncid, "matricev", NF90_FLOAT, &
56 (/dimid_longitude, dimid_longitude, dimid_rlatv/), varid_matricev)
57
58 call NF95_ENDDEF(ncid)
59
60 call NF95_PUT_VAR(ncid, varid_rlatu, &
61 (/rlatu(2:jfiltnu), rlatu(jfiltsu:jjm)/) / pi * 180.)
62 call NF95_PUT_VAR(ncid, varid_rlatv, &
63 (/rlatv(:jfiltnv), rlatv(jfiltsv:)/) / pi * 180.)
64
65 call NF95_PUT_VAR(ncid, varid_matriceu, matriceun)
66 call NF95_PUT_VAR(ncid, varid_matrinv, matrinvn)
67 call NF95_PUT_VAR(ncid, varid_matricev, matricevn)
68 call NF95_PUT_VAR(ncid, varid_matriceu, matriceus, start = (/1, 1, jfiltnu/))
69 call NF95_PUT_VAR(ncid, varid_matrinv, matrinvs, start = (/1, 1, jfiltnu/))
70 call NF95_PUT_VAR(ncid, varid_matricev, matricevs, &
71 start = (/1, 1, jfiltnv + 1/))
72
73 call NF95_CLOSE(ncid)
74 print *, 'Created file "test_inifilr_out.nc".'
75
76 end program test_inifilr

  ViewVC Help
Powered by ViewVC 1.1.21