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

Contents of /trunk/libf/phylmd/condsurf.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 61 - (show annotations)
Fri Apr 20 14:58:43 2012 UTC (12 years ago) by guez
File size: 3314 byte(s)
No more included file in LMDZE, not even "netcdf.inc".

Created a variable containing the list of common source files in
GNUmakefile. So we now also see clearly files that are specific to
each program.

Split module "histcom". Assembled resulting files in directory
"Histcom".

Removed aliasing in calls to "laplacien".

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

Properties

Name Value
svn:executable

  ViewVC Help
Powered by ViewVC 1.1.21