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

Contents of /trunk/dyn3d/conf_gcm.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 25 - (show annotations)
Fri Mar 5 16:43:45 2010 UTC (14 years, 2 months ago) by guez
Original Path: trunk/libf/dyn3d/conf_gcm.f90
File size: 3088 byte(s)
Simplified "etat0_lim.sh" and "gcm.sh" because the full versions
depended on personal arrangements for directories and machines.

Translated included files into modules. Encapsulated procedures into modules.

Moved variables from module "comgeom" to local variables of
"inigeom". Deleted some unused variables in "comgeom".

Moved variable "day_ini" from module "temps" to module "dynetat0_m".

Removed useless test on variable "time" and useless "close" statement
in procedure "leapfrog".

Removed useless call to "inigeom" in procedure "limit".

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

  ViewVC Help
Powered by ViewVC 1.1.21