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

Annotation of /trunk/Sources/dyn3d/conf_gcm.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 13 - (hide annotations)
Fri Jul 25 19:59:34 2008 UTC (15 years, 10 months ago) by guez
Original Path: trunk/libf/dyn3d/conf_gcm.f90
File size: 3094 byte(s)
-- Minor change of behaviour:

"etat0" does not compute "rugsrel" nor "radpas". Deleted arguments
"radpas" and "rugsrel" of "phyredem". Deleted argument "rugsrel" of
"phyetat0". "startphy.nc" does not contain the variable "RUGSREL". In
"physiq", "rugoro" is set to 0 if not "ok_orodr". The whole program
"etat0_lim" does not use "clesphys2".

-- Minor modification of input/output:

Created subroutine "read_clesphys2". Variables of "clesphys2" are read
in "read_clesphys2" instead of "conf_gcm". "printflag" does not print
variables of "clesphys2".

-- Should not change any result at run time:

References to module "numer_rec" instead of individual modules of
"Numer_rec_Lionel".

Deleted argument "clesphy0" of "calfis", "physiq", "conf_gcm",
"leapfrog", "phyetat0". Deleted variable "clesphy0" in
"gcm". "phyetat0" does not modify variables of "clesphys2".

The program unit "gcm" does not modify "itau_phy".

Added some "intent" attributes.

"regr11_lint" does not call "polint".

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     ! periode de sortie des variables de controle
22     ! (En pas de temps)
23    
24     integer:: iecri= 1 ! période d'écriture du fichier "dyn_hist.nc" (en jours)
25    
26     integer:: idissip= 10 ! periode de la dissipation (en pas)
27    
28     integer:: iphysiq= 5
29     ! Help = Periode de la physique en pas de temps de la dynamique.
30    
31     integer:: dayref = 1 ! jour de l'année de l'état initial
32     ! (= 350 si 20 décembre par exemple)
33    
34     integer:: anneeref = 1998 ! Annee de l'etat initial (avec 4 chiffres)
35    
36     integer:: raz_date = 0 ! Remise a zero de la date initiale
37     ! 0 pas de remise a zero, on garde la date du fichier restart
38     ! 1 prise en compte de la date de gcm.def avec remise a zero
39     ! des compteurs de pas de temps
40    
41     REAL:: periodav= 1.
42     ! periode de stockage fichier histmoy (en jour)
43    
44 guez 12 logical:: offline = .FALSE.
45     ! Nouvelle eau liquide
46     ! Permet de mettre en route la nouvelle parametrisation de l'eau liquide
47 guez 3
48     contains
49    
50 guez 13 SUBROUTINE conf_gcm
51 guez 3
52     ! Auteurs : L. Fairhead, P. Le Van
53     ! Version du 29/04/97
54    
55     ! Nouveaux paramètres nitergdiv, nitergrot, niterh, tetagdiv, tetagrot,
56     ! tetatemp ajoutés pour la dissipation.
57    
58     ! On ne compare pas les valeurs des paramètres du zoom, grossismx,
59     ! grossismy, clon, clat, fxyhypb lues sur le fichier start avec
60     ! celles passées par run.def, au début du gcm.
61     ! Ces paramètres définissent entre autres la grille et doivent être
62     ! cohérents, sinon il y aura divergence du gcm.
63    
64     use comdissnew, only: read_comdissnew
65 guez 12 use logic, only: read_logic
66 guez 3 use serre, only: clon, clat, grossismx, grossismy, alphax, alphay, &
67     dzoomx, dzoomy, taux, tauy
68 guez 12 use iniprint, only: read_iniprint
69 guez 3
70     namelist /conf_gcm_nml/dayref, anneeref, raz_date, nday, day_step, &
71 guez 12 iperiod, iapp_tracvl, iconser, iecri, periodav, idissip, &
72 guez 13 iphysiq, clon, clat, grossismx, grossismy, dzoomx, dzoomy, taux, &
73     tauy, offline
74 guez 3
75     !------------------------------------
76    
77     print *, "Call sequence information: conf_gcm"
78 guez 12
79 guez 3 call read_iniprint
80 guez 12 call read_logic
81     call read_comdissnew
82 guez 3
83     print *, "Enter namelist 'conf_gcm_nml'."
84     read(unit=*, nml=conf_gcm_nml)
85     write(unit=*, nml=conf_gcm_nml)
86    
87     IF (grossismx < 1.) THEN
88     PRINT *, 'Error: grossismx < 1'
89     STOP 1
90     ELSE
91     alphax = 1. - 1. / grossismx
92     ENDIF
93     IF (grossismy < 1.) THEN
94     PRINT *, 'Error: grossismy < 1'
95     STOP 1
96     ELSE
97     alphay = 1. - 1. / grossismy
98     ENDIF
99     PRINT *, 'alphax = ', alphax
100     PRINT *, 'alphay = ', alphay
101    
102     END SUBROUTINE conf_gcm
103    
104     end module conf_gcm_m

  ViewVC Help
Powered by ViewVC 1.1.21