/[lmdze]/trunk/dyn3d/conf_gcm.f
ViewVC logotype

Contents of /trunk/dyn3d/conf_gcm.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 27 - (show annotations)
Thu Mar 25 14:29:07 2010 UTC (14 years, 2 months ago) by guez
Original Path: trunk/libf/dyn3d/conf_gcm.f90
File size: 2895 byte(s)
"dyn3d" and "filtrez" do not contain any included file so make rules
have been updated.

"comdissip.f90" was useless, removed it.

"dynredem0" wrote undefined value in "controle(31)", that was
overwritten by "dynredem1". Now "dynredem0" just writes 0 to
"controle(31)".

Removed arguments of "inidissip". "inidissip" now accesses the
variables by use association.

In program "etat0_lim", "itaufin" is not defined so "dynredem1" wrote
undefined value to "controle(31)". Added argument "itau" of
"dynredem1" to correct that.

"itaufin" does not need to be a module variable (of "temps"), made it
a local variable of "leapfrog".

Removed calls to "diagedyn" from "leapfrog".

1 module conf_gcm_m
2
3 ! This module is clean: no C preprocessor directive, no include line
4
5 IMPLICIT NONE
6
7 INTEGER:: nday= 10
8 ! Nombre de jours d'integration
9 ! On pourait aussi permettre des mois ou des annees !
10
11 integer:: day_step= 240 ! nombre de pas par jour, multiple de iperiod
12
13 integer:: iperiod= 5
14 ! periode pour le pas Matsuno (en pas de temps)
15
16 integer:: iapp_tracvl= 5
17 ! Should normally be equal to "iperiod"
18 ! frequence du groupement des flux (en pas de temps)
19
20 integer:: iconser= 240
21 ! période de sortie des variables de contrôle (en pas de temps)
22
23 integer:: iecri= 1 ! période d'écriture du fichier "dyn_hist.nc" (en jours)
24
25 integer:: iphysiq= 5
26 ! Période de la physique en pas de temps de la dynamique.
27
28 integer:: dayref = 1 ! jour de l'année de l'état initial
29 ! (= 350 si 20 décembre par exemple)
30
31 integer:: anneeref = 1998 ! Annee de l'etat initial (avec 4 chiffres)
32
33 logical:: raz_date = .false.
34 ! (remise a zero de la date initiale, prise en compte de la date de
35 ! gcm.def avec remise a zero des compteurs de pas de temps)
36 ! (pas de remise a zero: on garde la date du fichier restart)
37
38 REAL:: periodav= 1.
39 ! periode de stockage fichier histmoy (en jour)
40
41 logical:: offline = .FALSE.
42 ! Nouvelle eau liquide
43 ! Permet de mettre en route la nouvelle parametrisation de l'eau liquide
44
45 contains
46
47 SUBROUTINE conf_gcm
48
49 ! Auteurs : L. Fairhead, P. Le Van
50 ! Version du 29/04/97
51
52 ! On ne compare pas les valeurs des paramètres du zoom, grossismx,
53 ! grossismy, clon, clat, fxyhypb lues sur le fichier start avec
54 ! celles passées par run.def, au début du gcm.
55 ! Ces paramètres définissent entre autres la grille et doivent être
56 ! cohérents, sinon il y aura divergence du gcm.
57
58 use comdissnew, only: read_comdissnew
59 use logic, only: read_logic
60 use serre, only: clon, clat, grossismx, grossismy, alphax, alphay, &
61 dzoomx, dzoomy, taux, tauy
62 use iniprint, only: read_iniprint
63
64 namelist /conf_gcm_nml/dayref, anneeref, raz_date, nday, day_step, &
65 iperiod, iapp_tracvl, iconser, iecri, periodav, &
66 iphysiq, clon, clat, grossismx, grossismy, dzoomx, dzoomy, taux, &
67 tauy, offline
68
69 !------------------------------------
70
71 print *, "Call sequence information: conf_gcm"
72
73 call read_iniprint
74 call read_logic
75 call read_comdissnew
76
77 print *, "Enter namelist 'conf_gcm_nml'."
78 read(unit=*, nml=conf_gcm_nml)
79 write(unit=*, nml=conf_gcm_nml)
80
81 IF (grossismx < 1.) THEN
82 PRINT *, 'Error: grossismx < 1'
83 STOP 1
84 ELSE
85 alphax = 1. - 1. / grossismx
86 ENDIF
87 IF (grossismy < 1.) THEN
88 PRINT *, 'Error: grossismy < 1'
89 STOP 1
90 ELSE
91 alphay = 1. - 1. / grossismy
92 ENDIF
93 PRINT *, 'alphax = ', alphax
94 PRINT *, 'alphay = ', alphay
95
96 END SUBROUTINE conf_gcm
97
98 end module conf_gcm_m

  ViewVC Help
Powered by ViewVC 1.1.21