1 |
guez |
167 |
program test_inifilr |
2 |
|
|
|
3 |
guez |
265 |
use dimensions, only: iim, jjm |
4 |
guez |
167 |
use dynetat0_m, only: xprimp025, xprimm025, rlatu1, rlatu2, rlatu, rlatv, & |
5 |
guez |
276 |
yprimu1, yprimu2, rlonu, rlonv, xprimu, xprimv, read_serre |
6 |
guez |
167 |
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 |
guez |
276 |
use unit_nml_m, only: unit_nml, set_unit_nml |
15 |
guez |
167 |
|
16 |
|
|
IMPLICIT NONE |
17 |
|
|
|
18 |
|
|
integer ncid, dimid_longitude |
19 |
guez |
168 |
integer dimid_rlatu, dimid_rlatv |
20 |
|
|
integer varid_matriceu, varid_matrinv, varid_matricev |
21 |
|
|
integer varid_rlatu, varid_rlatv |
22 |
guez |
167 |
|
23 |
|
|
!----------------------------------------------------------------------- |
24 |
|
|
|
25 |
guez |
276 |
call set_unit_nml |
26 |
guez |
167 |
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 |
guez |
168 |
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 |
guez |
167 |
|
43 |
guez |
168 |
call NF95_DEF_VAR(ncid, "rlatu", NF90_FLOAT, dimid_rlatu, varid_rlatu) |
44 |
|
|
call nf95_put_att(ncid, varid_rlatu, "units", "degrees_north") |
45 |
guez |
167 |
|
46 |
guez |
168 |
call NF95_DEF_VAR(ncid, "rlatv", NF90_FLOAT, dimid_rlatv, varid_rlatv) |
47 |
|
|
call nf95_put_att(ncid, varid_rlatv, "units", "degrees_north") |
48 |
guez |
167 |
|
49 |
guez |
168 |
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 |
guez |
167 |
|
56 |
|
|
call NF95_ENDDEF(ncid) |
57 |
|
|
|
58 |
guez |
168 |
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 |
guez |
167 |
|
63 |
guez |
168 |
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 |
guez |
167 |
|
71 |
|
|
call NF95_CLOSE(ncid) |
72 |
guez |
169 |
print *, 'Created file "test_inifilr_out.nc".' |
73 |
guez |
167 |
|
74 |
|
|
end program test_inifilr |