source: codes/icosagcm/branches/SATURN_DYNAMICO/ICOSAGCM/src/etat0_start_file.f90 @ 268

Last change on this file since 268 was 262, checked in by ymipsl, 10 years ago

Save starting iteration itau0 in dynamico restart file.
Timeloop now begin from itau0 which can be read from start file or set to 0 by default.

YM

File size: 2.1 KB
Line 
1MODULE etat0_start_file_mod
2
3
4
5
6CONTAINS
7 
8   
9  SUBROUTINE etat0(f_ps,f_phis,f_theta_rhodz,f_u, f_q)
10  USE icosa
11  USE restart_mod
12  USE wind_mod
13  USE write_field
14  USE time_mod
15  USE transfert_mod
16  IMPLICIT NONE
17    TYPE(t_field),POINTER :: f_ps(:)
18    TYPE(t_field),POINTER :: f_phis(:)
19    TYPE(t_field),POINTER :: f_theta_rhodz(:)
20    TYPE(t_field),POINTER :: f_u(:)
21    TYPE(t_field),POINTER :: f_q(:)
22 
23    TYPE(t_field),POINTER,SAVE :: f_ulon(:)
24    TYPE(t_field),POINTER,SAVE :: f_ulat(:)
25
26    LOGICAL :: etat0_start_file_colocated=.FALSE.
27    INTEGER :: ind
28
29      CALL getin("etat0_start_file_colocated",etat0_start_file_colocated) 
30
31      IF (.NOT. etat0_start_file_colocated) THEN   
32        CALL allocate_field(f_ulon,field_t,type_real,llm,name='ulon')
33        CALL allocate_field(f_ulat,field_t,type_real,llm,name='ulat')
34        CALL read_start(itau0,f_ps,f_phis,f_theta_rhodz,f_u, f_q)
35        CALL transfert_request(f_ps,req_i1)
36        CALL transfert_request(f_phis,req_i1)
37        CALL transfert_request(f_theta_rhodz,req_i1)
38        CALL transfert_request(f_q,req_i1)
39        CALL transfert_request(f_u,req_e1_vect)
40        CALL transfert_request(f_u,req_e0_vect)
41        CALL un2ulonlat(f_u,f_ulon,f_ulat)
42
43        CALL deallocate_field(f_ulon)
44        CALL deallocate_field(f_ulat)
45
46      ELSE
47        CALL allocate_field(f_ulon,field_t,type_real,llm,name='ulon')
48        CALL allocate_field(f_ulat,field_t,type_real,llm,name='ulat')
49        CALL read_start(itau0,f_ps,f_phis,f_theta_rhodz,f_ulon,f_ulat, f_q)
50        CALL transfert_request(f_ulat,req_i1)
51        CALL transfert_request(f_ulon,req_i1)
52
53        CALL ulonlat2un(f_ulon,f_ulat,f_u)
54
55        CALL transfert_request(f_ps,req_i1)
56        CALL transfert_request(f_phis,req_i1)
57        CALL transfert_request(f_theta_rhodz,req_i1)
58        CALL transfert_request(f_q,req_i1)
59        CALL transfert_request(f_u,req_e1_vect)
60       
61        CALL deallocate_field(f_ulon)
62        CALL deallocate_field(f_ulat)
63      ENDIF
64
65      CALL bcast(itau0)
66      CALL getin("etat0_start_iteration",itau0)       
67
68  END SUBROUTINE etat0
69 
70 
71END MODULE etat0_start_file_mod
Note: See TracBrowser for help on using the repository browser.