source: CONFIG/publications/ICOLMDZORINCA_CO2_Transport_GMD_2023/INCA/src/INCA_SRC/ini_diagnostics.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: 28.8 KB
Line 
1!! =========================================================================
2!! INCA - INteraction with Chemistry and Aerosols
3!!
4!! Copyright Laboratoire des Sciences du Climat et de l'Environnement (LSCE)
5!!           Unite mixte CEA-CNRS-UVSQ
6!!
7!! Contributors to this INCA subroutine:
8!!
9!! Anne Cozic, LSCE, anne.cozic@lsce.ipsl.fr
10!! Didier Hauglustaine, 11/2013.
11!!
12!! This software is a computer program whose purpose is to simulate the
13!! atmospheric gas phase and aerosol composition. The model is designed to be
14!! used within a transport model or a general circulation model. This version
15!! of INCA was designed to be coupled to the LMDz GCM. LMDz-INCA accounts
16!! for emissions, transport (resolved and sub-grid scale), photochemical
17!! transformations, and scavenging (dry deposition and washout) of chemical
18!! species and aerosols interactively in the GCM. Several versions of the INCA
19!! model are currently used depending on the envisaged applications with the
20!! chemistry-climate model.
21!!
22!! This software is governed by the CeCILL  license under French law and
23!! abiding by the rules of distribution of free software.  You can  use,
24!! modify and/ or redistribute the software under the terms of the CeCILL
25!! license as circulated by CEA, CNRS and INRIA at the following URL
26!! "http://www.cecill.info".
27!!
28!! As a counterpart to the access to the source code and  rights to copy,
29!! modify and redistribute granted by the license, users are provided only
30!! with a limited warranty  and the software's author,  the holder of the
31!! economic rights,  and the successive licensors  have only  limited
32!! liability.
33!!
34!! In this respect, the user's attention is drawn to the risks associated
35!! with loading,  using,  modifying and/or developing or reproducing the
36!! software by the user in light of its specific status of free software,
37!! that may mean  that it is complicated to manipulate,  and  that  also
38!! therefore means  that it is reserved for developers  and  experienced
39!! professionals having in-depth computer knowledge. Users are therefore
40!! encouraged to load and test the software's suitability as regards their
41!! requirements in conditions enabling the security of their systems and/or
42!! data to be ensured and,  more generally, to use and operate it in the
43!! same conditions as regards security.
44!!
45!! The fact that you are presently reading this means that you have had
46!! knowledge of the CeCILL license and that you accept its terms.
47!! =========================================================================
48#include <inca_define.h>
49
50#ifdef AER
51SUBROUTINE ini_diagnos(pdtphys, anne_ref, day_ref, longcm, latgcm, &
52   presnivs, itau_phy)
53
54  USE IOIPSL
55  USE INCA_DIM
56  USE AEROSOL_DIAG
57  USE MOD_INCA_PARA
58  USE MOD_GRID_INCA
59  IMPLICIT NONE
60
61!-----------------------------------------------------------------------------
62! Dummy arguments
63!-----------------------------------------------------------------------------
64  REAL, INTENT(in) :: pdtphys      ! physics integration time step (s)
65  INTEGER, INTENT(in) :: anne_ref  ! simulation start year
66  INTEGER, INTENT(in) :: day_ref   ! simulation start day
67  REAL, INTENT(in) :: longcm(PLON) ! physics columns longitudes (gcm)
68  REAL, INTENT(in) :: latgcm(PLON) ! physics columns latitudes (gcm)
69  REAL, INTENT(in) :: presnivs(PLEV) !middle layer pressure(PA)
70  INTEGER, INTENT(in) :: itau_phy
71
72
73  !----------------------------------------------------------------------------
74  ! Local arguments
75  !----------------------------------------------------------------------------
76  CHARACTER(len=15) :: filename ! file name
77  INTEGER :: file_id
78  INTEGER :: grid_id        ! horizontal grid ID
79  INTEGER :: vert_id        ! vertical axe ID
80  REAL :: zjulian
81  REAL :: zx_lon(iim_glo,jj_nb)  ! record grid points longitudes
82  REAL :: zx_lat(iim_glo,jj_nb)  ! record grid points latitudes
83  REAL :: zx_lon_glo(iim_glo,jjm_glo)  ! record grid points longitudes
84  REAL :: zx_lat_glo(iim_glo,jjm_glo)  ! record grid points latitudes
85  REAL ::zsto               ! variable s storage time step (s)
86  REAL ::zout               ! variable s record time step (s)
87  REAL, dimension(PLON_GLO) :: lonlatgcm_glo_oth ! physics columns longitudes (gcm)
88
89
90  filename='forcage'
91
92
93  CALL ymds2ju(anne_ref, 1, day_ref, 0.0, zjulian)
94 
95  CALL gather(longcm, lonlatgcm_glo_oth)
96!$OMP MASTER
97  IF (is_mpi_root) CALL grid1dTo2d_glo(lonlatgcm_glo_oth, zx_lon_glo)
98!$OMP END MASTER
99  CALL bcast(zx_lon_glo)
100  zx_lon_glo(2:,1)=zx_lon_glo(1,1)
101  zx_lon_glo(2:,jjm_glo)=zx_lon_glo(1,jjm_glo)
102  zx_lon(:,1:jj_nb)=zx_lon_glo(:,jj_begin:jj_end)
103 
104  CALL gather(latgcm, lonlatgcm_glo_oth)
105!$OMP MASTER
106  IF (is_mpi_root) CALL grid1dTo2d_glo(lonlatgcm_glo_oth, zx_lat_glo)
107!$OMP END MASTER
108  CALL bcast(zx_lat_glo)
109  zx_lat_glo(2:,1)=zx_lat_glo(1,1)
110  zx_lat_glo(2:,jjm_glo)=zx_lat_glo(1,jjm_glo)
111  zx_lat(:,1:jj_nb)=zx_lat_glo(:,jj_begin:jj_end)
112     
113  zsto = pdtphys
114  zout=PRINTSTEP
115
116
117!$OMP MASTER
118
119  CALL histbeg(filename, iim_glo, zx_lon(:,2), jj_nb, zx_lat(1,:), 1, iim_glo,1, &
120     jj_nb, itau_phy, zjulian, pdtphys, grid_id, file_id,domain_id=inca_domain_id)
121
122  CALL histvert(file_id, "presnivs", "presnivs", "mb", PLEV, presnivs, vert_id)
123 
124  CALL histdef(file_id,"taucld","cloud opt thickness","-",iim_glo,jj_nb,grid_id,PLEV,1,PLEV,vert_id,32,"ave(X)",zsto,zout)
125  CALL histdef(file_id,"CCM1","CCM1","",iim_glo,jj_nb,grid_id,PLEV,1,PLEV,vert_id,32,"ave(X)",zsto,zout)
126  CALL histdef(file_id,"CCM2","CCM2","",iim_glo,jj_nb,grid_id,PLEV,1,PLEV,vert_id,32,"ave(X)",zsto,zout)
127  CALL histdef(file_id,"taucldpi","cloud opt thickn. (pi)","-",iim_glo,jj_nb,grid_id,PLEV,1,PLEV,vert_id,32,"ave(X)",zsto,zout)
128  CALL histdef(file_id,"cldemi","emissivite IR","-",iim_glo,jj_nb,grid_id,PLEV,1,PLEV,vert_id,32,"ave(X)",zsto,zout)
129  CALL histdef(file_id,"tautot_550","?","?",iim_glo,jj_nb,grid_id,1,1,1,vert_id,32,"ave(X)",zsto,zout)
130  CALL histdef(file_id,"tauant_550","?","?",iim_glo,jj_nb,grid_id,1,1,1,vert_id,32,"ave(X)",zsto,zout)
131  CALL histdef(file_id,"taunat_550","?","?",iim_glo,jj_nb,grid_id,1,1,1,vert_id,32,"ave(X)",zsto,zout)
132#ifndef DUST
133!!! RV FLUXES
134
135  CALL histdef(file_id,"FSWTOAAS_ZERO","All sky FLSW-RF zero at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
136  CALL histdef(file_id,"FSWTOAAS_AER" ,"All sky FLSW-RF aer at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
137  CALL histdef(file_id,"FSWTOAAS_NAT" ,"All sky FLSW-RF nat at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
138  CALL histdef(file_id,"FSWTOAAS_BC"  ,"All sky FLSW-RF bc at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
139  CALL histdef(file_id,"FSWTOAAS_SO4" ,"All sky FLSW-RF so4 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
140  CALL histdef(file_id,"FSWTOAAS_FNO3" ,"All sky FLSW-RF fno3 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
141  CALL histdef(file_id,"FSWTOAAS_POM" ,"All sky FLSW-RF pom at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
142  CALL histdef(file_id,"FSWTOAAS_DUSS","All sky FLSW-RF duss TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
143  CALL histdef(file_id,"FSWTOAAS_CNO3"  ,"All sky FLSW-RF cno3 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
144  CALL histdef(file_id,"FSWTOAAS_AI"  ,"Flux+dir+ind forc at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
145
146  CALL histdef(file_id,"FSWTOACS_ZERO","Clear sky FLSW-RF zero TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
147  CALL histdef(file_id,"FSWTOACS_AER" ,"Clear sky FLSW-RF aer at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
148  CALL histdef(file_id,"FSWTOACS_NAT" ,"Clear sky FLSW-RF nat at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
149  CALL histdef(file_id,"FSWTOACS_BC"  ,"Clear sky FLSW-RF bc at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
150  CALL histdef(file_id,"FSWTOACS_SO4" ,"Clear sky FLSW-RF so4 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
151  CALL histdef(file_id,"FSWTOACS_FNO3" ,"Clear sky FLSW-RF fno3 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
152  CALL histdef(file_id,"FSWTOACS_POM" ,"Clear sky FLSW-RF pom at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
153  CALL histdef(file_id,"FSWTOACS_DUSS","Clear sky FLSW-RF duss  TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
154  CALL histdef(file_id,"FSWTOACS_CNO3"  ,"Clear sky FLSW-RF cno3 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
155
156  CALL histdef(file_id,"FSWSRFAS_ZERO","All sky FLSW-RF zero at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
157  CALL histdef(file_id,"FSWSRFAS_AER" ,"All sky FLSW-RF aer at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
158  CALL histdef(file_id,"FSWSRFAS_NAT" ,"All sky FLSW-RF nat  at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
159  CALL histdef(file_id,"FSWSRFAS_BC"  ,"All sky FLSW-RF bc at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
160  CALL histdef(file_id,"FSWSRFAS_SO4" ,"All sky FLSW-RF so4 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
161  CALL histdef(file_id,"FSWSRFAS_FNO3" ,"All sky FLSW-RF fno3 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
162  CALL histdef(file_id,"FSWSRFAS_POM" ,"All sky FLSW-RF pom at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
163  CALL histdef(file_id,"FSWSRFAS_DUSS","All sky FLSW-RF duss SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
164  CALL histdef(file_id,"FSWSRFAS_CNO3"  ,"All sky FLSW-RF cno3 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
165  CALL histdef(file_id,"FSWSRFAS_AI"  ,"Flux+dir+ind forc at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
166
167  CALL histdef(file_id,"FSWSRFCS_ZERO","Clear sky FLSW-RF zero SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
168  CALL histdef(file_id,"FSWSRFCS_AER" ,"Clear sky FLSW-RF aer at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
169  CALL histdef(file_id,"FSWSRFCS_NAT" ,"Clear sky FLSW-RF nat at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
170  CALL histdef(file_id,"FSWSRFCS_BC"  ,"Clear sky FLSW-RF bc at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
171  CALL histdef(file_id,"FSWSRFCS_SO4" ,"Clear sky FLSW-RF so4 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
172  CALL histdef(file_id,"FSWSRFCS_FNO3" ,"Clear sky FLSW-RF fno3 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
173  CALL histdef(file_id,"FSWSRFCS_POM" ,"Clear sky FLSW-RF pom at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
174  CALL histdef(file_id,"FSWSRFCS_DUSS","Clear sky FLSW-RF duss SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
175  CALL histdef(file_id,"FSWSRFCS_CNO3"  ,"Clear sky FLSW-RF cno3 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
176 
177!!! RV FORCINGS
178
179  CALL histdef(file_id,"SWTOAAS_ANT","All sky SW-RF antr at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
180  CALL histdef(file_id,"SWTOAAS_AER" ,"All sky SW-RF aer at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
181  CALL histdef(file_id,"SWTOAAS_NAT" ,"All sky SW-RF nat at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
182  CALL histdef(file_id,"SWTOAAS_BC"  ,"All sky SW-RF bc at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
183  CALL histdef(file_id,"SWTOAAS_SO4" ,"All sky SW-RF so4 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
184  CALL histdef(file_id,"SWTOAAS_FNO3" ,"All sky SW-RF fno3 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
185  CALL histdef(file_id,"SWTOAAS_POM" ,"All sky SW-RF pom at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
186  CALL histdef(file_id,"SWTOAAS_DUSS","All sky SW-RF duss at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
187  CALL histdef(file_id,"SWTOAAS_CNO3"  ,"All sky SW-RF cno3 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
188  CALL histdef(file_id,"SWTOAAS_AI"  ,"Antr Ind.Forc. at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
189
190  CALL histdef(file_id,"SWTOACS_ANT","Clear sky SW-RF antr at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
191  CALL histdef(file_id,"SWTOACS_AER" ,"Clear sky SW-RF aer at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
192  CALL histdef(file_id,"SWTOACS_NAT" ,"Clear sky SW-RF nat at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
193  CALL histdef(file_id,"SWTOACS_BC"  ,"Clear sky SW-RF bc at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
194  CALL histdef(file_id,"SWTOACS_SO4" ,"Clear sky SW-RF so4 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
195  CALL histdef(file_id,"SWTOACS_FNO3" ,"Clear sky SW-RF fno3 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
196  CALL histdef(file_id,"SWTOACS_POM" ,"Clear sky SW-RF pom at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
197  CALL histdef(file_id,"SWTOACS_DUSS","Clear sky SW-RF duss at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
198  CALL histdef(file_id,"SWTOACS_CNO3"  ,"Clear sky SW-RF cno3 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
199
200  CALL histdef(file_id,"SWSRFAS_ANT","All sky SW-RF antr at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
201  CALL histdef(file_id,"SWSRFAS_AER" ,"All sky SW-RF aer at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
202  CALL histdef(file_id,"SWSRFAS_NAT" ,"All sky SW-RF nat  at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
203  CALL histdef(file_id,"SWSRFAS_BC"  ,"All sky SW-RF bc at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
204  CALL histdef(file_id,"SWSRFAS_SO4" ,"All sky SW-RF so4 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
205  CALL histdef(file_id,"SWSRFAS_FNO3" ,"All sky SW-RF fno3 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
206  CALL histdef(file_id,"SWSRFAS_POM" ,"All sky SW-RF pom at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
207  CALL histdef(file_id,"SWSRFAS_DUSS","All sky SW-RF duss at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
208  CALL histdef(file_id,"SWSRFAS_CNO3"  ,"All sky SW-RF cno3 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
209  CALL histdef(file_id,"SWSRFAS_AI"  ,"Antr Ind.Forc. at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
210
211  CALL histdef(file_id,"SWSRFCS_ANT","Clear sky SW-RF antr at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
212  CALL histdef(file_id,"SWSRFCS_AER" ,"Clear sky SW-RF aer at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
213  CALL histdef(file_id,"SWSRFCS_NAT" ,"Clear sky SW-RF nat at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
214  CALL histdef(file_id,"SWSRFCS_BC"  ,"Clear sky SW-RF bc at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
215  CALL histdef(file_id,"SWSRFCS_SO4" ,"Clear sky SW-RF so4 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
216  CALL histdef(file_id,"SWSRFCS_FNO3" ,"Clear sky SW-RF fno3 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
217  CALL histdef(file_id,"SWSRFCS_POM" ,"Clear sky SW-RF pom at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
218  CALL histdef(file_id,"SWSRFCS_DUSS","Clear sky SW-RF duss at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
219  CALL histdef(file_id,"SWSRFCS_CNO3"  ,"Clear sky SW-RF cno3 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
220#else
221!!! RV FLUXES
222  CALL histdef(file_id,"FSWTOAAS_ZERO","All sky FLSW-RF zero at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
223  CALL histdef(file_id,"FSWTOAAS_AER" ,"All sky FLSW-RF aer at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
224  CALL histdef(file_id,"FSWTOAAS_NAT" ,"All sky FLSW-RF nat at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
225  CALL histdef(file_id,"FSWTOAAS_DUST","All sky FLSW-RF duss TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
226  CALL histdef(file_id,"FSWTOAAS_SS"  ,"All sky FLSW-RF cno3 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
227  CALL histdef(file_id,"FSWTOAAS_AI"  ,"Flux+dir+ind forc at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
228
229  CALL histdef(file_id,"FSWTOACS_ZERO","Clear sky FLSW-RF zero TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
230  CALL histdef(file_id,"FSWTOACS_AER" ,"Clear sky FLSW-RF aer at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
231  CALL histdef(file_id,"FSWTOACS_NAT" ,"Clear sky FLSW-RF nat at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
232  CALL histdef(file_id,"FSWTOACS_DUST","Clear sky FLSW-RF duss  TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
233  CALL histdef(file_id,"FSWTOACS_SS"  ,"Clear sky FLSW-RF cno3 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
234
235  CALL histdef(file_id,"FSWSRFAS_ZERO","All sky FLSW-RF zero at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
236  CALL histdef(file_id,"FSWSRFAS_AER" ,"All sky FLSW-RF aer at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
237  CALL histdef(file_id,"FSWSRFAS_NAT" ,"All sky FLSW-RF nat  at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
238  CALL histdef(file_id,"FSWSRFAS_DUST","All sky FLSW-RF duss SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
239  CALL histdef(file_id,"FSWSRFAS_SS"  ,"All sky FLSW-RF cno3 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
240  CALL histdef(file_id,"FSWSRFAS_AI"  ,"Flux+dir+ind forc at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
241
242  CALL histdef(file_id,"FSWSRFCS_ZERO","Clear sky FLSW-RF zero SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
243  CALL histdef(file_id,"FSWSRFCS_AER" ,"Clear sky FLSW-RF aer at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
244  CALL histdef(file_id,"FSWSRFCS_NAT" ,"Clear sky FLSW-RF nat at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
245  CALL histdef(file_id,"FSWSRFCS_DUST","Clear sky FLSW-RF duss SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
246  CALL histdef(file_id,"FSWSRFCS_SS"  ,"Clear sky FLSW-RF cno3 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
247 
248!!! RV FORCINGS
249
250  CALL histdef(file_id,"SWTOAAS_ANT","All sky SW-RF antr at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
251  CALL histdef(file_id,"SWTOAAS_AER" ,"All sky SW-RF aer at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
252  CALL histdef(file_id,"SWTOAAS_NAT" ,"All sky SW-RF nat at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
253  CALL histdef(file_id,"SWTOAAS_DUST","All sky SW-RF duss at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
254  CALL histdef(file_id,"SWTOAAS_SS"  ,"All sky SW-RF cno3 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
255  CALL histdef(file_id,"SWTOAAS_AI"  ,"Antr Ind.Forc. at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
256
257  CALL histdef(file_id,"SWTOACS_ANT","Clear sky SW-RF antr at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
258  CALL histdef(file_id,"SWTOACS_AER" ,"Clear sky SW-RF aer at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
259  CALL histdef(file_id,"SWTOACS_NAT" ,"Clear sky SW-RF nat at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
260  CALL histdef(file_id,"SWTOACS_DUST","Clear sky SW-RF duss at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
261  CALL histdef(file_id,"SWTOACS_SS"  ,"Clear sky SW-RF cno3 at TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
262
263  CALL histdef(file_id,"SWSRFAS_ANT","All sky SW-RF antr at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
264  CALL histdef(file_id,"SWSRFAS_AER" ,"All sky SW-RF aer at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
265  CALL histdef(file_id,"SWSRFAS_NAT" ,"All sky SW-RF nat  at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
266  CALL histdef(file_id,"SWSRFAS_DUST","All sky SW-RF duss at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
267  CALL histdef(file_id,"SWSRFAS_SS"  ,"All sky SW-RF cno3 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
268  CALL histdef(file_id,"SWSRFAS_AI"  ,"Antr Ind.Forc. at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
269
270  CALL histdef(file_id,"SWSRFCS_ANT","Clear sky SW-RF antr at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
271  CALL histdef(file_id,"SWSRFCS_AER" ,"Clear sky SW-RF aer at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
272  CALL histdef(file_id,"SWSRFCS_NAT" ,"Clear sky SW-RF nat at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
273  CALL histdef(file_id,"SWSRFCS_POM" ,"Clear sky SW-RF pom at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
274  CALL histdef(file_id,"SWSRFCS_DUST","Clear sky SW-RF duss at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
275  CALL histdef(file_id,"SWSRFCS_SS"  ,"Clear sky SW-RF cno3 at SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
276#endif
277
278! LMD
279  CALL histdef(file_id,"SWTOACS_AD","Direct TOA CS forcing","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
280  CALL histdef(file_id,"SWTOAAS_AD","Direct TOA AS forcing","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
281  CALL histdef(file_id,"SWSRFCS_AD","Direct SRF CS forcing","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
282  CALL histdef(file_id,"SWSRFAS_AD","Direct SRF AS forcing","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
283
284! CLOUDS
285  CALL histdef(file_id,"cforcTOA_0","CF at TOA,no aerosol","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
286  CALL histdef(file_id,"cforcSRF_0","CF at SRF,no aerosol","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
287  CALL histdef(file_id,"DcforcTOA_NAT","NAT aerosol impact on CF-TOA","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
288  CALL histdef(file_id,"DcforcSRF_NAT","NAT aerosol impact on CF-SRF","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
289  CALL histdef(file_id,"DcforcTOA_ANTR","ANT aerosol impact on CF-TOA","W/m2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
290  CALL histdef(file_id,"DcforcSRF_ANTR","ANT aerosol impact on CF-SRF","W/m2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
291  CALL histdef(file_id,"CLOUDfract"  ,"Cloud fraction","-",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
292
293!!RAFF2 forcing in cloudy regions
294  CALL histdef(file_id,"cRFtoa_nat","TOA nat RF in cloudy regions","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
295  CALL histdef(file_id,"cRFsrf_nat","SRF nat RF in cloudy regions","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
296  CALL histdef(file_id,"cRFtoa_antr","TOA antr RF in cloudy regions","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
297  CALL histdef(file_id,"cRFsrf_antr","SRF antr RF in cloudy regions","W.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
298
299! "HEAT" fluxes
300  CALL histdef(file_id,"tops" ,"Solar rad. at TOA"   , "W/m2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
301  CALL histdef(file_id,"tops0","CS Solar rad. at TOA", "W/m2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
302  CALL histdef(file_id,"topl" ,"IR rad. at TOA"      , "W/m2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
303  CALL histdef(file_id,"topl0","IR rad. at TOA"      , "W/m2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
304
305  CALL histdef(file_id,"SOLUBLE_LOAD","Solub. mass load","ug.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
306  CALL histdef(file_id,"SOLUBLE_LOAD_PI","Solub. mass load, p.i.","ug.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
307  CALL histdef(file_id,"SOLUBLE_LOAD_ANTR","Solub. Antr. mass load","ug.m-2",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout) 
308
309 
310  diag_id = file_id
311
312  CALL histend(file_id)
313
314!$OMP END MASTER
315
316END SUBROUTINE ini_diagnos
317
318#ifdef NMHC
319SUBROUTINE ini_diagnos_surf(pdtphys, anne_ref, day_ref, longcm, latgcm, &
320   presnivs, itau_phy)
321
322  USE IOIPSL
323  USE INCA_DIM
324  USE AEROSOL_DIAG
325  USE MOD_INCA_PARA
326  USE MOD_GRID_INCA
327  IMPLICIT NONE
328
329!-----------------------------------------------------------------------------
330! Dummy arguments
331!-----------------------------------------------------------------------------
332  REAL, INTENT(in) :: pdtphys      ! physics integration time step (s)
333  INTEGER, INTENT(in) :: anne_ref  ! simulation start year
334  INTEGER, INTENT(in) :: day_ref   ! simulation start day
335  REAL, INTENT(in) :: longcm(PLON) ! physics columns longitudes (gcm)
336  REAL, INTENT(in) :: latgcm(PLON) ! physics columns latitudes (gcm)
337  REAL, INTENT(in) :: presnivs(PLEV) !middle layer pressure(PA)
338  INTEGER, INTENT(in) :: itau_phy
339
340  !----------------------------------------------------------------------------
341  ! Local arguments
342  !----------------------------------------------------------------------------
343  CHARACTER(len=15) :: filename ! file name
344  INTEGER :: file_id
345  INTEGER :: grid_id        ! horizontal grid ID
346  INTEGER :: vert_id        ! vertical axe ID
347  REAL :: zjulian
348  REAL :: zx_lon(iim_glo,jj_nb)  ! record grid points longitudes
349  REAL :: zx_lat(iim_glo,jj_nb)  ! record grid points latitudes
350  REAL :: zx_lon_glo(iim_glo,jjm_glo)  ! record grid points longitudes
351  REAL :: zx_lat_glo(iim_glo,jjm_glo)  ! record grid points latitudes
352  REAL ::zsto               ! variable s storage time step (s)
353  REAL ::zout               ! variable s record time step (s)
354  REAL, dimension(PLON_GLO) :: lonlatgcm_glo_oth ! physics columns longitudes (gcm)
355
356  REAL :: ecritchim = 1./3600.
357  INTEGER :: ecrit_tra
358
359  filename='surface'
360
361  CALL ymds2ju(anne_ref, 1, day_ref, 0.0, zjulian)
362 
363  CALL gather(longcm, lonlatgcm_glo_oth)
364!$OMP MASTER
365  IF (is_mpi_root) CALL grid1dTo2d_glo(lonlatgcm_glo_oth, zx_lon_glo)
366!$OMP END MASTER
367  CALL bcast(zx_lon_glo)
368  zx_lon_glo(2:,1)=zx_lon_glo(1,1)
369  zx_lon_glo(2:,jjm_glo)=zx_lon_glo(1,jjm_glo)
370  zx_lon(:,1:jj_nb)=zx_lon_glo(:,jj_begin:jj_end)
371 
372  CALL gather(latgcm, lonlatgcm_glo_oth)
373!$OMP MASTER
374  IF (is_mpi_root) CALL grid1dTo2d_glo(lonlatgcm_glo_oth, zx_lat_glo)
375!$OMP END MASTER
376  CALL bcast(zx_lat_glo)
377  zx_lat_glo(2:,1)=zx_lat_glo(1,1)
378  zx_lat_glo(2:,jjm_glo)=zx_lat_glo(1,jjm_glo)
379  zx_lat(:,1:jj_nb)=zx_lat_glo(:,jj_begin:jj_end)
380     
381  ecrit_tra = NINT(1./pdtphys/ecritchim)
382  zsto = pdtphys
383  zout = pdtphys * FLOAT(ecrit_tra)
384
385!$OMP MASTER
386
387  CALL histbeg(filename, iim_glo, zx_lon(:,2), jj_nb, zx_lat(1,:), 1, iim_glo,1, &
388     jj_nb, itau_phy, zjulian, pdtphys, grid_id, file_id,domain_id=inca_domain_id)
389
390  CALL histvert(file_id, "presnivs", "presnivs", "mb", PLEV, presnivs, vert_id)
391 
392  CALL histdef(file_id,"O3ppb", "Ozone at the surface","ppb",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
393  CALL histdef(file_id,"O3ug",  "Ozone at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
394  CALL histdef(file_id,"PM25a", "PM2.5 at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
395  CALL histdef(file_id,"PM25c", "PM2.5 at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
396  CALL histdef(file_id,"PM10",  "PM10  at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
397  CALL histdef(file_id,"NO",   "NO at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
398  CALL histdef(file_id,"NO2",  "NO2 at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
399  CALL histdef(file_id,"PAN",  "PAN at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
400  CALL histdef(file_id,"HONO", "HONO at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
401  CALL histdef(file_id,"HNO3", "HNO3 at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
402  CALL histdef(file_id,"NH3",  "NH3 at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
403  CALL histdef(file_id,"NH4",  "NH4 at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
404  CALL histdef(file_id,"NO3",  "NO3 at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
405  CALL histdef(file_id,"SO4",  "SO4 at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
406  CALL histdef(file_id,"SO2",  "SO2 at the surface","ug", iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout)
407
408  diagsurf_id = file_id
409
410  CALL histend(file_id)
411
412!$OMP END MASTER
413END SUBROUTINE ini_diagnos_surf
414#endif
415#endif
Note: See TracBrowser for help on using the repository browser.