/[lmdze]/trunk/phylmd/condsurf.f
ViewVC logotype

Annotation of /trunk/phylmd/condsurf.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 81 - (hide annotations)
Wed Mar 5 14:38:41 2014 UTC (10 years, 2 months ago) by guez
Original Path: trunk/phylmd/condsurf.f90
File size: 3002 byte(s)
 Converted to free source form files which were still in fixed source
form. The conversion was done using the polish mode of the NAG Fortran
Compiler.

In addition to converting to free source form, the processing of the
files also:

-- indented the code (including comments);

-- set Fortran keywords to uppercase, and set all other identifiers
to lower case;

-- added qualifiers to end statements (for example "end subroutine
conflx", instead of "end");

-- changed the terminating statements of all DO loops so that each
loop ends with an ENDDO statement (instead of a labeled continue).

1 guez 81 ! $Header: /home/cvsroot/LMDZ4/libf/phylmd/condsurf.F,v 1.2 2005/12/01
2     ! 11:27:29 fairhead Exp $
3 guez 3
4 guez 81 SUBROUTINE condsurf(jour, jourvrai, lmt_bils)
5     USE dimens_m
6     USE indicesol
7     USE dimphy
8     USE temps
9     USE clesphys2, ONLY: ok_limitvrai
10     USE netcdf
11     IMPLICIT NONE
12    
13     ! I. Musat 05.2005
14    
15     ! Lire chaque jour le bilan de chaleur au sol issu
16     ! d'un run atmospherique afin de l'utiliser dans
17     ! dans un run "slab" ocean
18     ! -----------------------------------------
19     ! jour : input , numero du jour a lire
20     ! jourvrai : input , vrai jour de la simulation
21    
22     ! lmt_bils: bilan chaleur au sol (a utiliser pour "slab-ocean")
23    
24     INTEGER nid, nvarid
25     INTEGER debut(2)
26     INTEGER epais(2)
27    
28    
29     INTEGER nannemax
30     PARAMETER (nannemax=60)
31    
32     INTEGER jour
33     INTEGER jourvrai
34     REAL lmt_bils(klon) !bilan chaleur au sol
35    
36     ! Variables locales:
37     INTEGER ig, i, kt, ierr
38     LOGICAL ok
39     INTEGER anneelim, anneemax
40     CHARACTER *20 fich
41     ! c
42     ! c .....................................................................
43     ! c
44     ! c Pour lire le fichier limit correspondant vraiment a l'annee de la
45     ! c simulation en cours , il suffit de mettre ok_limitvrai = .TRUE.
46     ! c
47     ! c
48     ! ......................................................................
49    
50    
51     IF (jour<0 .OR. jour>(360-1)) THEN
52     PRINT *, 'Le jour demande n est pas correct: ', jour
53     STOP 1
54     END IF
55    
56     anneelim = annee_ref
57     anneemax = annee_ref + nannemax
58    
59    
60     IF (ok_limitvrai) THEN
61     DO kt = 1, nannemax
62     IF (jourvrai<=(kt-1)*360+359) THEN
63     WRITE (fich, '("limit",i4,".nc")') anneelim
64     ! PRINT *,' Fichier Limite ',fich
65     GO TO 100
66     END IF
67     anneelim = anneelim + 1
68     END DO
69    
70     PRINT *, ' PBS ! Le jour a lire sur le fichier limit ne se '
71     PRINT *, ' trouve pas sur les ', nannemax, ' annees a partir de '
72     PRINT *, ' l annee de debut', annee_ref
73     STOP 1
74    
75     100 CONTINUE
76    
77     ELSE
78    
79     WRITE (fich, '("limitNEW.nc")')
80     ! PRINT *,' Fichier Limite ',fich
81     END IF
82    
83     ! Ouvrir le fichier en format NetCDF:
84    
85     ierr = nf90_open(fich, nf90_nowrite, nid)
86     IF (ierr/=nf90_noerr) THEN
87     WRITE (6, *) ' Pb d''ouverture du fichier ', fich
88     WRITE (6, *) ' Le fichier limit ', fich, ' (avec 4 chiffres , pour'
89     WRITE (6, *) ' l an 2000 ) , n existe pas ! '
90     WRITE (6, *) ' ierr = ', ierr
91     STOP 1
92     END IF
93     ! DO k = 1, jour
94     ! La tranche de donnees a lire:
95    
96     debut(1) = 1
97     debut(2) = jour
98     epais(1) = klon
99     epais(2) = 1
100    
101     ! Bilan flux de chaleur au sol:
102    
103     ierr = nf90_inq_varid(nid, 'BILS', nvarid)
104     IF (ierr/=nf90_noerr) THEN
105     PRINT *, 'condsurf: Le champ <BILS> est absent'
106     STOP 1
107     END IF
108     ! PRINT*,'debut,epais',debut,epais
109     ierr = nf90_get_var(nid, nvarid, lmt_bils, debut, epais)
110     IF (ierr/=nf90_noerr) THEN
111     PRINT *, 'condsurf: Lecture echouee pour <BILS>'
112     STOP 1
113     END IF
114     ! ENDDO !k = 1, jour
115    
116     ! Fermer le fichier:
117    
118     ierr = nf90_close(nid)
119    
120    
121     ! PRINT*, 'lmt_bils est lu pour jour: ', jour
122    
123     RETURN
124     END SUBROUTINE condsurf

Properties

Name Value
svn:executable

  ViewVC Help
Powered by ViewVC 1.1.21