source: CONFIG/publications/ICOLMDZORINCA_CO2_Transport_GMD_2023/INCA/src/INCA_SRC/xios_chem_read_restart.F90 @ 6610

Last change on this file since 6610 was 6610, checked in by acosce, 10 months ago

INCA used for ICOLMDZORINCA_CO2_Transport_GMD_2023

File size: 4.3 KB
Line 
1!Programme permettant de lire le fichier chemrestart.nc ou est stocké flux:
2
3#include <inca_define.h>
4 
5SUBROUTINE xios_chem_read_restart(init_source, init_tauinca, init_pizinca, init_cginca, init_ccm)
6
7  USE SPECIES_NAMES
8  USE INCA_DIM
9  USE SFLX
10  USE PRINT_INCA
11  USE MOD_INCA_PARA
12  USE MOD_INCA_TRANSFERT_PARA
13  USE XIOS_INCA
14
15  USE CHEM_MODS, ONLY : invariants, hrates_cv, h2oc
16  USE AIRPLANE_SRC, ONLY : itrop
17  USE RATE_INDEX_MOD
18  USE AEROSOL_DIAG, ONLY :  mrfname, naero_grp
19
20
21  IMPLICIT NONE
22
23  INCLUDE 'netcdf.inc'
24
25  REAL, DIMENSION(PLON,PCNST),INTENT(OUT) :: init_source
26  REAL, DIMENSION(PLON,PLEV,naero_grp,2),INTENT(OUT) :: init_tauinca
27  REAL, DIMENSION(PLON,PLEV,naero_grp,2),INTENT(OUT) :: init_pizinca
28  REAL, DIMENSION(PLON,PLEV,naero_grp,2),INTENT(OUT) :: init_cginca
29  REAL, DIMENSION(PLON,PLEV,2),INTENT(OUT) :: init_ccm
30
31  INTEGER :: i,iretrest,ncidrest
32  logical, save :: first = .TRUE. 
33!$OMP THREADPRIVATE(first)
34  LOGICAL, SAVE :: restart = .FALSE.
35!$OMP THREADPRIVATE(restart)
36
37
38
39!$OMP MASTER
40  if (is_mpi_root .and. first) then
41     INQUIRE(FILE="chem_start.nc",EXIST=restart)
42  endif
43!$OMP END MASTER
44  call bcast(restart) 
45
46  write(lunout,*) "dans xios_chem_read_restart", restart
47
48
49
50
51  CALL xios_inca_change_context("inca")
52
53  if (first .and. restart ) then 
54!     if (grid_type == regular_lonlat) THEN
55
56        DO i=1,PCNST
57           write(lunout,*) "source"//trim(tracnam(i))//"_read"
58           CALL xios_inca_recv_field("source"//trim(tracnam(i))//"_read", init_source(:,i)) 
59        END DO
60        write(lunout,*) 'lecture de invariants '
61       
62        ! for invariants
63        DO i=1, NFS
64           CALL xios_inca_recv_field("inv_"//trim(invname(i))//"_read", invariants(:,:,i)) 
65        ENDDO
66
67#ifdef AER
68        write(lunout,*) 'lecture des var pour la radiation  '
69        ! for radiation
70        DO i=1, naero_grp
71           
72           CALL xios_inca_recv_field("tau_inca1_"//trim(mrfname(i))//"_read", init_tauinca(:,:,i,1))
73           
74           CALL xios_inca_recv_field("tau_inca2_"//trim(mrfname(i))//"_read", init_tauinca(:,:,i,2))
75           
76           CALL xios_inca_recv_field("piz_inca1_"//trim(mrfname(i))//"_read", init_pizinca(:,:,i,1))
77
78           CALL xios_inca_recv_field("piz_inca2_"//trim(mrfname(i))//"_read", init_pizinca(:,:,i,2))
79
80           CALL xios_inca_recv_field("cg_inca1_"//trim(mrfname(i))//"_read", init_cginca(:,:,i,1))
81
82           CALL xios_inca_recv_field("cg_inca2_"//trim(mrfname(i))//"_read", init_cginca(:,:,i,2))
83           
84        ENDDO
85        write(lunout,*) 'lecture de ccm '
86             
87        CALL xios_inca_recv_field("ccm1_read", init_ccm(:,:,1)) 
88        CALL xios_inca_recv_field("ccm2_read", init_ccm(:,:,2)) 
89
90
91#endif
92!     ELSE IF (grid_type == unstructured) THEN
93!
94!        DO i=1,PCNST
95!           write(lunout,*) "source"//trim(tracnam(i))//"_interp"
96!           CALL xios_inca_recv_field("source"//trim(tracnam(i))//"_interp", init_source(:,i))
97!        END DO
98!        write(lunout,*) 'lecture de invariants '
99!       
100!        ! for invariants
101!        DO i=1, NFS
102!           CALL xios_inca_recv_field("inv_"//trim(invname(i))//"_interp", invariants(:,:,i))
103!        ENDDO
104!
105!#ifdef AER
106!        write(lunout,*) 'lecture des var pour la radiation  '
107!        ! for radiation
108!        DO i=1, naero_grp
109!           
110!           CALL xios_inca_recv_field("tau_inca1_"//trim(mrfname(i))//"_interp", init_tauinca(:,:,i,1))
111!           
112!           CALL xios_inca_recv_field("tau_inca2_"//trim(mrfname(i))//"_interp", init_tauinca(:,:,i,2))
113!           
114!           CALL xios_inca_recv_field("piz_inca1_"//trim(mrfname(i))//"_interp", init_pizinca(:,:,i,1))
115!
116!           CALL xios_inca_recv_field("piz_inca2_"//trim(mrfname(i))//"_interp", init_pizinca(:,:,i,2))
117!
118!           CALL xios_inca_recv_field("cg_inca1_"//trim(mrfname(i))//"_interp", init_cginca(:,:,i,1))
119!
120!           CALL xios_inca_recv_field("cg_inca2_"//trim(mrfname(i))//"_interp", init_cginca(:,:,i,2))
121!           
122!        ENDDO
123!        write(lunout,*) 'lecture de ccm '
124!             
125!        CALL xios_inca_recv_field("ccm1_interp", init_ccm(:,:,1))
126!        CALL xios_inca_recv_field("ccm2_interp", init_ccm(:,:,2))
127!
128!
129!#endif
130!
131!
132
133!     ENDIF
134
135     first = .FALSE. 
136  endif
137
138
139
140!  CALL xios_inca_change_context("LMDZ")
141
142
143END SUBROUTINE xios_chem_read_restart
144
145
146
147
148 
Note: See TracBrowser for help on using the repository browser.