! Special set of characters for RCS information ! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modd_param_ibm.f90 $ !------------------------------------------------------------------------------ ! ####################### MODULE MODD_EMIS_PARAM_n ! ####################### ! !!**** MODD_EMIS_PARAM_n - declaration of the control parameters !! used in the pollutant emissions !! !! PURPOSE !! ------- !!**** The purpose of this module is to declare the variables !! which allow the computation of pollutant tendencies !! !! !! IMPLICIT ARGUMENTS !! ------------------ !! None !! !! REFERENCE !! --------- !! !! AUTHOR !! ------ !! Franck Auguste (CERFACS-AE) !! !! MODIFICATIONS !! ------------- !! Original 01/10/2017 ! !------------------------------------------------------------------------------ ! !**** 0. DECLARATIONS ! --------------- ! USE MODD_PARAMETERS, ONLY: JPMODELMAX IMPLICIT NONE ! TYPE EMIS_t ! LOGICAL :: LEMIS ! Emission logical (F/T) INTEGER :: NEMIS_FILE ! Number of files to read (currently only 1) INTEGER :: NEMIS_HOUR ! Number of physical hours simulated (depending on the start/restart) REAL :: XEMIS_RESI ! Residual parameter (default value : 1.e-4 ; advise : 1.e-3) REAL :: XEMIS_HEIG ! Reference altitude (given in the input file) REAL :: XEMIS_TIME,XEMIS_DELT,XEMIS_DELX ! time and resolution time/space (given in the input file) REAL :: XEMIS1_DELT,XEMIS1_DELX ! resolution time/space REAL :: XEMIS2_DELT,XEMIS2_DELX ! resolution time/space REAL :: XEMIS3_DELT,XEMIS3_DELX ! resolution time/space REAL, DIMENSION(:,:,:,:) ,POINTER :: XEMIS1_DATA=>NULL() ! output file(24_hour,60_min,nb_data,nb_species) REAL, DIMENSION(:,:,:,:) ,POINTER :: XEMIS2_DATA=>NULL() ! output file(24_hour,60_min,nb_data,nb_species) REAL, DIMENSION(:,:,:,:) ,POINTER :: XEMIS3_DATA=>NULL() ! output file(24_hour,60_min,nb_data,nb_species) ! END TYPE EMIS_t TYPE(EMIS_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: EMIS_MODEL LOGICAL ,POINTER :: LEMIS=>NULL() INTEGER ,POINTER :: NEMIS_FILE=>NULL() INTEGER ,POINTER :: NEMIS_HOUR=>NULL() REAL ,POINTER :: XEMIS_HEIG=>NULL() REAL ,POINTER :: XEMIS_RESI=>NULL() REAL ,POINTER :: XEMIS_TIME=>NULL() REAL ,POINTER :: XEMIS_DELT=>NULL() REAL ,POINTER :: XEMIS_DELX=>NULL() REAL ,POINTER :: XEMIS1_DELT=>NULL() REAL ,POINTER :: XEMIS1_DELX=>NULL() REAL ,POINTER :: XEMIS2_DELT=>NULL() REAL ,POINTER :: XEMIS2_DELX=>NULL() REAL ,POINTER :: XEMIS3_DELT=>NULL() REAL ,POINTER :: XEMIS3_DELX=>NULL() REAL, DIMENSION(:,:,:,:) ,POINTER :: XEMIS1_DATA=>NULL() ! output file(24_hour,60_min,nb_data,nb_species) REAL, DIMENSION(:,:,:,:) ,POINTER :: XEMIS2_DATA=>NULL() ! output file(24_hour,60_min,nb_data,nb_species) REAL, DIMENSION(:,:,:,:) ,POINTER :: XEMIS3_DATA=>NULL() ! output file(24_hour,60_min,nb_data,nb_species) CONTAINS SUBROUTINE EMIS_GOTO_MODEL(KFROM, KTO) INTEGER, INTENT(IN) :: KFROM, KTO ! ! Save current state for allocated arrays EMIS_MODEL(KFROM)%XEMIS1_DATA=>XEMIS1_DATA EMIS_MODEL(KFROM)%XEMIS2_DATA=>XEMIS2_DATA EMIS_MODEL(KFROM)%XEMIS3_DATA=>XEMIS3_DATA ! ! Current model is set to model KTO LEMIS =>EMIS_MODEL(KTO)%LEMIS NEMIS_FILE =>EMIS_MODEL(KTO)%NEMIS_FILE NEMIS_HOUR =>EMIS_MODEL(KTO)%NEMIS_HOUR XEMIS_HEIG =>EMIS_MODEL(KTO)%XEMIS_HEIG XEMIS_RESI =>EMIS_MODEL(KTO)%XEMIS_RESI XEMIS_TIME =>EMIS_MODEL(KTO)%XEMIS_TIME XEMIS_DELT =>EMIS_MODEL(KTO)%XEMIS_DELT XEMIS_DELX =>EMIS_MODEL(KTO)%XEMIS_DELX XEMIS1_DELT=>EMIS_MODEL(KTO)%XEMIS1_DELT XEMIS1_DELX=>EMIS_MODEL(KTO)%XEMIS1_DELX XEMIS2_DELT=>EMIS_MODEL(KTO)%XEMIS2_DELT XEMIS2_DELX=>EMIS_MODEL(KTO)%XEMIS2_DELX XEMIS3_DELT=>EMIS_MODEL(KTO)%XEMIS3_DELT XEMIS3_DELX=>EMIS_MODEL(KTO)%XEMIS3_DELX END SUBROUTINE EMIS_GOTO_MODEL END MODULE MODD_EMIS_PARAM_n !