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

Annotation of /trunk/dyn3d/conf_gcm.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 27 - (hide 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 guez 3 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 guez 25 ! période de sortie des variables de contrôle (en pas de temps)
22 guez 3
23     integer:: iecri= 1 ! période d'écriture du fichier "dyn_hist.nc" (en jours)
24    
25     integer:: iphysiq= 5
26 guez 25 ! Période de la physique en pas de temps de la dynamique.
27 guez 3
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 guez 15 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 guez 3
38     REAL:: periodav= 1.
39     ! periode de stockage fichier histmoy (en jour)
40    
41 guez 12 logical:: offline = .FALSE.
42     ! Nouvelle eau liquide
43     ! Permet de mettre en route la nouvelle parametrisation de l'eau liquide
44 guez 3
45     contains
46    
47 guez 13 SUBROUTINE conf_gcm
48 guez 3
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 guez 12 use logic, only: read_logic
60 guez 3 use serre, only: clon, clat, grossismx, grossismy, alphax, alphay, &
61     dzoomx, dzoomy, taux, tauy
62 guez 12 use iniprint, only: read_iniprint
63 guez 3
64     namelist /conf_gcm_nml/dayref, anneeref, raz_date, nday, day_step, &
65 guez 26 iperiod, iapp_tracvl, iconser, iecri, periodav, &
66 guez 13 iphysiq, clon, clat, grossismx, grossismy, dzoomx, dzoomy, taux, &
67     tauy, offline
68 guez 3
69     !------------------------------------
70    
71     print *, "Call sequence information: conf_gcm"
72 guez 12
73 guez 3 call read_iniprint
74 guez 12 call read_logic
75     call read_comdissnew
76 guez 3
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