!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. #ifdef MNH_NCWRIT ! ############################ MODULE MODI_WRITE_PHYS_PARAM ! ############################ ! INTERFACE ! SUBROUTINE WRITE_PHYS_PARAM(HFMFILE) CHARACTER(LEN=28), INTENT(IN) :: HFMFILE ! Name of FM-file to write ! its DAD model END SUBROUTINE WRITE_PHYS_PARAM ! END INTERFACE ! END MODULE MODI_WRITE_PHYS_PARAM ! ! ! ############################################# SUBROUTINE WRITE_PHYS_PARAM(HFMFILE) ! ############################################# ! !!**** *WRITE_PHYS_PARAM* - routine to define the netcdf variables written in phys_param for model $n !! !! PURPOSE !! ------- ! The purpose of this routine is to define the variables in case of ! netcdf output ! !!** METHOD !! ------ !! The data are defined in the NC file : !! - dimensions !! - grid variables !! - configuration variables !! - prognostic variables at time t and t-dt !! - 1D anelastic reference state !! !! The localization on the model grid is also indicated : !! !! IGRID = 1 for mass grid point !! IGRID = 2 for U grid point !! IGRID = 3 for V grid point !! IGRID = 4 for w grid point !! IGRID = 0 for meaningless case !! !! !! EXTERNAL !! -------- !! FMWRIT : FM-routine to write a record !! !! !! IMPLICIT ARGUMENTS !! ------------------ !! Module MODD_DIM_n : contains dimensions !! Module MODD_TIME : contains time variables for all models !! Module MODD_TIME_n : contains time variables !! Module MODD_GRID : contains spatial grid variables for all models !! Module MODD_GRID_n : contains spatial grid variables !! Module MODD_REF : contains reference state variables !! Module MODD_LUNIT_n: contains logical unit variables. !! Module MODD_CONF : contains configuration variables for all models !! Module MODD_CONF_n : contains configuration variables !! Module MODD_FIELD_n : contains prognostic variables !! Module MODD_GR_FIELD_n : contains surface prognostic variables !! Module MODD_LSFIELD_n : contains Larger Scale variables !! Module MODD_PARAM_n : contains parameterization options !! !! REFERENCE !! --------- !! !! !! AUTHOR !! ------ !! S. Bielli *Laboratoire d'Aerologie* !! !! MODIFICATIONS !! ------------- !! !! 09/2015 (S. Bielli) Remove HDADFILE from call argument !! !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! USE MODD_DIM_n USE MODD_CONF USE MODD_CONF_n USE MODD_GRID USE MODD_GRID_n USE MODD_TIME USE MODD_TIME_n USE MODD_FIELD_n USE MODD_MEAN_FIELD_n USE MODD_DUMMY_GR_FIELD_n USE MODD_LSFIELD_n USE MODD_DYN_n USE MODD_PARAM_n USE MODD_REF USE MODD_LUNIT_n USE MODD_NSV USE MODD_TURB_n USE MODD_TURB_CLOUD USE MODD_RADIATIONS_n USE MODD_REF_n, ONLY : XRHODREF USE MODD_FRC USE MODD_PRECIP_n USE MODD_ELEC_n USE MODD_CST USE MODD_CLOUDPAR USE MODD_DEEP_CONVECTION_n USE MODD_PARAM_KAFR_n USE MODD_NESTING USE MODD_PARAMETERS USE MODD_PARAM_MFSHALL_n USE MODD_PARAM_RAD_n USE MODD_SUB_MODEL_n USE MODD_GR_FIELD_n USE MODD_CH_MNHC_n, ONLY: LUSECHEM,LCH_CONV_LINOX, & LUSECHAQ,LUSECHIC,LCH_PH USE MODD_CH_PH_n USE MODD_CH_M9_n USE MODD_PARAM_C2R2 USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES USE MODD_ICE_C1R3_DESCR, ONLY: C1R3NAMES USE MODD_ELEC_DESCR, ONLY: CELECNAMES USE MODD_LG, ONLY: CLGNAMES USE MODD_NSV USE MODD_AIRCRAFT_BALLOON USE MODD_HURR_CONF, ONLY: LFILTERING,CFILTERING,NDIAG_FILT USE MODD_HURR_FIELD_n USE MODD_PREP_REAL, ONLY: CDUMMY_2D, XDUMMY_2D USE MODD_DUST USE MODD_SALT USE MODD_PASPOL USE MODD_CONDSAMP USE MODD_CH_AEROSOL ! USE MODE_FMWRIT USE MODE_ll USE MODE_IO_ll, ONLY: UPCASE,CLOSE_ll USE MODE_GRIDPROJ USE MODE_MODELN_HANDLER ! USE MODI_GATHER_ll USE MODI_WRITE_LB_n USE MODI_WRITE_BALLOON_n USE MODI_DUSTLFI_n USE MODI_SALTLFI_n USE MODI_CH_AER_REALLFI_n !SB USE MODN_NCOUT use mode_util !SB ! ! IMPLICIT NONE ! !* 0.1 Declarations of arguments ! CHARACTER(LEN=28), INTENT(IN) :: HFMFILE ! Name of FM-file to write ! !* 0.2 Declarations of local variables ! INTEGER :: ILUOUT ! logical unit INTEGER :: IRESP ! IRESP : return-code if a problem appears !in LFI subroutines at the open of the file INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string ! CHARACTER(LEN=16) :: YRECFM ! Name of the article to be written CHARACTER(LEN=100):: YCOMMENT ! Comment string CHARACTER (LEN=2) :: YDIR ! Type of the data field ! INTEGER :: IRR ! Index for moist variables INTEGER :: JSV ! loop index for scalar variables INTEGER :: JSA ! beginning of chemical-aerosol variables ! CHARACTER(LEN=3) :: YFRC ! to mark the time of the forcing INTEGER :: JT ! loop index ! CHARACTER (LEN=4), DIMENSION(NSWB) :: YBAND_NAME ! Solar band name INTEGER :: JBAND ! Solar band index INTEGER :: INIR ! index corresponding to NIR fisrt band (in SW) ! INTEGER :: JMOM, IMOMENTS, JMODE, ISV_NAME_IDX ! dust modes ! INTEGER :: IIU, IJU, IKU ! REAL,DIMENSION(:,:), ALLOCATABLE :: ZSTORE_2D ! Working array REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZSTORE_3D ! Working array REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZSTORE_3DWL ! Working array ! REAL :: ZLATOR, ZLONOR ! geographical coordinates of 1st mass point REAL :: ZXHATM, ZYHATM ! conformal coordinates of 1st mass point REAL, DIMENSION(:), ALLOCATABLE :: ZXHAT_ll ! Position x in the conformal ! plane (array on the complete domain) REAL, DIMENSION(:), ALLOCATABLE :: ZYHAT_ll ! Position y in the conformal ! plane (array on the complete domain) INTEGER :: IMI ! Current model index INTEGER :: KSPLT ! ! INTEGER :: ICH_NBR ! to write number and names of scalar INTEGER,DIMENSION(:),ALLOCATABLE :: ICH_NAMES !(chem+aero+dust) variables CHARACTER(LEN=16),DIMENSION(:),ALLOCATABLE :: YDSTNAMES,YCHNAMES, YSLTNAMES INTEGER :: ILREC,ILENG !in NSV.DIM and NSV.TITRE INTEGER :: INFO_ll !------------------------------------------------------------------------------- ! !* 0. Initialization ! IMI = GET_CURRENT_MODEL_INDEX() IIU=NIMAX+2*JPHEXT IJU=NJMAX+2*JPHEXT IKU=NKMAX+2*JPVEXT KSPLT = 1 ! CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) ! ALLOCATE(ZSTORE_2D(IIU,IJU)) ALLOCATE(ZSTORE_3D(IIU,IJU,IKU)) !! Array for radiations fields on 6 sprectral bands ALLOCATE(ZSTORE_3DWL(IIU,IJU,NSWB_MNH)) ZSTORE_2D(:,:)=0 ZSTORE_3D(:,:,:)=0 ZSTORE_3DWL(:,:,:)=0 ! !* 1. WRITES IN THE PHYS_PARAM SUBROUTINE (FOR NETCDF ONLY) ! !!!!! RADIATIONS.F90 !!!! !!! ADD A TEST AS A FUNCTION OF NAMELIST VARIABLE IF( CRAD == 'ECMW' ) THEN !!! IF( NRAD_DIAG >= 1 ) THEN IF( NRAD_DIAG >= 1) THEN !!!!! 3D variables YDIR='XY' YRECFM = 'SWF_DOWN' YCOMMENT = 'X_Y_Z_SWF_DOWN (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'SWF_UP' YCOMMENT = 'X_Y_Z_SWF_UP (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'LWF_DOWN' YCOMMENT = 'X_Y_Z_LWF_DOWN (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'LWF_UP' YCOMMENT = 'X_Y_Z_LWF_UP (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'LWF_NET' YCOMMENT = 'X_Y_Z_LWF_NET (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'SWF_NET' YCOMMENT = 'X_Y_Z_SWF_NET (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'DTRAD_LW' YCOMMENT = 'X_Y_Z_DTRAD_LW (K/DAY)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'DTRAD_SW' YCOMMENT = 'X_Y_Z_DTRAD_SW (K/DAY)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! !!!!! 2D variables YRECFM = 'RADSWD_VIS' YCOMMENT = 'X_Y_RADSWD_VIS' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_2D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'RADSWD_NIR' YCOMMENT = 'X_Y_RADSWD_NIR' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_2D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'RADLWD' YCOMMENT = 'X_Y_RADLWD' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_2D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ENDIF IF( NRAD_DIAG >= 2) THEN YDIR='XY' YRECFM = 'SWF_DOWN_CS' YCOMMENT = 'X_Y_Z_SWF_DOWN_CS (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'SWF_UP_CS' YCOMMENT = 'X_Y_Z_SWF_UP_CS (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'LWF_DOWN_CS' YCOMMENT = 'X_Y_Z_LWF_DOWN (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'LWF_UP_CS' YCOMMENT = 'X_Y_Z_LWF_UP_CS (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'LWF_NET_CS' YCOMMENT = 'X_Y_Z_SWF_NET_CS (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'SWF_NET_CS' YCOMMENT = 'X_Y_Z_SWF_NET_CS (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'DTRAD_SW_CS' YCOMMENT = 'X_Y_Z_DTRAD_SW_CS (K/DAY)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'DTRAD_LW_CS' YCOMMENT = 'X_Y_Z_DTRAD_LW_CS (K/DAY)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'RADSWD_VIS_CS' YCOMMENT = 'X_Y_RADSWD_VIS_CS' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_2D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'RADSWD_NIR_CS' YCOMMENT = 'X_Y_RADSWD_NIR_CS' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_2D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'RADLWD_CS' YCOMMENT = 'X_Y_RADLWD_CS' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_2D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ENDIF !! IF( NRAD_DIAG >= 3) THEN !! YRECFM = 'PLAN_ALB_VIS' YCOMMENT = 'X_Y_PLAN_ALB_VIS' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_2D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'PLAN_ALB_NIR' YCOMMENT = 'X_Y_PLAN_ALB_NIR' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_2D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'PLAN_TRA_VIS' YCOMMENT = 'X_Y_PLAN_TRA_VIS' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_2D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'PLAN_TRA_NIR' YCOMMENT = 'X_Y_PLAN_TRA_NIR' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_2D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'PLAN_ABS_VIS' YCOMMENT = 'X_Y_PLAN_ABS_VIS' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_2D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'PLAN_ABS_NIR' YCOMMENT = 'X_Y_PLAN_ABS_NIR' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_2D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ENDIF !! IF( NRAD_DIAG >= 4) THEN !! YRECFM = 'EFNEB_DOWN' YCOMMENT = 'X_Y_Z_EFNEB_DOWN' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'EFNEB_UP' YCOMMENT = 'X_Y_Z_EFNEB_UP' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'FLWP' YCOMMENT = 'X_Y_Z_FLWP' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'FIWP' YCOMMENT = 'X_Y_Z_FIWP' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'EFRADL' YCOMMENT = 'X_Y_Z_RAD_microm' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'EFRADI' YCOMMENT = 'X_Y_Z_RAD_microm' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'SW_NEB' YCOMMENT = 'X_Y_Z_SW_NEB' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'RRTM_LW_NEB' YCOMMENT = 'X_Y_Z_LW_NEB' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! !!! 3D X,Y,Z for each ban ( 6 ) !!! DO LOOP ???? ! spectral bands IF (NSWB==6) THEN INIR = 4 ELSE INIR = 2 END IF DO JBAND=1,INIR-1 WRITE(YBAND_NAME(JBAND),'(A3,I1)') 'VIS', JBAND END DO DO JBAND= INIR,NSWB WRITE(YBAND_NAME(JBAND),'(A3,I1)') 'NIR', JBAND END DO !! DO JBAND = 1,NSWB YRECFM = 'ODAER_'//YBAND_NAME(JBAND) YCOMMENT = 'X_Y_Z_OD_'//YBAND_NAME(JBAND) IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'SSAAER_'//YBAND_NAME(JBAND) YCOMMENT = 'X_Y_Z_SSA_'//YBAND_NAME(JBAND) IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'GAER_'//YBAND_NAME(JBAND) YCOMMENT = 'X_Y_Z_G_'//YBAND_NAME(JBAND) IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! !! 3D ?? YRECFM = 'OTH_'//YBAND_NAME(JBAND) YCOMMENT = 'X_Y_Z_OTH_'//YBAND_NAME(JBAND) IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'SSA_'//YBAND_NAME(JBAND) YCOMMENT = 'X_Y_Z_SSA_'//YBAND_NAME(JBAND) IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'ASF_'//YBAND_NAME(JBAND) YCOMMENT = 'X_Y_Z_ASF_'//YBAND_NAME(JBAND) IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! !!! END DO LOOP ON JBAND ? END DO ENDIF !! IF (NRAD_DIAG >= 5) THEN !! YDIR='XY' YRECFM = 'O3CLIM' YCOMMENT = 'X_Y_Z_O3 Pa/Pa' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'CUM_AER_LAND' YCOMMENT = 'X_Y_Z_CUM_AER_OPT' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'CUM_AER_SEA' YCOMMENT = 'X_Y_Z_CUM_AER_OPT' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'CUM_AER_DES' YCOMMENT = 'X_Y_Z_CUM_AER_OPT' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'CUM_AER_URB' YCOMMENT = 'X_Y_Z_CUM_AER_OPT' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'CUM_AER_VOL' YCOMMENT = 'X_Y_Z_CUM_AER_OPT' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM = 'CUM_AER_STRB' YCOMMENT = 'X_Y_Z_CUM_AER_OPT' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) ENDIF ENDIF ENDIF !!!!!!!!! paspol DO JSV=1,NSV_PP IGRID = 1 YDIR = 'XY' WRITE(YRECFM,'(A3,I3.3)')'ATC',JSV+NSV_PPBEG-1 WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','ATC',JSV+NSV_PPBEG-1,' (1/M3) ' ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZSTORE_3D,IGRID,ILENCH, & YCOMMENT,IRESP) END DO !! !!!!!!!!! turb IF (NRRL >=1) THEN IF (LTURB_DIAG) THEN YRECFM ='ATHETA' YCOMMENT='X_Y_Z_ATHETA (M)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM ='AMOIST' YCOMMENT='X_Y_Z_AMOIST (M)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF !! !! cloud_modif_lm IF (NMODEL_CLOUD==IMI .AND. CTURBLEN_CLOUD/='NONE') THEN YRECFM ='LM_CLEAR_SKY' YCOMMENT='X_Y_Z_LM CLEAR SKY (M)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM ='COEF_AMPL' YCOMMENT='X_Y_Z_COEF AMPL (-)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM ='LM_CLOUD' YCOMMENT='X_Y_Z_LM CLOUD (M)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) END IF !! turb_ver !!!! prandtl IF ( LTURB_FLX ) THEN ! stores the RED_TH1 YRECFM ='RED_TH1' YCOMMENT='X_Y_Z_RED_TH1 (0)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the RED_R1 YRECFM ='RED_R1' YCOMMENT='X_Y_Z_RED_R1 (0)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the RED2_TH3 YRECFM ='RED2_TH3' YCOMMENT='X_Y_Z_RED2_TH3 (0)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the RED2_R3 YRECFM ='RED2_R3' YCOMMENT='X_Y_Z_RED2_R3 (0)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the RED2_THR3 YRECFM ='RED2_THR3' YCOMMENT='X_Y_Z_RED2_THR3 (0)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) END IF !!!! turb_ver_thermo_flux IF ( LTURB_FLX ) THEN ! stores the conservative potential temperature vertical flux YRECFM ='THW_FLX' YCOMMENT='X_Y_Z_THW_FLX (K*M/S)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the conservative mixing ratio vertical flux YRECFM ='RCONSW_FLX' YCOMMENT='X_Y_Z_RCONSW_FLX (KG*M/S/KG)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! store the liquid water mixing ratio vertical flux YRECFM ='RCW_FLX' YCOMMENT='X_Y_Z_RCW_FLX (KG*M/S/KG)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! !!!! turb_ver_thermo_corr ! stores <THl THl> YRECFM ='THL_VVAR' YCOMMENT='X_Y_Z_THL_VVAR (KELVIN**2)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores <THl Rnp> IF ( NRR /= 0 ) THEN YRECFM ='THLRCONS_VCOR' YCOMMENT='X_Y_Z_THLRCONS_VCOR (KELVIN*KG/KG)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores <Rnp Rnp> YRECFM ='RTOT_VVAR' YCOMMENT='X_Y_Z_RTOT_VVAR (KG/KG **2)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) END IF !! !!!! turb_ver_dyn_flux ! stores the U wind component vertical flux YRECFM ='UW_VFLX' YCOMMENT='X_Y_Z_UW_VFLX (M**2/S**2)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the V wind component vertical flux YRECFM ='VW_VFLX' YCOMMENT='X_Y_Z_VW_VFLX (M**2/S**2)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! !! IF ( CTURBDIM == '1DIM') THEN ! stores the W variance YRECFM ='W_VVAR' YCOMMENT='X_Y_Z_W_VVAR (M**2/S**2)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF !!!! turb_ver_sv_flux IF (SIZE(XSVT,4)>0) THEN DO JSV=1, SIZE(XSVT,4) IF (LTURB_FLX ) THEN ! stores the JSVth vertical flux WRITE(YRECFM,'("WSV_FLX_",I3.3)') JSV YCOMMENT='X_Y_Z_'//YRECFM//' (SVUNIT*M/S)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) END IF END DO END IF !! back to turb_ver IF ( LTURB_FLX ) THEN ! stores the Turbulent Prandtl number YRECFM ='PHI3' YCOMMENT='X_Y_Z_PHI3 (0)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) ! ! stores the Turbulent Schmidt number YRECFM ='PSI3' YCOMMENT='X_Y_Z_PSI3 (0)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) ! ! stores the Turbulent Schmidt number for the scalar variables ! DO JSV=1,NSV WRITE(YRECFM, '("PSI_SV_",I3.3)') JSV YCOMMENT='X_Y_Z_'//YRECFM//' (0)' IGRID = 4 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) END DO END IF IF (CTURBDIM=='3DIM') THEN !! turb_hor_splt !!!! turb_hor case split and no split == idem A VERIFIER !! turb_hor !!!!!! turb_hor_thermo_flux IF ( LTURB_FLX ) THEN ! stores the horizontal <U THl> YRECFM ='UTHL_FLX' YCOMMENT='X_Y_Z_UTHL_FLX (KELVIN*M/S) ' IGRID = 2 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the horizontal <U Rnp> YRECFM ='UR_FLX' YCOMMENT='X_Y_Z_UR_FLX (KG/KG * M/S) ' IGRID = 2 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the horizontal <V THl> YRECFM ='VTHL_FLX' YCOMMENT='X_Y_Z_VTHL_FLX (KELVIN*M/S) ' IGRID = 3 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! IF (NRR/=0) THEN ! stores the horizontal <V Rnp> YRECFM ='VR_FLX' YCOMMENT='X_Y_Z_VR_FLX (KG/KG * M/S) ' IGRID = 3 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) END IF !! END IF !! IF (KSPLT==1) THEN !!!!!! turb_hor_thermo_corr IF ( LTURB_FLX ) THEN ! stores <THl THl> YRECFM ='THL_HVAR' YCOMMENT='X_Y_Z_THL_HVAR (KELVIN**2)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) IF ( NRR /= 0 ) THEN YRECFM ='THLR_HCOR' YCOMMENT='X_Y_Z_THLR_HCOR (KELVIN*KG/KG)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM ='R_HVAR' YCOMMENT='X_Y_Z_R_HVAR (KG/KG **2)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF !!!!!! turb_hor_dyn_corr ! stores <U U> YRECFM ='U_VAR' YCOMMENT='X_Y_Z_U_VAR ( (M/S)**2)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores <V V> YRECFM ='V_VAR' YCOMMENT='X_Y_Z_V_VAR ( (M/S)**2)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores <W W> YRECFM ='W_VAR' YCOMMENT='X_Y_Z_W_VAR ( (M/S)**2)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !!!!!! turb_hor_uv ! stores <U V> YRECFM ='UV_FLX' YCOMMENT='X_Y_Z_UV_FLX ( (M/S) **2 ) ' IGRID = 5 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF !! IF ( LTURB_FLX ) THEN ! stores <U W> YRECFM ='UW_HFLX' YCOMMENT='X_Y_Z_UW_HFLX ( (M/S) **2 ) ' IGRID = 6 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) END IF !!!!!! turb_hor_vw IF ( LTURB_FLX ) THEN ! stores <V W> YRECFM ='VW_HFLX' YCOMMENT='X_Y_Z_VW_HFLX ( (M/S) **2 ) ' IGRID = 7 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) END IF !!!!!! turb_hor_sv_flux IF ( LTURB_FLX ) THEN DO JSV=1,NSV_USER ! stores <U SVth> WRITE(YRECFM,'("USV_FLX_",I3.3)') JSV YCOMMENT='X_Y_Z_'//YRECFM//' (SVUNIT*M/S)' IGRID = 2 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) IF (.NOT. L2D) THEN ! stores <V SVth> WRITE(YRECFM,'("VSV_FLX_",I3.3)') JSV YCOMMENT='X_Y_Z_'//YRECFM//' (SVUNIT*M/S)' IGRID = 3 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) END IF END DO END IF !! IF ( LTURB_DIAG ) THEN ! stores the dynamic production YRECFM ='DP' YCOMMENT='X_Y_Z_DP (M**2/S**3)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the thermal production YRECFM ='TP' YCOMMENT='X_Y_Z_TP (M**2/S**3)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the whole turbulent transport YRECFM ='TR' YCOMMENT='X_Y_Z_TR (M**2/S**3)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the dissipation of TKE YRECFM ='DISS' YCOMMENT='X_Y_Z_DISS (M**2/S**3)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! IF ( LTURB_DIAG ) THEN ! stores the mixing length YRECFM ='LM' YCOMMENT='X_Y_Z_LM (M)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !! IF (NRR /= 0) THEN ! stores the conservative potential temperature YRECFM ='THLM' YCOMMENT='X_Y_Z_THLM (KELVIN)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the conservative mixing ratio YRECFM ='RNPM' YCOMMENT='X_Y_Z_RNPM (KG/KG)' IGRID = 1 ILENCH=LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH, & YCOMMENT,IRESP) END IF END IF !! IF ( LTURB_DIAG ) THEN YRECFM ='LM_CLEAR_SKY' YCOMMENT='X_Y_Z_LM CLEAR SKY (M)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM ='COEF_AMPL' YCOMMENT='X_Y_Z_COEF AMPL (-)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM ='LM_CLOUD' YCOMMENT='X_Y_Z_LM CLOUD (M)' IGRID = 1 ILENCH = LEN(YCOMMENT) CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !! END IF !!!! tke_eps_sources !IF ( LTURB_DIAG ) THEN ! ! stores the dynamic production ! YRECFM ='DP' ! YCOMMENT='X_Y_Z_DP (M**2/S**3)' ! IGRID = 1 ! ILENCH=LEN(YCOMMENT) ! CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !!! ! ! stores the thermal production ! YRECFM ='TP' ! YCOMMENT='X_Y_Z_TP (M**2/S**3)' ! IGRID = 1 ! ILENCH=LEN(YCOMMENT) ! CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !!! ! ! stores the whole turbulent transport ! YRECFM ='TR' ! YCOMMENT='X_Y_Z_TR (M**2/S**3)' ! IGRID = 1 ! ILENCH=LEN(YCOMMENT) ! CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !!! ! ! stores the dissipation of TKE ! YRECFM ='DISS' ! YCOMMENT='X_Y_Z_DISS (M**2/S**3)' ! IGRID = 1 ! ILENCH=LEN(YCOMMENT) ! CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP) !END IF !! !!!!!!!!! Shallow_mf_pack IF (CSCONV == 'EDKF') THEN IF ( LMF_FLX ) THEN ! stores the conservative potential temperature vertical flux YRECFM ='MF_THW_FLX' YCOMMENT='X_Y_Z_MF_THW_FLX (K*M/S)' ILENCH = LEN(YCOMMENT) IGRID = 4 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the conservative mixing ratio vertical flux YRECFM ='MF_RCONSW_FLX' YCOMMENT='X_Y_Z_MF_RCONSW_FLX (K*M/S)' ILENCH = LEN(YCOMMENT) IGRID = 4 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the theta_v vertical flux YRECFM ='MF_THVW_FLX' YCOMMENT='X_Y_Z_MF_THVW_FLX (K*M/S)' ILENCH = LEN(YCOMMENT) IGRID = 4 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! IF (LMIXUV) THEN ! stores the U momentum vertical flux YRECFM ='MF_UW_FLX' YCOMMENT='X_Y_Z_MF_UW_FLX (M2/S2)' ILENCH = LEN(YCOMMENT) IGRID = 4 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! ! stores the V momentum vertical flux YRECFM ='MF_VW_FLX' YCOMMENT='X_Y_Z_MF_VW_FLX (M2/S2)' ILENCH = LEN(YCOMMENT) IGRID = 4 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF END IF !! ! RESOLVED CLOUD CASE C2R2 !!! rain_c2r2 IF (CCLOUD == 'C2R2' ) THEN YRECFM ='RAY' YCOMMENT='X_Y_Z_DIAM' ILENCH=LEN(YCOMMENT) IGRID = 1 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM ='TERM_VEL' YCOMMENT='X_Y_Z_TERM_VEL' ILENCH=LEN(YCOMMENT) IGRID = 1 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! IF ( LSEDC ) THEN YRECFM ='SEDSPEEDC' YCOMMENT='X_Y_Z_SEDSPEEDC' ILENCH=LEN(YCOMMENT) IGRID = 1 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) END IF !! YRECFM ='ZCHEN' YCOMMENT='X_Y_Z_ZCHEN' ILENCH=LEN(YCOMMENT) IGRID = 1 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! YRECFM ='SURSAT' YCOMMENT='X_Y_Z_SURSAT' ILENCH=LEN(YCOMMENT) IGRID = 1 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! c2r2_adjust YRECFM ='NEB' YCOMMENT='X_Y_Z_NEB (0)' ILENCH=LEN(YCOMMENT) IGRID = 1 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZSTORE_3D, & IGRID,ILENCH,YCOMMENT,IRESP) !! END IF ! !!!!!!!!!!!!CALL WRITE_LB_n(HFMFILE) ! ! ! DEALLOCATE(ZSTORE_2D,ZSTORE_3D,ZSTORE_3DWL) ! !-------------------------------------------------------------------------------! ! END SUBROUTINE WRITE_PHYS_PARAM #endif