!! ========================================================================= !! INCA - INteraction with Chemistry and Aerosols !! !! Copyright Laboratoire des Sciences du Climat et de l'Environnement (LSCE) !! Unite mixte CEA-CNRS-UVSQ !! !! Contributors to this INCA subroutine: !! !! Anne Cozic, LSCE, anne.cozic@lsce.ipsl.fr !! Didier Hauglustaine, 11/2013. !! !! This software is a computer program whose purpose is to simulate the !! atmospheric gas phase and aerosol composition. The model is designed to be !! used within a transport model or a general circulation model. This version !! of INCA was designed to be coupled to the LMDz GCM. LMDz-INCA accounts !! for emissions, transport (resolved and sub-grid scale), photochemical !! transformations, and scavenging (dry deposition and washout) of chemical !! species and aerosols interactively in the GCM. Several versions of the INCA !! model are currently used depending on the envisaged applications with the !! chemistry-climate model. !! !! This software is governed by the CeCILL license under French law and !! abiding by the rules of distribution of free software. You can use, !! modify and/ or redistribute the software under the terms of the CeCILL !! license as circulated by CEA, CNRS and INRIA at the following URL !! "http://www.cecill.info". !! !! As a counterpart to the access to the source code and rights to copy, !! modify and redistribute granted by the license, users are provided only !! with a limited warranty and the software's author, the holder of the !! economic rights, and the successive licensors have only limited !! liability. !! !! In this respect, the user's attention is drawn to the risks associated !! with loading, using, modifying and/or developing or reproducing the !! software by the user in light of its specific status of free software, !! that may mean that it is complicated to manipulate, and that also !! therefore means that it is reserved for developers and experienced !! professionals having in-depth computer knowledge. Users are therefore !! encouraged to load and test the software's suitability as regards their !! requirements in conditions enabling the security of their systems and/or !! data to be ensured and, more generally, to use and operate it in the !! same conditions as regards security. !! !! The fact that you are presently reading this means that you have had !! knowledge of the CeCILL license and that you accept its terms. !! ========================================================================= #include #ifdef AER SUBROUTINE ini_diagnos(pdtphys, anne_ref, day_ref, longcm, latgcm, & presnivs, itau_phy) USE IOIPSL USE INCA_DIM USE AEROSOL_DIAG USE MOD_INCA_PARA USE MOD_GRID_INCA IMPLICIT NONE !----------------------------------------------------------------------------- ! Dummy arguments !----------------------------------------------------------------------------- REAL, INTENT(in) :: pdtphys ! physics integration time step (s) INTEGER, INTENT(in) :: anne_ref ! simulation start year INTEGER, INTENT(in) :: day_ref ! simulation start day REAL, INTENT(in) :: longcm(PLON) ! physics columns longitudes (gcm) REAL, INTENT(in) :: latgcm(PLON) ! physics columns latitudes (gcm) REAL, INTENT(in) :: presnivs(PLEV) !middle layer pressure(PA) INTEGER, INTENT(in) :: itau_phy !---------------------------------------------------------------------------- ! Local arguments !---------------------------------------------------------------------------- CHARACTER(len=15) :: filename ! file name INTEGER :: file_id INTEGER :: grid_id ! horizontal grid ID INTEGER :: vert_id ! vertical axe ID REAL :: zjulian REAL :: zx_lon(iim_glo,jj_nb) ! record grid points longitudes REAL :: zx_lat(iim_glo,jj_nb) ! record grid points latitudes REAL :: zx_lon_glo(iim_glo,jjm_glo) ! record grid points longitudes REAL :: zx_lat_glo(iim_glo,jjm_glo) ! record grid points latitudes REAL ::zsto ! variable s storage time step (s) REAL ::zout ! variable s record time step (s) REAL, dimension(PLON_GLO) :: lonlatgcm_glo_oth ! physics columns longitudes (gcm) filename='forcage' CALL ymds2ju(anne_ref, 1, day_ref, 0.0, zjulian) CALL gather(longcm, lonlatgcm_glo_oth) !$OMP MASTER IF (is_mpi_root) CALL grid1dTo2d_glo(lonlatgcm_glo_oth, zx_lon_glo) !$OMP END MASTER CALL bcast(zx_lon_glo) zx_lon_glo(2:,1)=zx_lon_glo(1,1) zx_lon_glo(2:,jjm_glo)=zx_lon_glo(1,jjm_glo) zx_lon(:,1:jj_nb)=zx_lon_glo(:,jj_begin:jj_end) CALL gather(latgcm, lonlatgcm_glo_oth) !$OMP MASTER IF (is_mpi_root) CALL grid1dTo2d_glo(lonlatgcm_glo_oth, zx_lat_glo) !$OMP END MASTER CALL bcast(zx_lat_glo) zx_lat_glo(2:,1)=zx_lat_glo(1,1) zx_lat_glo(2:,jjm_glo)=zx_lat_glo(1,jjm_glo) zx_lat(:,1:jj_nb)=zx_lat_glo(:,jj_begin:jj_end) zsto = pdtphys zout=PRINTSTEP !$OMP MASTER CALL histbeg(filename, iim_glo, zx_lon(:,2), jj_nb, zx_lat(1,:), 1, iim_glo,1, & jj_nb, itau_phy, zjulian, pdtphys, grid_id, file_id,domain_id=inca_domain_id) CALL histvert(file_id, "presnivs", "presnivs", "mb", PLEV, presnivs, vert_id) CALL histdef(file_id,"taucld","cloud opt thickness","-",iim_glo,jj_nb,grid_id,PLEV,1,PLEV,vert_id,32,"ave(X)",zsto,zout) CALL histdef(file_id,"CCM1","CCM1","",iim_glo,jj_nb,grid_id,PLEV,1,PLEV,vert_id,32,"ave(X)",zsto,zout) CALL histdef(file_id,"CCM2","CCM2","",iim_glo,jj_nb,grid_id,PLEV,1,PLEV,vert_id,32,"ave(X)",zsto,zout) 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) CALL histdef(file_id,"cldemi","emissivite IR","-",iim_glo,jj_nb,grid_id,PLEV,1,PLEV,vert_id,32,"ave(X)",zsto,zout) CALL histdef(file_id,"tautot_550","?","?",iim_glo,jj_nb,grid_id,1,1,1,vert_id,32,"ave(X)",zsto,zout) CALL histdef(file_id,"tauant_550","?","?",iim_glo,jj_nb,grid_id,1,1,1,vert_id,32,"ave(X)",zsto,zout) CALL histdef(file_id,"taunat_550","?","?",iim_glo,jj_nb,grid_id,1,1,1,vert_id,32,"ave(X)",zsto,zout) #ifndef DUST !!! RV FLUXES 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) !!! RV FORCINGS 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) #else !!! RV FLUXES 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) !!! RV FORCINGS 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) #endif ! LMD 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) 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) 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) 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) ! CLOUDS 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) 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) 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) 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) 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) 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) CALL histdef(file_id,"CLOUDfract" ,"Cloud fraction","-",iim_glo,jj_nb,grid_id,1,1,1,-99,32,"ave(X)",zsto,zout) !!RAFF2 forcing in cloudy regions 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) 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) 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) 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) ! "HEAT" fluxes 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) 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) 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) 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) 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) 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) 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) diag_id = file_id CALL histend(file_id) !$OMP END MASTER END SUBROUTINE ini_diagnos #ifdef NMHC SUBROUTINE ini_diagnos_surf(pdtphys, anne_ref, day_ref, longcm, latgcm, & presnivs, itau_phy) USE IOIPSL USE INCA_DIM USE AEROSOL_DIAG USE MOD_INCA_PARA USE MOD_GRID_INCA IMPLICIT NONE !----------------------------------------------------------------------------- ! Dummy arguments !----------------------------------------------------------------------------- REAL, INTENT(in) :: pdtphys ! physics integration time step (s) INTEGER, INTENT(in) :: anne_ref ! simulation start year INTEGER, INTENT(in) :: day_ref ! simulation start day REAL, INTENT(in) :: longcm(PLON) ! physics columns longitudes (gcm) REAL, INTENT(in) :: latgcm(PLON) ! physics columns latitudes (gcm) REAL, INTENT(in) :: presnivs(PLEV) !middle layer pressure(PA) INTEGER, INTENT(in) :: itau_phy !---------------------------------------------------------------------------- ! Local arguments !---------------------------------------------------------------------------- CHARACTER(len=15) :: filename ! file name INTEGER :: file_id INTEGER :: grid_id ! horizontal grid ID INTEGER :: vert_id ! vertical axe ID REAL :: zjulian REAL :: zx_lon(iim_glo,jj_nb) ! record grid points longitudes REAL :: zx_lat(iim_glo,jj_nb) ! record grid points latitudes REAL :: zx_lon_glo(iim_glo,jjm_glo) ! record grid points longitudes REAL :: zx_lat_glo(iim_glo,jjm_glo) ! record grid points latitudes REAL ::zsto ! variable s storage time step (s) REAL ::zout ! variable s record time step (s) REAL, dimension(PLON_GLO) :: lonlatgcm_glo_oth ! physics columns longitudes (gcm) REAL :: ecritchim = 1./3600. INTEGER :: ecrit_tra filename='surface' CALL ymds2ju(anne_ref, 1, day_ref, 0.0, zjulian) CALL gather(longcm, lonlatgcm_glo_oth) !$OMP MASTER IF (is_mpi_root) CALL grid1dTo2d_glo(lonlatgcm_glo_oth, zx_lon_glo) !$OMP END MASTER CALL bcast(zx_lon_glo) zx_lon_glo(2:,1)=zx_lon_glo(1,1) zx_lon_glo(2:,jjm_glo)=zx_lon_glo(1,jjm_glo) zx_lon(:,1:jj_nb)=zx_lon_glo(:,jj_begin:jj_end) CALL gather(latgcm, lonlatgcm_glo_oth) !$OMP MASTER IF (is_mpi_root) CALL grid1dTo2d_glo(lonlatgcm_glo_oth, zx_lat_glo) !$OMP END MASTER CALL bcast(zx_lat_glo) zx_lat_glo(2:,1)=zx_lat_glo(1,1) zx_lat_glo(2:,jjm_glo)=zx_lat_glo(1,jjm_glo) zx_lat(:,1:jj_nb)=zx_lat_glo(:,jj_begin:jj_end) ecrit_tra = NINT(1./pdtphys/ecritchim) zsto = pdtphys zout = pdtphys * FLOAT(ecrit_tra) !$OMP MASTER CALL histbeg(filename, iim_glo, zx_lon(:,2), jj_nb, zx_lat(1,:), 1, iim_glo,1, & jj_nb, itau_phy, zjulian, pdtphys, grid_id, file_id,domain_id=inca_domain_id) CALL histvert(file_id, "presnivs", "presnivs", "mb", PLEV, presnivs, vert_id) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) diagsurf_id = file_id CALL histend(file_id) !$OMP END MASTER END SUBROUTINE ini_diagnos_surf #endif #endif