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

Contents of /trunk/dyn3d/conf_gcm.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 13 - (show 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 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 logical:: offline = .FALSE.
45 ! Nouvelle eau liquide
46 ! Permet de mettre en route la nouvelle parametrisation de l'eau liquide
47
48 contains
49
50 SUBROUTINE conf_gcm
51
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 use logic, only: read_logic
66 use serre, only: clon, clat, grossismx, grossismy, alphax, alphay, &
67 dzoomx, dzoomy, taux, tauy
68 use iniprint, only: read_iniprint
69
70 namelist /conf_gcm_nml/dayref, anneeref, raz_date, nday, day_step, &
71 iperiod, iapp_tracvl, iconser, iecri, periodav, idissip, &
72 iphysiq, clon, clat, grossismx, grossismy, dzoomx, dzoomy, taux, &
73 tauy, offline
74
75 !------------------------------------
76
77 print *, "Call sequence information: conf_gcm"
78
79 call read_iniprint
80 call read_logic
81 call read_comdissnew
82
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