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

Contents of /trunk/filtrez/test_inifilr.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 277 - (show annotations)
Thu Jul 12 15:56:17 2018 UTC (5 years, 10 months ago) by guez
File size: 2592 byte(s)
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.

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

  ViewVC Help
Powered by ViewVC 1.1.21