source: branches/GRISLIv3/SOURCES/initial-phy-2.f90

Last change on this file was 485, checked in by aquiquet, 4 months ago

Cleaning branch: some minor cleaning + remove local isostasy computation (flag nlith)

File size: 6.2 KB
Line 
1!> \file initial-phy-2.f90
2!! Initialisation des parametres physique du modele
3!<
4
5!> SUBROUTINE: initial_phy
6!! Subroutine qui initialise les parametres physique du modele
7!! \author ...
8!! \date ...
9!! @note Used modules:
10!! @note    - module3D_phy
11!!
12!<
13subroutine initial_phy
14
15  !     **************************************************
16  !     **         initialisation                        *
17  !     *                                                *
18  !     **************************************************
19
20  use module3D_phy, only:icompteur,iout,reprcptr,igrdline,schoof,ibmelt_inv,dtmin,dtmax,&
21       dtt,testdiag,num_param,num_rep_42,num_ritz,dt,ntmax,time,tafor,sealevel,&
22       sealevel_2d,secyear,isynchro
23  use geography, only: geoplace
24  use runparam, only :runname,itracebug,num_tracebug,tbegin,tend,dirsource,dirnameout,nt
25
26
27  implicit none
28
29  character(len=80) :: filin
30  character(len=80) :: comment_run
31
32  namelist/runpar/runname,icompteur,iout,reprcptr,itracebug,num_tracebug,comment_run
33  namelist/grdline/igrdline,Schoof,ibmelt_inv
34  namelist/timesteps/dtmin,dtmax,dtt,testdiag,tbegin,tend
35
36
37  ! ouverture du fichier parametre ..._param_list.dat
38  !--------------------------------------------------------------
39  dirsource='../SOURCES'
40  filin=trim(geoplace)//'_param_list.dat'
41
42  open(num_param,file=filin) 
43
44
45  ! lecture des parametres du run                          block runpar
46  !--------------------------------------------------------------------
47
48  rewind(num_param)        ! pour revenir au debut du fichier param_list.dat
49  read(num_param,runpar)
50
51!  filin='../Param/param'//runname
52  filin='param'//runname
53  open(num_rep_42,file=filin)
54
55  ! reecriture des parametres entres dans le fichier 42
56  !------------------------------------------------------
57  write(num_rep_42,*)'!  Parametres du run :',runname, '    ',geoplace
58  write(num_rep_42,*)'!  sources dans  ',trim(dirsource)
59  write(num_rep_42,*)
60  write(num_rep_42,'(A)')'!___________________________________________________________' 
61  write(num_rep_42,'(A)') '&runpar                  ! nom du bloc  parametres du run'
62  write(num_rep_42,*)
63  write(num_rep_42,*) 'runname      =  "',runname,'"'
64  write(num_rep_42,*) 'icompteur    = ', icompteur                             
65  write(num_rep_42,*) 'iout         = ', iout 
66  write(num_rep_42,*) 'reprcptr     = "',trim(reprcptr),'"'
67  write(num_rep_42,*) 'itracebug    = ', itracebug
68  write(num_rep_42,*) 'num_tracebug  = ', num_tracebug
69  write(num_rep_42,*) 'comment_run   = "',trim(comment_run),'"'
70  write(num_rep_42,*)'/'                           
71  write(num_rep_42,'(A)') '! runname    : nom de l experience (8 caracteres)  '
72  write(num_rep_42,'(A)') '! icompteur  : reprise dans un fichier  0 -> non, 1 -> oui, 2 -> T et Hw'
73  write(num_rep_42,'(A)') '! icompteur  : 3-> T seulement'
74  write(num_rep_42,'(A)') '! iout   : 1-> sortie cptr pour reprise,2 -> sortie nc pour reprise '
75  write(num_rep_42,'(A)') '! reprcptr   : nom du fichier restart'
76  write(num_rep_42,'(A)') '! itracebug: 1-> ecriture de traces au debut des routines'
77  write(num_rep_42,'(A)') '! num_tracebug   numero d unite ecriture traces'
78  write(num_rep_42,'(A)') '! comment_run: commentaire court sur le run'
79
80  write(num_rep_42,*)
81
82
83  write(6,*)'_________________________________________________'
84  write(6,*)'runname=',runname
85
86
87  ! ouverture du fichier short
88  !------------------------------
89
90
91  filin='short'//runname//'.ritz'
92  filin=TRIM(DIRNAMEOUT)//TRIM(filin)
93
94  open(num_ritz,file=filin)
95
96
97
98  ! lecture des parametres du run                          block grdline
99  !--------------------------------------------------------------------
100
101
102  rewind(num_param)        ! pour revenir au debut du fichier param_list.dat
103  read(num_param,grdline)
104
105
106  write(num_rep_42,'(A)')'!___________________________________________________________' 
107  write(num_rep_42,'(A)') '&grdline                 ! bloc grounding line'
108  write(num_rep_42,*)
109  write(num_rep_42,*) 'igrdline     = ',igrdline
110  write(num_rep_42,*) 'Schoof       = ',Schoof
111  write(num_rep_42,*) 'ibmelt_inv   = ',ibmelt_inv
112  write(num_rep_42,*)'/'                           
113  write(num_rep_42,'(A)')'! igrdline   : 1 ligne d echouage fixée, sinon 0'
114  write(num_rep_42,'(A)')'! Schoof     : 0 pas de Schoof, 1 flux de Schoof'
115  write(num_rep_42,'(A)')'! ibmelt_inv : 0 cas std, 1 inversion du bmelt (avec igrdline=1)'
116  write(num_rep_42,*)
117
118
119  ! lecture des parametres du run                          block timesteps
120  !-----------------------------------------------------------------------
121  rewind(num_param)        ! pour revenir au debut du fichier param_list.dat
122  read(num_param,timesteps)
123
124  write(num_rep_42,'(A)')'!___________________________________________________________' 
125  write(num_rep_42,'(A)') '&timesteps                 ! bloc time steps'
126  write(num_rep_42,*)
127  write(num_rep_42,*) 'tend      = ',tend
128  write(num_rep_42,*) 'tbegin    = ',tbegin
129  write(num_rep_42,*) 'dtmin     = ',dtmin
130  write(num_rep_42,*) 'dtmax     = ',dtmax
131  write(num_rep_42,*) 'dtt       = ',dtt
132  write(num_rep_42,*) 'testdiag  = ',testdiag
133
134
135  write(num_rep_42,*)'/'                           
136  write(num_rep_42,'(A)')'! tous les temps en annees. tbegin et tend : debut et fin du run '
137  write(num_rep_42,'(A)')'! pour equation masse, pas de temps mini -> dtmin, maxi -> dtmax'     
138  write(num_rep_42,'(A)')'! dtt : pas de temps long'
139  write(num_rep_42,'(A)')'! testdiag, pour gérer le pas de temps dynamique dt'
140  write(num_rep_42,'(A)')'! ordres de grandeur (a moduler selon dx) : '
141  write(num_rep_42,'(A)')'! 40 km dtmin=2.e-2, dtmax=1., dtt=5., tesdiag=0.02'
142
143  write(num_rep_42,*)
144
145
146  !      si shelf rapide
147  !        testdiag=0.016
148
149  !---------------------------------------------------------------------
150  dt=dtmin           ! sera réattribue a chaque pas de temps
151  ntmax=90000000     ! nombre de tours maxi dans la boucle temps
152  time=tbegin 
153  nt=-1
154
155
156
157  ! ----------------parametres dont le traitement en namelist est remis a plus tard
158
159
160  ! Tous les parametres liés à l'ablation devraient être dans un module ablation
161  ! A changer plus tard
162
163  !     temperature forcing : annual, july.
164  TAFOR=0.
165  SEALEVEL=0.0
166  sealevel_2d(:,:)=0.
167
168!  SECYEAR=365.*24.*3600.
169  secyear= 31556926 ! s /an
170
171  !---------------------
172
173  !     switch
174  isynchro=0
175
176
177end subroutine initial_phy
Note: See TracBrowser for help on using the repository browser.