12 |
|
|
13 |
! From phylmd/phyredem.F, version 1.3 2005/05/25 13:10:09 |
! From phylmd/phyredem.F, version 1.3 2005/05/25 13:10:09 |
14 |
! Author: Z. X. Li (LMD/CNRS) |
! Author: Z. X. Li (LMD/CNRS) |
15 |
! Date: 19930818 |
! Date: 1993/08/18 |
16 |
! Objet : écriture de l'état de démarrage ou redémarrage pour la physique |
! Objet : écriture de l'état de démarrage ou redémarrage pour la physique |
17 |
|
|
18 |
USE dimphy, ONLY: klev, klon, zmasq |
USE dimphy, ONLY: klev, klon, zmasq |
25 |
|
|
26 |
CHARACTER(len=*) fichnom |
CHARACTER(len=*) fichnom |
27 |
REAL, INTENT(IN):: rlat(klon), rlon(klon) |
REAL, INTENT(IN):: rlat(klon), rlon(klon) |
28 |
REAL pctsrf(klon, nbsrf) |
REAL, INTENT(IN):: pctsrf(klon, nbsrf) |
29 |
REAL tsol(klon, nbsrf) |
REAL tsol(klon, nbsrf) |
30 |
REAL tsoil(klon, nsoilmx, nbsrf) |
REAL tsoil(klon, nsoilmx, nbsrf) |
31 |
REAL tslab(klon), seaice(klon) !IM "slab" ocean |
REAL tslab(klon), seaice(klon) !IM "slab" ocean |
43 |
REAL radsol(klon) |
REAL radsol(klon) |
44 |
REAL frugs(klon, nbsrf) |
REAL frugs(klon, nbsrf) |
45 |
REAL agesno(klon, nbsrf) |
REAL agesno(klon, nbsrf) |
46 |
REAL zmea(klon) |
REAL, INTENT(IN):: zmea(klon) |
47 |
REAL, intent(in):: zstd(klon) |
REAL, intent(in):: zstd(klon) |
48 |
REAL, intent(in):: zsig(klon) |
REAL, intent(in):: zsig(klon) |
49 |
REAL zgam(klon) |
REAL zgam(klon) |
61 |
! Local: |
! Local: |
62 |
|
|
63 |
INTEGER ncid, idim2, idim3 |
INTEGER ncid, idim2, idim3 |
64 |
integer varid, varid_run_off_lic_0, varid_sig1, varid_w01 |
integer varid, varid_run_off_lic_0, varid_sig1, varid_w01, varid_rlon |
65 |
|
integer varid_rlat, varid_zmasq, varid_fter, varid_flic, varid_foce |
66 |
|
integer varid_fsic |
67 |
INTEGER isoil, nsrf |
INTEGER isoil, nsrf |
68 |
CHARACTER(len=7) str7 |
CHARACTER(len=7) str7 |
69 |
CHARACTER(len=2) str2 |
CHARACTER(len=2) str2 |
80 |
call nf95_def_dim(ncid, 'points_physiques', klon, idim2) |
call nf95_def_dim(ncid, 'points_physiques', klon, idim2) |
81 |
call nf95_def_dim(ncid, 'klev', klev, idim3) |
call nf95_def_dim(ncid, 'klev', klev, idim3) |
82 |
|
|
83 |
call nf95_def_var(ncid, 'longitude', nf90_float, idim2, varid) |
call nf95_def_var(ncid, 'longitude', nf90_float, idim2, varid_rlon) |
84 |
call nf95_put_att(ncid, varid, 'title', & |
call nf95_def_var(ncid, 'latitude', nf90_float, idim2, varid_rlat) |
|
'Longitudes de la grille physique') |
|
|
call nf95_enddef(ncid) |
|
|
call nf95_put_var(ncid, varid, rlon) |
|
85 |
|
|
86 |
call nf95_redef(ncid) |
call nf95_def_var(ncid, 'masque', nf90_float, idim2, varid_zmasq) |
87 |
call nf95_def_var(ncid, 'latitude', nf90_float, idim2, varid) |
call nf95_put_att(ncid, varid_zmasq, 'title', 'masque terre mer') |
|
call nf95_put_att(ncid, varid, 'title', & |
|
|
'Latitudes de la grille physique') |
|
|
call nf95_enddef(ncid) |
|
|
call nf95_put_var(ncid, varid, rlat) |
|
88 |
|
|
89 |
! PB ajout du masque terre/mer |
! Fractions de chaque sous-surface |
90 |
|
|
91 |
call nf95_redef(ncid) |
call nf95_def_var(ncid, 'FTER', nf90_float, idim2, varid_fter) |
92 |
call nf95_def_var(ncid, 'masque', nf90_float, idim2, varid) |
call nf95_put_att(ncid, varid_fter, 'title', 'fraction de continent') |
|
call nf95_put_att(ncid, varid, 'title', 'masque terre mer') |
|
|
call nf95_enddef(ncid) |
|
|
call nf95_put_var(ncid, varid, zmasq) |
|
|
! BP ajout des fraction de chaque sous-surface |
|
93 |
|
|
94 |
! 1. fraction de terre |
call nf95_def_var(ncid, 'FLIC', nf90_float, idim2, varid_flic) |
95 |
|
call nf95_put_att(ncid, varid_flic, 'title', 'fraction glace de terre') |
96 |
|
|
97 |
call nf95_redef(ncid) |
call nf95_def_var(ncid, 'FOCE', nf90_float, idim2, varid_foce) |
98 |
call nf95_def_var(ncid, 'FTER', nf90_float, idim2, varid) |
call nf95_put_att(ncid, varid_foce, 'title', 'fraction ocean') |
|
call nf95_put_att(ncid, varid, 'title', 'fraction de continent') |
|
|
call nf95_enddef(ncid) |
|
|
call nf95_put_var(ncid, varid, pctsrf(:, is_ter)) |
|
99 |
|
|
100 |
! 2. Fraction de glace de terre |
call nf95_def_var(ncid, 'FSIC', nf90_float, idim2, varid_fsic) |
101 |
|
call nf95_put_att(ncid, varid_fsic, 'title', 'fraction glace mer') |
102 |
|
|
|
call nf95_redef(ncid) |
|
|
call nf95_def_var(ncid, 'FLIC', nf90_float, idim2, varid) |
|
|
call nf95_put_att(ncid, varid, 'title', 'fraction glace de terre') |
|
103 |
call nf95_enddef(ncid) |
call nf95_enddef(ncid) |
|
call nf95_put_var(ncid, varid, pctsrf(:, is_lic)) |
|
|
|
|
|
! 3. fraction ocean |
|
104 |
|
|
105 |
call nf95_redef(ncid) |
call nf95_put_var(ncid, varid_rlon, rlon) |
106 |
call nf95_def_var(ncid, 'FOCE', nf90_float, idim2, varid) |
call nf95_put_var(ncid, varid_rlat, rlat) |
107 |
call nf95_put_att(ncid, varid, 'title', 'fraction ocean') |
call nf95_put_var(ncid, varid_zmasq, zmasq) |
108 |
call nf95_enddef(ncid) |
call nf95_put_var(ncid, varid_fter, pctsrf(:, is_ter)) |
109 |
call nf95_put_var(ncid, varid, pctsrf(:, is_oce)) |
call nf95_put_var(ncid, varid_flic, pctsrf(:, is_lic)) |
110 |
|
call nf95_put_var(ncid, varid_foce, pctsrf(:, is_oce)) |
111 |
! 4. Fraction glace de mer |
call nf95_put_var(ncid, varid_fsic, pctsrf(:, is_sic)) |
|
|
|
|
call nf95_redef(ncid) |
|
|
call nf95_def_var(ncid, 'FSIC', nf90_float, idim2, varid) |
|
|
call nf95_put_att(ncid, varid, 'title', 'fraction glace mer') |
|
|
call nf95_enddef(ncid) |
|
|
call nf95_put_var(ncid, varid, pctsrf(:, is_sic)) |
|
112 |
|
|
113 |
DO nsrf = 1, nbsrf |
DO nsrf = 1, nbsrf |
114 |
IF (nsrf<=99) THEN |
IF (nsrf<=99) THEN |