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

Annotation of /trunk/dyn3d/conf_gcm.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 15 - (hide annotations)
Fri Aug 1 15:24:12 2008 UTC (15 years, 9 months ago) by guez
Original Path: trunk/libf/dyn3d/conf_gcm.f90
File size: 3099 byte(s)
-- Minor modification of input/output:

Added variable "Sigma_O3_Royer" to "histday.nc". "ecrit_day" is not
modified in "physiq". Removed variables "pyu1", "pyv1", "ftsol1",
"ftsol2", "ftsol3", "ftsol4", "psrf1", "psrf2", "psrf3", "psrf4"
"mfu", "mfd", "en_u", "en_d", "de_d", "de_u", "coefh" from
"histrac.nc".

Variable "raz_date" of module "conf_gcm_m" has logical type instead of
integer type.

-- Should not change any result at run time:

Modified calls to "IOIPSL_Lionel" procedures because the interfaces of
these procedures have been simplified.

Changed name of variable in module "start_init_orog_m": "masque" to
"mask".

Created a module containing procedure "phyredem".

Removed arguments "punjours", "pdayref" and "ptimestep" of procedure
"iniphysiq".

Renamed procedure "gr_phy_write" to "gr_phy_write_2d". Created
procedure "gr_phy_write_3d".

Removed procedures "ini_undefstd", "moy_undefSTD", "calcul_STDlev",
"calcul_divers".

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 guez 15 logical:: raz_date = .false.
37     ! (remise a zero de la date initiale, prise en compte de la date de
38     ! gcm.def avec remise a zero des compteurs de pas de temps)
39     ! (pas de remise a zero: on garde la date du fichier restart)
40 guez 3
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