From 0952c22db92de9384faf70ee8e30589ed3a2893e Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 27 Mar 2017 14:13:47 +0200 Subject: [PATCH] Philippe 27/03/2017: IO: use IO_WRITE_FIELD for FREE_ATM_PROFILE + propagate file structure to this subroutine --- src/MNH/diag.f90 | 2 +- src/MNH/free_atm_profile.f90 | 47 ++- src/MNH/prep_ideal_case.f90 | 8 +- src/MNH/prep_real_case.f90 | 4 +- src/MNH/set_cstn.f90 | 21 +- src/MNH/set_mass.f90 | 24 +- src/MNH/set_rsou.f90 | 32 +- src/MNH/ver_int_thermo.f90 | 19 +- src/MNH/ver_thermo.f90 | 23 +- src/MNH/write_lfifm1_for_diag.f90 | 529 +++++++++++++++--------------- 10 files changed, 378 insertions(+), 331 deletions(-) diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90 index 7ee918dbe..c4389ab79 100644 --- a/src/MNH/diag.f90 +++ b/src/MNH/diag.f90 @@ -516,7 +516,7 @@ ENDIF ! !* 4.0 Stores the fields in MESONH files if necessary ! -CALL WRITE_LFIFM1_FOR_DIAG(YFMFILE,CDAD_NAME(1)) +CALL WRITE_LFIFM1_FOR_DIAG(TZFILE,CDAD_NAME(1)) ! WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) 'DIAG AFTER WRITE_LFIFM1_FOR_DIAG' diff --git a/src/MNH/free_atm_profile.f90 b/src/MNH/free_atm_profile.f90 index e0bd002a1..c6a133dab 100644 --- a/src/MNH/free_atm_profile.f90 +++ b/src/MNH/free_atm_profile.f90 @@ -11,9 +11,12 @@ MODULE MODI_FREE_ATM_PROFILE ! ############################ INTERFACE - SUBROUTINE FREE_ATM_PROFILE(PVAR_MX,PZMASS_MX,PZS_LS,PZSMT_LS,PCLIMGR,& + SUBROUTINE FREE_ATM_PROFILE(TPFILE,PVAR_MX,PZMASS_MX,PZS_LS,PZSMT_LS,PCLIMGR,& PF_FREE,PZ_FREE) ! +USE MODD_IO_ll, ONLY : TFILEDATA +! +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics REAL, DIMENSION(:,:,:), INTENT(IN) :: PVAR_MX ! thermodynamical field REAL, DIMENSION(:,:,:), INTENT(IN) :: PZMASS_MX ! mass points altitude REAL, DIMENSION(:,:), INTENT(IN) :: PZS_LS ! large scale orography @@ -30,7 +33,7 @@ END SUBROUTINE FREE_ATM_PROFILE END INTERFACE END MODULE MODI_FREE_ATM_PROFILE ! ############################################################## - SUBROUTINE FREE_ATM_PROFILE(PVAR_MX,PZMASS_MX,PZS_LS,PZSMT_LS,PCLIMGR,& + SUBROUTINE FREE_ATM_PROFILE(TPFILE,PVAR_MX,PZMASS_MX,PZS_LS,PZSMT_LS,PCLIMGR,& PF_FREE,PZ_FREE) ! ############################################################## ! @@ -98,10 +101,12 @@ USE MODI_COEF_VER_INTERP_LIN USE MODI_VER_INTERP_LIN USE MODI_VERT_COORD ! +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_FMWRIT USE MODE_FM ! USE MODD_CONF ! declaration modules +USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_LUNIT USE MODD_LUNIT_n USE MODD_GRID_n @@ -115,6 +120,7 @@ IMPLICIT NONE ! !* 0.1 Declaration of arguments ! ------------------------ +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics REAL, DIMENSION(:,:,:), INTENT(IN) :: PVAR_MX ! thermodynamical field REAL, DIMENSION(:,:,:), INTENT(IN) :: PZMASS_MX ! mass points altitude REAL, DIMENSION(:,:), INTENT(IN) :: PZS_LS ! large scale orography @@ -171,6 +177,7 @@ REAL, DIMENSION(SIZE(XZZ,1),SIZE(XZZ,2),SIZE(XZZ,3)) & :: Z3D ! field to be recorded REAL, DIMENSION(SIZE(XZZ,1),SIZE(XZZ,2),SIZE(XZZ,3)) & :: ZZMASS ! MESO-NH output mass grid +TYPE(TFIELDDATA) :: TZFIELD !------------------------------------------------------------------------------- CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) ! @@ -479,7 +486,7 @@ IF (CPROGRAM == 'DIAG ' ) THEN YCOMMENT='Height of Boundary Layer TOP (M)' ILENCH=LEN(YCOMMENT) IGRID=4 - CALL FMWRIT(CINIFILE,YRECFM,CLUOUT0,'XY',Z2D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(TPFILE%CNAME,YRECFM,CLUOUT0,'XY',Z2D,IGRID,ILENCH,YCOMMENT,IRESP) ! !* 11.2 Writing of level of boundary layer top ! -------------------------------------- @@ -489,7 +496,7 @@ IF (CPROGRAM == 'DIAG ' ) THEN YCOMMENT='Index of Boundary Layer TOP ( )' ILENCH=LEN(YCOMMENT) IGRID=4 - CALL FMWRIT(CINIFILE,YRECFM,CLUOUT0,'XY',Z2D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(TPFILE%CNAME,YRECFM,CLUOUT0,'XY',Z2D,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! IF (CPROGRAM /= 'DIAG ' .AND. CPROGRAM /= 'IDEAL ' ) THEN @@ -498,11 +505,17 @@ IF (CPROGRAM /= 'DIAG ' .AND. CPROGRAM /= 'IDEAL ' ) THEN ! ----------------------------------- ! Z2D(:,:)=ZFREE_GR(:,:) - YRECFM='FREE_ATM_GR' - YCOMMENT='K/M' - ILENCH=LEN(YCOMMENT) - IGRID=4 - CALL FMWRIT(CINIFILE,YRECFM,CLUOUT0,'XY',Z2D,IGRID,ILENCH,YCOMMENT,IRESP) +! + TZFIELD%CMNHNAME = 'FREE_ATM_GR' + TZFIELD%CSTDNAME = '' + TZFIELD%CLONGNAME = 'MesoNH: FREE_ATM_GR' + TZFIELD%CUNITS = 'K m-1' + TZFIELD%CDIR = 'XY' + TZFIELD%CCOMMENT = 'Free atmosphere gradient' + TZFIELD%NGRID = 4 + TZFIELD%NTYPE = TYPEREAL + TZFIELD%NDIMS = 2 + CALL IO_WRITE_FIELD(TPFILE,TZFIELD,CLUOUT0,IRESP,Z2D) ! !* 11.4 Writing of free atmosphere 3D profiles ! -------------------------------------- @@ -512,11 +525,17 @@ IF (CPROGRAM /= 'DIAG ' .AND. CPROGRAM /= 'IDEAL ' ) THEN ! CALL COEF_VER_INTERP_LIN(PZ_FREE(:,:,:),ZZMASS(:,:,:),OLEUG=.TRUE.) Z3D(:,:,:)=VER_INTERP_LIN(PF_FREE(:,:,:),NKLIN(:,:,:),XCOEFLIN(:,:,:)) - YRECFM='THV_FREE' - YCOMMENT='X_Y_Z_THV_FREE (K)' - ILENCH=LEN(YCOMMENT) - IGRID=4 - CALL FMWRIT(CINIFILE,YRECFM,CLUOUT0,'XY',Z3D,IGRID,ILENCH,YCOMMENT,IRESP) +! + TZFIELD%CMNHNAME = 'THV_FREE' + TZFIELD%CSTDNAME = '' + TZFIELD%CLONGNAME = 'MesoNH: THV_FREE' + TZFIELD%CUNITS = 'K' + TZFIELD%CDIR = 'XY' + TZFIELD%CCOMMENT = 'X_Y_Z_THV_FREE' + TZFIELD%NGRID = 4 + TZFIELD%NTYPE = TYPEREAL + TZFIELD%NDIMS = 3 + CALL IO_WRITE_FIELD(TPFILE,TZFIELD,CLUOUT0,IRESP,Z3D) ! END IF !------------------------------------------------------------------------------- diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index 808cb2ba8..95498935a 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -1512,10 +1512,10 @@ IF (CIDEAL == 'RSOU') THEN BACKSPACE(NLUPRE) ! because YKIND read again in set_rsou WRITE(NLUOUT,FMT=*) 'CIDEAL="RSOU", ATTEMPT TO PROCESS THE SOUNDING DATA' IF (LGEOSBAL) THEN - CALL SET_RSOU(CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& + CALL SET_RSOU(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& LRMV_BL,XJ,LSHIFT,XCORIOZ) ELSE - CALL SET_RSOU(CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& + CALL SET_RSOU(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& LRMV_BL,XJ,LSHIFT) END IF ! @@ -1531,10 +1531,10 @@ ELSE IF (CIDEAL == 'CSTN') THEN TDTMOD = TDTCUR WRITE(NLUOUT,FMT=*) 'CIDEAL="CSTN", ATTEMPT TO PROCESS THE SOUNDING DATA' IF (LGEOSBAL) THEN - CALL SET_CSTN(CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& + CALL SET_CSTN(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& LRMV_BL,XJ,LSHIFT,XCORIOZ) ELSE - CALL SET_CSTN(CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& + CALL SET_CSTN(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& LRMV_BL,XJ,LSHIFT) END IF ! diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index 0280429b7..6a9256cdf 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -914,10 +914,10 @@ ALLOCATE(XPSURF(SIZE(XXHAT),SIZE(XYHAT))) ! CALL EXTRAPOL('E',XEXNTOP2D) IF (YATMFILETYPE=='GRIBEX') THEN - CALL VER_THERMO(LSHIFT,XTHV_MX,XR_MX,XZS_LS,XZSMT_LS,XZMASS_MX,XZFLUX_MX,XPMHP_MX,ZJ, & + CALL VER_THERMO(TZFILE,LSHIFT,XTHV_MX,XR_MX,XZS_LS,XZSMT_LS,XZMASS_MX,XZFLUX_MX,XPMHP_MX,ZJ, & XDXX,XDYY,XEXNTOP2D,XPSURF,ZDG ) ELSE IF (YATMFILETYPE=='MESONH') THEN - CALL VER_THERMO(LSHIFT,XTHV_MX,XR_MX,XZS_LS,XZSMT_LS,XZMASS_MX,XZFLUX_MX,XPMHP_MX,ZJ, & + CALL VER_THERMO(TZFILE,LSHIFT,XTHV_MX,XR_MX,XZS_LS,XZSMT_LS,XZMASS_MX,XZFLUX_MX,XPMHP_MX,ZJ, & XDXX,XDYY,XEXNTOP2D,XPSURF,ZDG, & XLSTH_MX,XLSRV_MX ) END IF diff --git a/src/MNH/set_cstn.f90 b/src/MNH/set_cstn.f90 index 577fbc583..bb079589a 100644 --- a/src/MNH/set_cstn.f90 +++ b/src/MNH/set_cstn.f90 @@ -13,8 +13,11 @@ ! INTERFACE ! -SUBROUTINE SET_CSTN(HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) +SUBROUTINE SET_CSTN(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) ! +USE MODD_IO_ll, ONLY : TFILEDATA +! +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file CHARACTER(LEN=*), INTENT(IN) :: HFUNU ! type of variation of U ! in y direction @@ -40,7 +43,7 @@ END MODULE MODI_SET_CSTN ! ! ! ################################################################################## - SUBROUTINE SET_CSTN(HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) + SUBROUTINE SET_CSTN(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) ! ################################################################################## ! !!**** *SET_CSTN * - routine to initialize mass and wind fields from a Nv=cste @@ -170,6 +173,7 @@ END MODULE MODI_SET_CSTN ! ------------ ! USE MODD_CST ! declarative modules +USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_LUNIT_n USE MODD_CONF USE MODD_GRID_n @@ -192,6 +196,7 @@ IMPLICIT NONE ! !* 0.1 Declarations of arguments : ! +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file CHARACTER(LEN=*), INTENT(IN) :: HFUNU ! type of variation of U ! in y direction @@ -418,13 +423,13 @@ ZMRM(:) = SM_PMR_HU(CLUOUT,ZPM(:),ZTVM(:),ZHUM(:), & ! ------------------------------------------------- ! IF (PRESENT(PCORIOZ)) THEN - CALL SET_MASS(GPROFILE_IN_PROC, ZZFLUX_PROFILE, & - KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,& - ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PCORIOZ=PCORIOZ) + CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE, & + KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND, & + ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PCORIOZ=PCORIOZ) ELSE - CALL SET_MASS(GPROFILE_IN_PROC, ZZFLUX_PROFILE, & - KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,& - ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV) + CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE, & + KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND, & + ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV) ENDIF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/set_mass.f90 b/src/MNH/set_mass.f90 index 55aa53f70..9d4873001 100644 --- a/src/MNH/set_mass.f90 +++ b/src/MNH/set_mass.f90 @@ -8,9 +8,13 @@ ! INTERFACE ! -SUBROUTINE SET_MASS(OPROFILE_IN_PROC, PZFLUX_PROFILE, & - KILOC,KJLOC,PZS_MX,PZMASS_MX,PZFLUX_MX,PPGROUND,& - PTHVM,PMRM,PUW,PVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PMRCM,PMRIM,PCORIOZ) +SUBROUTINE SET_MASS(TPFILE,OPROFILE_IN_PROC, PZFLUX_PROFILE, & + KILOC,KJLOC,PZS_MX,PZMASS_MX,PZFLUX_MX,PPGROUND, & + PTHVM,PMRM,PUW,PVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PMRCM,PMRIM,PCORIOZ) +! +USE MODD_IO_ll, ONLY : TFILEDATA +! +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics LOGICAL, INTENT(IN) :: OPROFILE_IN_PROC ! initialization profile in current processor REAL, DIMENSION(:), INTENT(IN) :: PZFLUX_PROFILE ! Z at flux points on the initialization point column INTEGER, INTENT(IN) :: KILOC ! I Localisation of vertical profile @@ -44,9 +48,9 @@ END MODULE MODI_SET_MASS ! ! ! ########################################################################## - SUBROUTINE SET_MASS(OPROFILE_IN_PROC, PZFLUX_PROFILE, & - KILOC,KJLOC,PZS_MX,PZMASS_MX,PZFLUX_MX,PPGROUND,& - PTHVM,PMRM,PUW,PVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PMRCM,PMRIM,PCORIOZ) +SUBROUTINE SET_MASS(TPFILE,OPROFILE_IN_PROC, PZFLUX_PROFILE, & + KILOC,KJLOC,PZS_MX,PZMASS_MX,PZFLUX_MX,PPGROUND, & + PTHVM,PMRM,PUW,PVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PMRCM,PMRIM,PCORIOZ) ! ########################################################################## ! !!**** *SET_MASS * - routine to initialize mass and wind fields on MESONH grid @@ -119,6 +123,7 @@ END MODULE MODI_SET_MASS ! use des modules USE MODD_GRID_n ! declarative modules USE MODD_GRID +USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_CONF USE MODD_CONF_n USE MODD_FIELD_n @@ -147,8 +152,9 @@ IMPLICIT NONE ! !* 0.1 Declarations of arguments : ! -LOGICAL, INTENT(IN) :: OPROFILE_IN_PROC ! initialization profile in current processor -REAL, DIMENSION(:), INTENT(IN) :: PZFLUX_PROFILE ! Z at flux points on the initialization point column +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics +LOGICAL, INTENT(IN) :: OPROFILE_IN_PROC ! initialization profile in current processor +REAL, DIMENSION(:), INTENT(IN) :: PZFLUX_PROFILE ! Z at flux points on the initialization point column INTEGER, INTENT(IN) :: KILOC ! I Localisation of vertical profile INTEGER, INTENT(IN) :: KJLOC ! J Localisation of vertical profile REAL, DIMENSION(:,:), INTENT(IN) :: PZS_MX ! zs on the mixed grid @@ -445,7 +451,7 @@ ELSE ! Interpolation of theta and r ! IF (SIZE(ZTHV3D_MX,3) > 3) THEN - CALL VER_INT_THERMO(OSHIFT,ZTHV3D_MX,ZMR3D_MX,PZS_MX,PZS_MX,PZMASS_MX,& + CALL VER_INT_THERMO(TPFILE,OSHIFT,ZTHV3D_MX,ZMR3D_MX,PZS_MX,PZS_MX,PZMASS_MX,& PZFLUX_MX,ZPMHP_MX,ZEXNTOP2D, & ZTHV3D,XRT,ZPMHP,ZDIAG) ELSE diff --git a/src/MNH/set_rsou.f90 b/src/MNH/set_rsou.f90 index 35cce87c8..5bcc56b3a 100644 --- a/src/MNH/set_rsou.f90 +++ b/src/MNH/set_rsou.f90 @@ -13,8 +13,12 @@ ! INTERFACE ! -SUBROUTINE SET_RSOU(HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) + SUBROUTINE SET_RSOU(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,& + ORMV_BL,PJ,OSHIFT,PCORIOZ) +! +USE MODD_IO_ll, ONLY : TFILEDATA ! +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file CHARACTER(LEN=*), INTENT(IN) :: HFUNU ! type of variation of U ! in y direction @@ -37,12 +41,10 @@ END INTERFACE ! END MODULE MODI_SET_RSOU ! -! -! -! ######spl - SUBROUTINE SET_RSOU(HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,& +! ########################################################################### + SUBROUTINE SET_RSOU(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,& ORMV_BL,PJ,OSHIFT,PCORIOZ) -! ########################################################################################## +! ########################################################################### ! !!**** *SET_RSOU * - to initialize mass fiels from a radiosounding !! @@ -251,6 +253,7 @@ END MODULE MODI_SET_RSOU ! ------------ ! USE MODD_CST ! declarative modules +USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_LUNIT_n USE MODD_CONF USE MODD_CONF_n @@ -281,6 +284,7 @@ IMPLICIT NONE ! !* 0.1 Declarations of arguments : ! +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file CHARACTER(LEN=*), INTENT(IN) :: HFUNU ! type of variation of U ! in y direction @@ -1266,15 +1270,15 @@ DEALLOCATE(ZMRT) !* 4. COMPUTE FIELDS ON THE MODEL GRID (WITH OROGRAPHY) ! ------------------------------------------------- IF (PRESENT(PCORIOZ)) THEN - CALL SET_MASS(GPROFILE_IN_PROC, ZZFLUX_PROFILE, & - KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,& - ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,& - PMRCM=ZMRCM,PMRIM=ZMRIM,PCORIOZ=PCORIOZ) + CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE, & + KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,& + ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV, & + PMRCM=ZMRCM,PMRIM=ZMRIM,PCORIOZ=PCORIOZ) ELSE - CALL SET_MASS(GPROFILE_IN_PROC, ZZFLUX_PROFILE, & - KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,& - ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,& - PMRCM=ZMRCM,PMRIM=ZMRIM) + CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE, & + KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,& + ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV, & + PMRCM=ZMRCM,PMRIM=ZMRIM) ENDIF ! !------------------------------------------------------------------------------- diff --git a/src/MNH/ver_int_thermo.f90 b/src/MNH/ver_int_thermo.f90 index 29f1bf8aa..9c39d1024 100644 --- a/src/MNH/ver_int_thermo.f90 +++ b/src/MNH/ver_int_thermo.f90 @@ -11,11 +11,14 @@ MODULE MODI_VER_INT_THERMO ! ########################## INTERFACE - SUBROUTINE VER_INT_THERMO(OSHIFT, & + SUBROUTINE VER_INT_THERMO(TPFILE,OSHIFT, & PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX, & - PPMHP_MX,PEXNTOP2D,PTHV,PR,PPMHP,PDIAG, & - PLSTH_MX, PLSRV_MX, PLSTHM, PLSRVM ) + PPMHP_MX,PEXNTOP2D,PTHV,PR,PPMHP,PDIAG, & + PLSTH_MX, PLSRV_MX, PLSTHM, PLSRVM ) ! +USE MODD_IO_ll, ONLY : TFILEDATA +! +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics LOGICAL, INTENT(IN) :: OSHIFT ! T: vertical shift of BL (used for GRIB file data) ! ! F: no vertical shift (used for MESONH data) REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHV_MX ! thetav on mixed grid @@ -42,10 +45,10 @@ END SUBROUTINE VER_INT_THERMO END INTERFACE END MODULE MODI_VER_INT_THERMO ! ####################################################################### - SUBROUTINE VER_INT_THERMO(OSHIFT, & + SUBROUTINE VER_INT_THERMO(TPFILE,OSHIFT, & PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX, & - PPMHP_MX,PEXNTOP2D,PTHV,PR,PPMHP,PDIAG, & - PLSTH_MX, PLSRV_MX, PLSTHM, PLSRVM ) + PPMHP_MX,PEXNTOP2D,PTHV,PR,PPMHP,PDIAG, & + PLSTH_MX, PLSRV_MX, PLSTHM, PLSRVM ) ! ####################################################################### ! !!**** *VER_INT_THERMO* - Vertical shift and interpolation of thetav and rv. @@ -154,6 +157,7 @@ USE MODI_WATER_SUM ! USE MODD_CONF ! declaration modules USE MODD_CONF_n +USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_LUNIT USE MODD_GRID_n USE MODD_PARAMETERS @@ -172,6 +176,7 @@ IMPLICIT NONE ! !* 0.1 Declaration of arguments ! ------------------------ +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics LOGICAL, INTENT(IN) :: OSHIFT ! T: vertical shift of BL (used for GRIB file data) ! ! F: no vertical shift (used for MESONH data) REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHV_MX ! thetav on mixed grid @@ -346,7 +351,7 @@ CALL MPPDB_CHECK3D(ZPMHPOHP_SH,"ver_int_thermo2a::ZPMHPOHP_SH",PRECISION) ! -------------------------------- ! ZTHVCLIMGR=3.5E-3 ! K/m -CALL FREE_ATM_PROFILE(PTHV_MX,PZMASS_MX,PZS_LS,PZSMT_LS,ZTHVCLIMGR,ZTHV_FREE,ZZ_FREE) +CALL FREE_ATM_PROFILE(TPFILE,PTHV_MX,PZMASS_MX,PZS_LS,PZSMT_LS,ZTHVCLIMGR,ZTHV_FREE,ZZ_FREE) CALL MPPDB_CHECK3D(ZTHV_FREE,"VER_INT_THERMO:ZTHV_FREE",PRECISION) ! !* 3.2 Computation of the value of thetav on the shifted grid diff --git a/src/MNH/ver_thermo.f90 b/src/MNH/ver_thermo.f90 index 29fbd754d..80b01052c 100644 --- a/src/MNH/ver_thermo.f90 +++ b/src/MNH/ver_thermo.f90 @@ -11,11 +11,14 @@ MODULE MODI_VER_THERMO ! ###################### INTERFACE - SUBROUTINE VER_THERMO(OSHIFT, & + SUBROUTINE VER_THERMO(TPFILE,OSHIFT, & PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX,PPMHP_MX,PJ, & - PDXX,PDYY,PEXNTOP2D,PPSURF,PDIAG, & - PLSTH_MX,PLSRV_MX ) + PDXX,PDYY,PEXNTOP2D,PPSURF,PDIAG, & + PLSTH_MX,PLSRV_MX ) ! +USE MODD_IO_ll, ONLY : TFILEDATA +! +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics LOGICAL, INTENT(IN) :: OSHIFT ! T: vertical shift of BL (used for GRIB file data) ! ! F: no vertical shift (used for MESONH data) REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHV_MX ! thetav on mixed grid @@ -39,11 +42,11 @@ REAL,DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: PLSRV_MX ! large scale vapor mixi END SUBROUTINE VER_THERMO END INTERFACE END MODULE MODI_VER_THERMO -! ######spl - SUBROUTINE VER_THERMO(OSHIFT, & +! ###################################################################### + SUBROUTINE VER_THERMO(TPFILE,OSHIFT, & PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX,PPMHP_MX,PJ, & - PDXX,PDYY,PEXNTOP2D,PPSURF,PDIAG, & - PLSTH_MX,PLSRV_MX ) + PDXX,PDYY,PEXNTOP2D,PPSURF,PDIAG, & + PLSTH_MX,PLSRV_MX ) ! ###################################################################### ! !!**** *VER_THERMO* - initializes the thermodynamic and reference state @@ -164,6 +167,7 @@ USE MODI_WATER_SUM ! USE MODD_CONF ! declaration modules USE MODD_CONF_n +USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_LUNIT USE MODD_CST USE MODD_FIELD_n, ONLY: XTHT,XRT,XPABST,XDRYMASST @@ -190,6 +194,7 @@ IMPLICIT NONE ! !* 0.1 Declaration of arguments ! ------------------------ +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics LOGICAL, INTENT(IN) :: OSHIFT ! T: vertical shift of BL (used for GRIB file data) ! ! F: no vertical shift (used for MESONH data) REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHV_MX ! thetav on mixed grid @@ -268,10 +273,10 @@ IF ( PRESENT(PLSTH_MX)) THEN CALL MPPDB_CHECK3D(PLSTH_MX,"PLSTH_MX",PRECISION) CALL MPPDB_CHECK3D(PLSRV_MX,"PLSRV_MX",PRECISION) ! - CALL VER_INT_THERMO(OSHIFT,PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX,PPMHP_MX,PEXNTOP2D, & + CALL VER_INT_THERMO(TPFILE,OSHIFT,PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX,PPMHP_MX,PEXNTOP2D, & ZTHV,XRT,ZPMHP,PDIAG,PLSTH_MX,PLSRV_MX,XLSTHM,XLSRVM) ELSE - CALL VER_INT_THERMO(OSHIFT,PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX,PPMHP_MX,PEXNTOP2D, & + CALL VER_INT_THERMO(TPFILE,OSHIFT,PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX,PPMHP_MX,PEXNTOP2D, & ZTHV,XRT,ZPMHP,PDIAG) END IF ! diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90 index 2dee895ca..911aa344f 100644 --- a/src/MNH/write_lfifm1_for_diag.f90 +++ b/src/MNH/write_lfifm1_for_diag.f90 @@ -12,10 +12,11 @@ MODULE MODI_WRITE_LFIFM1_FOR_DIAG !################################ INTERFACE - SUBROUTINE WRITE_LFIFM1_FOR_DIAG(HFMFILE,HDADFILE) -!* 0.1 Declarations of arguments + SUBROUTINE WRITE_LFIFM1_FOR_DIAG(TPFILE,HDADFILE) +! +USE MODD_IO_ll, ONLY : TFILEDATA ! -CHARACTER(LEN=28), INTENT(IN) :: HFMFILE ! Name of FM-file to write +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file CHARACTER(LEN=28), INTENT(IN) :: HDADFILE ! corresponding FM-file name of ! its DAD model ! @@ -24,7 +25,7 @@ END INTERFACE END MODULE MODI_WRITE_LFIFM1_FOR_DIAG ! ! ################################################## - SUBROUTINE WRITE_LFIFM1_FOR_DIAG(HFMFILE,HDADFILE) + SUBROUTINE WRITE_LFIFM1_FOR_DIAG(TPFILE,HDADFILE) ! ################################################## ! !!**** *WRITE_LFIFM1* - routine to write a LFIFM file for model 1 @@ -32,7 +33,7 @@ END MODULE MODI_WRITE_LFIFM1_FOR_DIAG !! PURPOSE !! ------- ! The purpose of this routine is to write an initial LFIFM File -! of name HFMFILE//'.lfi' with the FM routines. +! of name YFMFILE2//'.lfi' with the FM routines. ! !!** METHOD !! ------ @@ -105,7 +106,7 @@ END MODULE MODI_WRITE_LFIFM1_FOR_DIAG !! J.Stein P.Jabouille 30/04/96 add the storage type !! J.Stein P.Jabouille 20/05/96 switch for XSIGS and XSRC !! J.Stein 10/10/96 change Xsrc into XSRCM and XRCT -!! J.P. Lafore 30/07/96 add HFMFILE and HDADFILE writing +!! J.P. Lafore 30/07/96 add YFMFILE2 and HDADFILE writing !! corresponding to MY_NAME and DAD_NAME (for nesting) !! V.Masson 08/10/96 add LTHINSHELL !! J.-P. Pinty 15/12/96 add the microphysics (ice) @@ -151,6 +152,7 @@ USE MODD_CONF USE MODD_CONF_n USE MODD_GRID USE MODD_GRID_n +USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_METRICS_n USE MODD_TIME USE MODD_TIME_n @@ -241,7 +243,7 @@ IMPLICIT NONE ! !* 0.1 Declarations of arguments ! -CHARACTER(LEN=28), INTENT(IN) :: HFMFILE ! Name of FM-file to write +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file CHARACTER(LEN=28), INTENT(IN) :: HDADFILE ! corresponding FM-file name of ! its DAD model ! @@ -252,6 +254,7 @@ INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string ! CHARACTER(LEN=28) :: YFMFILE ! Temporary variable to store FM-file name +CHARACTER(LEN=28) :: YFMFILE2 ! Temporary variable to store FM-file name CHARACTER(LEN=16) :: YRECFM ! Name of the article to be written CHARACTER(LEN=100):: YCOMMENT ! Comment string ! @@ -344,74 +347,74 @@ CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) !* 1. WRITES IN THE LFI FILE ! ---------------------- ! -!* 1.0 HFMFILE and HDADFILE : +!* 1.0 YFMFILE2 and HDADFILE : ! YRECFM='MASDEV' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',NMASDEV,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',NMASDEV,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='BUGFIX' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',NBUGFIX,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',NBUGFIX,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='BIBUSER' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',CBIBUSER,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',CBIBUSER,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='PROGRAM' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',CPROGRAM,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',CPROGRAM,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='L1D' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',L1D,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',L1D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='L2D' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',L2D,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',L2D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='PACK' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',LPACK,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',LPACK,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='MY_NAME' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',HFMFILE,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',YFMFILE2,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DAD_NAME' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',HDADFILE,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',HDADFILE,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LEN_TRIM(HDADFILE)>0) THEN - CALL FMWRIT(HFMFILE,'DXRATIO',CLUOUT,'--',NDXRATIO_ALL(1),0,ILENCH,YCOMMENT,IRESP) - CALL FMWRIT(HFMFILE,'DYRATIO',CLUOUT,'--',NDYRATIO_ALL(1),0,ILENCH,YCOMMENT,IRESP) - CALL FMWRIT(HFMFILE,'XOR',CLUOUT,'--',NXOR_ALL(1),0,ILENCH,YCOMMENT,IRESP) - CALL FMWRIT(HFMFILE,'YOR',CLUOUT,'--',NYOR_ALL(1),0,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,'DXRATIO',CLUOUT,'--',NDXRATIO_ALL(1),0,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,'DYRATIO',CLUOUT,'--',NDYRATIO_ALL(1),0,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,'XOR',CLUOUT,'--',NXOR_ALL(1),0,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,'YOR',CLUOUT,'--',NYOR_ALL(1),0,ILENCH,YCOMMENT,IRESP) END IF ! YRECFM='SURF' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',CSURF,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',CSURF,IGRID,ILENCH,YCOMMENT,IRESP) ! !* 1.1 Type and Dimensions : ! @@ -420,31 +423,31 @@ YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) YSTORAGE_TYPE='DI' -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',YSTORAGE_TYPE,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',YSTORAGE_TYPE,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='IMAX' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',NIMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',NIMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='JMAX' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',NJMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',NJMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='KMAX' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',NKMAX,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',NKMAX,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='JPHEXT' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',JPHEXT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',JPHEXT,IGRID,ILENCH,YCOMMENT,IRESP) ! !* 1.2 Grid variables : ! @@ -453,19 +456,19 @@ IF (.NOT.LCARTESIAN) THEN YCOMMENT='projection parameter' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XRPK,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XRPK,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LONORI' YCOMMENT='longitude of the origin point (DEGREES)' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XLONORI,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XLONORI,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LATORI' YCOMMENT='latitude of the origin point (DEGREES)' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XLATORI,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XLATORI,IGRID,ILENCH,YCOMMENT,IRESP) ! !* diagnostic of 1st mass point ! @@ -481,13 +484,13 @@ IF (.NOT.LCARTESIAN) THEN YCOMMENT='longitude of the mass point 1-1 (DEGREES)' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',ZLONOR,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',ZLONOR,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LATOR' YCOMMENT='latitude of the mass point 1-1 (DEGREES)' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',ZLATOR,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',ZLATOR,IGRID,ILENCH,YCOMMENT,IRESP) ! END IF ! @@ -495,98 +498,98 @@ YRECFM='THINSHELL' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',LTHINSHELL,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',LTHINSHELL,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LAT0' YCOMMENT='reference latitude for conformal projection (DEGREES)' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XLAT0,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XLAT0,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LON0' YCOMMENT='reference longitude for conformal projection (DEGREES)' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XLON0,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XLON0,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='BETA' YCOMMENT='rotation angle (DEGREES)' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XBETA,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XBETA,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='XHAT' YCOMMENT='Position x in the conformal or cartesian plane (METERS)' IGRID=2 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XX',XXHAT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XX',XXHAT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='YHAT' YCOMMENT='Position y in the conformal or cartesian plane (METERS)' IGRID=3 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'YY',XYHAT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'YY',XYHAT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='ZHAT' YCOMMENT='height level without orography (METERS)' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XZHAT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XZHAT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='ZS' YCOMMENT='orography (METERS)' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XZS,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XZS,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='ZSMT' YCOMMENT='smooth orography (METERS)' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XZSMT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XZSMT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='SLEVE' YCOMMENT=' ' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',LSLEVE,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',LSLEVE,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LSLEVE) THEN YRECFM='LEN1' YCOMMENT=' ' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XLEN1,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XLEN1,IGRID,ILENCH,YCOMMENT,IRESP) YRECFM='LEN2' YCOMMENT=' ' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XLEN2,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XLEN2,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! YRECFM='DTCUR' YCOMMENT=' ' ILENCH=LEN(YCOMMENT) IGRID=0 -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',TDTCUR,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',TDTCUR,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DTEXP' ! array of rank 3 for date is written in file YCOMMENT=' ' ILENCH=LEN(YCOMMENT) IGRID=0 -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',TDTEXP,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',TDTEXP,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DTMOD' ! array of rank 3 for date is written in file YCOMMENT=' ' ILENCH=LEN(YCOMMENT) IGRID=0 -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',TDTMOD,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',TDTMOD,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DTSEG' ! array of rank 3 for date is written in file IGRID=0 YCOMMENT=' ' ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',TDTSEG,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',TDTSEG,IGRID,ILENCH,YCOMMENT,IRESP) ! !* 1.3 Configuration variables : ! @@ -594,13 +597,13 @@ YRECFM='CARTESIAN' YCOMMENT='Logical for cartesian geometry ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',LCARTESIAN,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',LCARTESIAN,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LBOUSS' YCOMMENT='Logical for Boussinesq' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',LBOUSS,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',LBOUSS,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LCARTESIAN .AND. LWIND_ZM) THEN LWIND_ZM=.FALSE. @@ -612,31 +615,31 @@ YRECFM='RHOREFZ' YCOMMENT='rhodz for reference state without orography (kg/m3)' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XRHODREFZ,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XRHODREFZ,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='THVREFZ' YCOMMENT='thetavz for reference state without orography (K)' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XTHVREFZ,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XTHVREFZ,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='EXNTOP' YCOMMENT='Exner function at model top' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XEXNTOP,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XEXNTOP,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='RHODREF' YCOMMENT='Dry density for reference state with orography (kg/m3)' IGRID=1 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XRHODREF,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XRHODREF,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='THVREF' YCOMMENT='Thetav for reference state with orography (K)' IGRID=1 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XTHVREF,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XTHVREF,IGRID,ILENCH,YCOMMENT,IRESP) ! ! !* 1.5 Variables necessary for plots @@ -649,7 +652,7 @@ IF (INDEX(CISO,'PR') /= 0) THEN YCOMMENT='X_Y_Z_ABSolute Pressure (Pa)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XPABST,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XPABST,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! IF (INDEX(CISO,'TK') /= 0) THEN @@ -657,7 +660,7 @@ IF (INDEX(CISO,'TK') /= 0) THEN YCOMMENT='X_Y_Z_potential temperature (K)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XTHT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XTHT,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! ZCORIOZ(:,:,:)=SPREAD( XCORIOZ(:,:),DIM=3,NCOPIES=IKU ) @@ -682,7 +685,7 @@ IF (INDEX(CISO,'EV') /= 0) THEN YCOMMENT='X_Y_Z_POtential VOrticity (PVU)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZPOVO,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZPOVO,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! ! @@ -691,25 +694,25 @@ IF (LVAR_RS) THEN YCOMMENT='X_Y_Z_U component of wind (m/s)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XUT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XUT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='VT' YCOMMENT='X_Y_Z_V component of wind (m/s)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XVT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XVT,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LWIND_ZM) THEN YCOMMENT='X_Y_Z_Zonal and Meridian components of horizontal wind (M/S)' CALL UV_TO_ZONAL_AND_MERID(XUT,XVT,23, & - HFMFILE=HFMFILE,HRECU='UM_ZM',HRECV='VM_ZM',HCOMMENT=YCOMMENT) + HFMFILE=YFMFILE2,HRECU='UM_ZM',HRECV='VM_ZM',HCOMMENT=YCOMMENT) END IF ! YRECFM='WT' YCOMMENT='X_Y_Z_vertical wind (m/s)' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP) ! ! write mixing ratio for water vapor required to plot radio-soundings ! @@ -718,7 +721,7 @@ IF (LVAR_RS) THEN YCOMMENT='X_Y_Z_Vapor mixing Ratio (KG/KG)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XRT(:,:,:,1),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XRT(:,:,:,1),IGRID,ILENCH, & YCOMMENT,IRESP) END IF END IF @@ -730,13 +733,13 @@ IF (.NOT.LCARTESIAN) THEN YCOMMENT='X_Y_latitude (degrees)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLAT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XLAT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LON' YCOMMENT='X_Y_longitude (degrees)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLON,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XLON,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! ! @@ -752,20 +755,20 @@ IF (LVAR_TURB) THEN YCOMMENT='X_Y_Z_Turbulent Kinetic Energy (M**2/S**2)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XTKET,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XTKET,IGRID,ILENCH,YCOMMENT,IRESP) ! IF( NRR > 1 ) THEN YRECFM='SRCT' YCOMMENT='X_Y_Z_normalized 2nd_order moment s_r_c/2Sigma_s2 (KG/KG**2)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSRCT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XSRCT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='SIGS' YCOMMENT='X_Y_Z_Sigma_s from turbulence scheme (KG/KG**2)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSIGS,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XSIGS,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! IF(CTOM=='TM06') THEN @@ -773,7 +776,7 @@ IF (LVAR_TURB) THEN YCOMMENT='X_Y_BL_DEPTH (M)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XBL_DEPTH,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XBL_DEPTH,IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF END IF @@ -789,14 +792,14 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN YCOMMENT ='X_Y_INstantaneous PRecipitation Rate (MM/H)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK31(:,:,:) = XINPRR3D(:,:,:) YRECFM = 'INPRR3D' YCOMMENT = 'X_Y_INstantaneous 3D Rain Precipitation flux (M/S)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ! ZWORK31(:,:,:) = XEVAP3D(:,:,:) @@ -804,7 +807,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN YCOMMENT = 'X_Y_INstantaneous 3D Rain Evaporation flux (KG/KG/S)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ! ZWORK21(:,:) = XACPRR(:,:)*1.E3 @@ -812,7 +815,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN YCOMMENT ='X_Y_ACcumulated PRecipitation Rate (MM)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR.& CCLOUD == 'KHKO' .OR. CCLOUD == 'LIMA') THEN @@ -822,14 +825,14 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN YCOMMENT ='X_Y_INstantaneous Cloud PRecipitation Rate (MM/H)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK21(:,:) = XACPRC(:,:)*1.E3 YRECFM ='ACPRC' YCOMMENT ='X_Y_ACcumulated Cloud PRecipitation Rate (MM)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) END IF IF (SIZE(XINDEP) /= 0 ) THEN ZWORK21(:,:) = XINDEP(:,:)*3.6E6 @@ -837,14 +840,14 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN YCOMMENT ='X_Y_INstantaneous Cloud Deposition Rate (MM/H)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK21(:,:) = XACDEP(:,:)*1.E3 YRECFM ='ACDEP' YCOMMENT ='X_Y_ACcumulated Cloud Deposition Rate (MM)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'LIMA') THEN @@ -853,28 +856,28 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN YCOMMENT = 'X_Y_INstantaneaous PRecipitation rate for Snow (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK21(:,:) = XACPRS(:,:)*1.0E3 YRECFM = 'ACPRS' YCOMMENT = 'X_Y_ACccumuated PRecipitation rate for Snow (MM)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK21(:,:) = XINPRG(:,:)*3.6E6 YRECFM = 'INPRG' YCOMMENT = 'X_Y_INstantaneaous PRecipitation rate for Graupel (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK21(:,:) = XACPRG(:,:)*1.0E3 YRECFM = 'ACPRG' YCOMMENT = 'X_Y_ACccumuated PRecipitation rate for Graupel (MM)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (SIZE(XINPRH) /= 0 ) THEN ZWORK21(:,:) = XINPRH(:,:)*3.6E6 @@ -882,14 +885,14 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN YCOMMENT = 'X_Y_INstantaneaous PRecipitation rate for Hail (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK21(:,:) = XACPRH(:,:)*1.0E3 YRECFM = 'ACPRH' YCOMMENT = 'X_Y_ACccumuated PRecipitation rate for Hail (MM)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ENDIF ! ZWORK21(:,:) = (XINPRR(:,:) + XINPRS(:,:) + XINPRG(:,:))*3.6E6 @@ -902,7 +905,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN YCOMMENT = 'X_Y_INPRT (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK21(:,:) = (XACPRR(:,:) + XACPRS(:,:) + XACPRG(:,:))*1.0E3 IF (SIZE(XINPRC) /= 0 ) & @@ -915,7 +918,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN YCOMMENT = 'X_Y_ACPRT (MM)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! END IF ! @@ -927,21 +930,21 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN YCOMMENT ='X_Y_CONVective instantaneous Precipitation Rate (MM/H)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK21(:,:) = XPACCONV(:,:)*1.E3 YRECFM ='PACCONV' YCOMMENT ='X_Y_CONVective ACcumulated Precipitation rate (MM)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK21(:,:) = XPRSCONV(:,:)*3.6E6 YRECFM ='PRSCONV' YCOMMENT ='X_Y_CONVective instantaneous Precipitation Rate for Snow (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF IF (LVAR_PR ) THEN @@ -973,7 +976,7 @@ IF (LVAR_PR ) THEN YCOMMENT='(kg/m²)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) ENDIF ! ! @@ -1046,25 +1049,25 @@ IF (LHU_FLX) THEN YCOMMENT='(kg / s / m²)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='VM90' YCOMMENT='(kg / s / m²)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) ! composantes U et V du flux d'humidité intégré sur 3000 metres YRECFM='UM91' YCOMMENT='(kg / s / m)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='VM91' YCOMMENT='(kg / s / m)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) ! ! Convergence d'humidité YRECFM='HMCONV' @@ -1072,7 +1075,7 @@ IF (LHU_FLX) THEN YCOMMENT='(kg / s / m^3)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK35*(-1),IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK35*(-1),IGRID,ILENCH,YCOMMENT,IRESP) ! ! Convergence d'humidité intégré sur 3000 mètres YRECFM='HMCONV3000' @@ -1080,7 +1083,7 @@ IF (LHU_FLX) THEN YCOMMENT='(kg / s / m^3)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK25*(-1),IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK25*(-1),IGRID,ILENCH,YCOMMENT,IRESP) ! IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'LIMA') THEN ! composantes U et V du flux surfacique d'hydrométéores @@ -1088,38 +1091,38 @@ IF (LHU_FLX) THEN YCOMMENT='(kg / s / m²)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='VM92' YCOMMENT='(kg / s / m²)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) ! composantes U et V du flux d'hydrométéores intégré sur 3000 metres YRECFM='UM93' YCOMMENT='(kg / s / m)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK23,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK23,IGRID,ILENCH,YCOMMENT,IRESP) YRECFM='VM93' YCOMMENT='(kg / s / m)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK24,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK24,IGRID,ILENCH,YCOMMENT,IRESP) ! Convergence d'hydrométéores YRECFM='HMCONV_TT' YCOMMENT='X_Y_Horizontal CONVergence of hydrometeor flux (kg / s / m)' YCOMMENT='(kg / s / m^3)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK36*(-1),IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK36*(-1),IGRID,ILENCH,YCOMMENT,IRESP) ! Convergence d'hydrométéores intégré sur 3000 mètres YRECFM='HMCONV3000_TT' YCOMMENT='X_Y_Horizontal CONVergence of hydrometeor flux (kg / s / m)' YCOMMENT='(kg / s / m^3)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK26*(-1),IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK26*(-1),IGRID,ILENCH,YCOMMENT,IRESP) ENDIF ENDIF ! @@ -1135,7 +1138,7 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN YCOMMENT='X_Y_Z_MRV (G/KG)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END IF @@ -1145,13 +1148,13 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN YCOMMENT='X_Y_Z_MRC (G/KG)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) YRECFM= 'VRC' YCOMMENT='X_Y_Z_VRC (vol/vol)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRT(:,:,:,IRR)*XRHODREF(:,:,:)/1.E3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF (LUSERR) THEN @@ -1160,13 +1163,13 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN YCOMMENT='X_Y_Z_MRR (G/KG)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) YRECFM= 'VRR' YCOMMENT='X_Y_Z_VRR (vol/vol)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRT(:,:,:,IRR)*XRHODREF(:,:,:)/1.E3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF (LUSERI) THEN @@ -1175,13 +1178,13 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN YCOMMENT='X_Y_Z_MRI (G/KG)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) IF (LUSECI) THEN YRECFM= 'CIT' YCOMMENT='X_Y_Z_CIT (/M3)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XCIT(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XCIT(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) END IF END IF @@ -1191,7 +1194,7 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN YCOMMENT='X_Y_Z_MRS (G/KG)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF (LUSERG) THEN @@ -1200,7 +1203,7 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN YCOMMENT='X_Y_Z_RG (G/KG)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF (LUSERH) THEN @@ -1209,7 +1212,7 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN YCOMMENT='X_Y_Z_RH (G/KG)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END IF END IF @@ -1226,7 +1229,7 @@ IF (LVAR_MRSV) THEN WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','MRSV',JSV,' (G/KG)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO END IF @@ -1242,7 +1245,7 @@ IF(LVAR_MRW) THEN ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-3 ENDIF ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO ! microphysical C3R5 scheme additional scalar variables @@ -1251,7 +1254,7 @@ IF(LVAR_MRW) THEN WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/L)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO END IF @@ -1321,7 +1324,7 @@ IF (LLIMA_DIAG) THEN ! ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-6*XRHODREF(:,:,:) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO ! @@ -1330,7 +1333,7 @@ IF (LLIMA_DIAG) THEN YCOMMENT='X_Y_Z_LWC (g/m^3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRT(:,:,:,2)*1.E3*XRHODREF(:,:,:) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END IF ! @@ -1339,7 +1342,7 @@ IF (LLIMA_DIAG) THEN YCOMMENT='X_Y_Z_MRI (g/m^3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRT(:,:,:,4)*1.E3*XRHODREF(:,:,:) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END IF ! @@ -1352,7 +1355,7 @@ IF (LCHEMDIAG) THEN WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','CHIM',JSV,' (ppbv)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO END IF @@ -1365,7 +1368,7 @@ IF (LCHAQDIAG) THEN !aqueous concentration in M WHERE(((XRT(:,:,:,2)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ) ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,2)) ENDWHERE - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO ZWORK31(:,:,:)=0. @@ -1376,7 +1379,7 @@ IF (LCHAQDIAG) THEN !aqueous concentration in M WHERE(((XRT(:,:,:,3)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ) ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,3)) ENDWHERE - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO ! ZWORK31(:,:,:)=0. @@ -1387,7 +1390,7 @@ IF (LCHAQDIAG) THEN !aqueous concentration in M ! WHERE(((XRT(:,:,:,3)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ) ! ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,3)) ! ENDWHERE -! CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & +! CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & ! YCOMMENT,IRESP) ! END DO END IF @@ -1410,7 +1413,7 @@ IF (LPASPOL) THEN WRITE(YRECFM,'(A3,I3.3)')'PPT',JSV WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','PPT',JSV,' (G/M3) ' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZTMP,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZTMP,IGRID,ILENCH, & YCOMMENT,IRESP) ! END DO @@ -1423,7 +1426,7 @@ IF (LCONDSAMP) THEN WRITE(YRECFM,'(A3,I3.3)')'CST',JSV WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','CST',JSV,' () ' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) ! END DO @@ -1436,7 +1439,7 @@ IF (LTRAJ) THEN YRECFM=TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' WRITE(YCOMMENT,'(A6,A20,I3.3,A7)')'X_Y_Z_','Lagrangian variable ',JSV,' (M)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) END DO ! X coordinate @@ -1451,7 +1454,7 @@ IF (LTRAJ) THEN WRITE(YRECFM,'(A1)')'X' WRITE(YCOMMENT,'(A6,A13,A7)')'X_Y_Z_','X coordinate ',' (M)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! Y coordinate DO JK=1,IKU @@ -1465,7 +1468,7 @@ IF (LTRAJ) THEN WRITE(YRECFM,'(A1)')'Y' WRITE(YCOMMENT,'(A6,A13,A7)')'X_Y_Z_','Y coordinate ',' (M)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END IF ! linox scalar variables @@ -1475,7 +1478,7 @@ IF (.NOT.(LUSECHEM .OR. LCHEMDIAG) .AND. LCH_CONV_LINOX) THEN WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','LNOX',JSV,' (ppbv)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO END IF @@ -1489,7 +1492,7 @@ IF (LELECDIAG .AND. CELEC .NE. "NONE") THEN END IF ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XSVT(:,:,:,JSV) * XRHODREF(:,:,:) ! C/kg --> C/m3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO END IF @@ -1507,7 +1510,7 @@ IF (LSALT) THEN WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','SALT',JSV,' (ppbv)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO ! @@ -1518,28 +1521,28 @@ IF (LSALT) THEN WRITE(YCOMMENT,'(A18,I1,A5)')'RG (nb) SALT MODE ',JJ,' (um)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZRG_SLT(:,:,:,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A7,I1)')'SLTRGAM',JJ WRITE(YCOMMENT,'(A17,I1,A5)')'RG (m) SALT MODE ',JJ,' (um)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZRG_SLT(:,:,:,JJ) / (EXP(-3.*(LOG(ZSIG_SLT(:,:,:,JJ)))**2)) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A6,I1)')'SLTN0A',JJ WRITE(YCOMMENT,'(A13,I1,A7)')'N0 SALT MODE ',JJ,' (1/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZN0_SLT(:,:,:,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A7,I1)')'SLTSIGA',JJ WRITE(YCOMMENT,'(A16,I1)')'SIGMA SALT MODE ',JJ ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZSIG_SLT(:,:,:,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) !SALT MASS CONCENTRATION WRITE(YRECFM,'(A4,I1)')'SLTMSS',JJ @@ -1548,7 +1551,7 @@ IF (LSALT) THEN ZWORK31(:,:,:)= ZN0_SLT(:,:,:,JJ)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_SLT(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_SLT(:,:,:,JJ))*log(ZSIG_SLT(:,:,:,JJ))) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) !SALT BURDEN (g/m2) ZWORK21(:,:)=0.0 @@ -1566,7 +1569,7 @@ IF (LSALT) THEN WRITE(YRECFM,'(A7,I1)')'SLTBRDN',JJ WRITE(YCOMMENT,'(A13,I1)')'BURDEN (g/m2)',JJ ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH, & YCOMMENT,IRESP) ENDDO END IF @@ -1578,7 +1581,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','SALTDEP',JSV,' (ppbv)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZSSLTDEP(:,:,:,JSV)*1.E9 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO DO JJ=1,NMODE_SLT @@ -1609,7 +1612,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN / XMD & !==>#/kg_{air} * XRHODREF(:,:,:) !==>#/m3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! CLOUD: DUST MASS CONCENTRATION WRITE(YRECFM,'(A9,I1)')'SLTDEPMSS',JJ @@ -1619,7 +1622,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_SLT(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_SLT(:,:,:,JJ))*log(ZSIG_SLT(:,:,:,JJ))) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! FOR RAIN DROPS WRITE(YRECFM,'(A9,I1)')'SLTDEPN0A',JJ+NMODE_SLT @@ -1648,7 +1651,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN * XAVOGADRO & !==>#/mole / XMD & !==>#/kg_{air} * XRHODREF(:,:,:) !==>#/m3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! RAIN: DUST MASS CONCENTRATION WRITE(YRECFM,'(A9,I1)')'SLTDEPMSS',JJ+NMODE_SLT @@ -1658,7 +1661,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_SLT(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_SLT(:,:,:,JJ))*log(ZSIG_SLT(:,:,:,JJ))) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO ! @@ -1677,7 +1680,7 @@ IF (LDUST) THEN WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','DUST',JSV,' (ppbv)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO ! @@ -1688,28 +1691,28 @@ IF (LDUST) THEN WRITE(YCOMMENT,'(A18,I1,A5)')'RG (nb) DUST MODE ',JJ,' (um)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZRG_DST(:,:,:,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A7,I1)')'DSTRGAM',JJ WRITE(YCOMMENT,'(A17,I1,A5)')'RG (m) DUST MODE ',JJ,' (um)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZRG_DST(:,:,:,JJ) / (EXP(-3.*(LOG(ZSIG_DST(:,:,:,JJ)))**2)) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A6,I1)')'DSTN0A',JJ WRITE(YCOMMENT,'(A13,I1,A7)')'N0 DUST MODE ',JJ,' (1/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZN0_DST(:,:,:,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A7,I1)')'DSTSIGA',JJ WRITE(YCOMMENT,'(A16,I1)')'SIGMA DUST MODE ',JJ ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZSIG_DST(:,:,:,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) !DUST MASS CONCENTRATION WRITE(YRECFM,'(A4,I1)')'DSTMSS',JJ @@ -1718,7 +1721,7 @@ IF (LDUST) THEN ZWORK31(:,:,:)= ZN0_DST(:,:,:,JJ)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_DST(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_DST(:,:,:,JJ))*log(ZSIG_DST(:,:,:,JJ))) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) !DUST BURDEN (g/m2) ZWORK21(:,:)=0.0 @@ -1736,7 +1739,7 @@ IF (LDUST) THEN WRITE(YRECFM,'(A7,I1)')'DSTBRDN',JJ WRITE(YCOMMENT,'(A13,I1)')'BURDEN (g/m2)',JJ ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH, & YCOMMENT,IRESP) ENDDO END IF @@ -1748,7 +1751,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','DUSTDEP',JSV,' (ppbv)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZSDSTDEP(:,:,:,JSV)*1.E9 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO DO JJ=1,NMODE_DST @@ -1779,7 +1782,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN / XMD & !==>#/kg_{air} * XRHODREF(:,:,:) !==>#/m3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! CLOUD: DUST MASS CONCENTRATION WRITE(YRECFM,'(A9,I1)')'DSTDEPMSS',JJ @@ -1789,7 +1792,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_DST(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_DST(:,:,:,JJ))*log(ZSIG_DST(:,:,:,JJ))) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! FOR RAIN DROPS WRITE(YRECFM,'(A9,I1)')'DSTDEPN0A',JJ+NMODE_DST @@ -1818,7 +1821,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN * XAVOGADRO & !==>#/mole / XMD & !==>#/kg_{air} * XRHODREF(:,:,:) !==>#/m3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! RAIN: DUST MASS CONCENTRATION WRITE(YRECFM,'(A9,I1)')'DSTDEPMSS',JJ+NMODE_DST @@ -1828,7 +1831,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_DST(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_DST(:,:,:,JJ))*log(ZSIG_DST(:,:,:,JJ))) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO ! @@ -1840,7 +1843,7 @@ IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','AERO',JSV,' (ppbv)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END DO ! @@ -1858,56 +1861,56 @@ IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN WRITE(YCOMMENT,'(A21,I1,A5)')'RG (nb) AEROSOL MODE ',JJ,' (um)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRG3D(:,:,:,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A4,I1)')'RGAM',JJ WRITE(YCOMMENT,'(A20,I1,A5)')'RG (m) AEROSOL MODE ',JJ,' (um)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XRG3D(:,:,:,JJ) / (EXP(-3.*(LOG(XSIG3D(:,:,:,JJ)))**2)) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A3,I1)')'N0A',JJ WRITE(YCOMMENT,'(A16,I1,A7)')'N0 AEROSOL MODE ',JJ,' (1/cc)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XN3D(:,:,:,JJ)*1.E-6 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A4,I1)')'SIGA',JJ WRITE(YCOMMENT,'(A19,I1)')'SIGMA AEROSOL MODE ',JJ ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XSIG3D(:,:,:,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A4,I1)')'MSO4',JJ WRITE(YCOMMENT,'(A22,I1,A5)')'MASS SO4 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SO4,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A4,I1)')'MNO3',JJ WRITE(YCOMMENT,'(A22,I1,A5)')'MASS NO3 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_NO3,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A4,I1)')'MNH3',JJ WRITE(YCOMMENT,'(A22,I1,A5)')'MASS NH3 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_NH3,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A4,I1)')'MH2O',JJ WRITE(YCOMMENT,'(A22,I1,A5)') 'MASS H2O AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_H2O,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! IF (NSOA .EQ. 10) THEN @@ -1915,70 +1918,70 @@ IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA1 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA1,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A5,I1)')'MSOA2',JJ WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA2 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA2,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A5,I1)')'MSOA3',JJ WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA3 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA3,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A5,I1)')'MSOA4',JJ WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA4 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA4,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A5,I1)')'MSOA5',JJ WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA5 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA5,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A5,I1)')'MSOA6',JJ WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA6 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA6,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A5,I1)')'MSOA7',JJ WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA7 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA7,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A5,I1)')'MSOA8',JJ WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA8 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA8,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A5,I1)')'MSOA9',JJ WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA9 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA9,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A6,I1)')'MSOA10',JJ WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA10 AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA10,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) END IF ! @@ -1986,14 +1989,14 @@ IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN WRITE(YCOMMENT,'(A21,I1,A5)')'MASS OC AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_OC,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ! WRITE(YRECFM,'(A3,I1)')'MBC',JJ WRITE(YCOMMENT,'(A21,I1,A5)')'MASS BC AEROSOL MODE ',JJ,'(ug/m3)' ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_BC,JJ) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, & YCOMMENT,IRESP) ENDDO END IF @@ -2005,31 +2008,31 @@ IF (LVAR_LS) THEN YCOMMENT='X_Y_Z_Large Scale U component (M/S)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLSUM,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XLSUM,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LSVM' YCOMMENT='X_Y_Z_Large Scale V component (M/S)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLSVM,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XLSVM,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LWIND_ZM) THEN YCOMMENT='X_Y_Z_Large Scale Zonal and Meridian components of horizontal wind (M/S)' CALL UV_TO_ZONAL_AND_MERID(XLSUM,XLSVM,23, & - HFMFILE=HFMFILE,HRECU='LSUM_ZM',HRECV='LSVM_ZM',HCOMMENT=YCOMMENT) + HFMFILE=YFMFILE2,HRECU='LSUM_ZM',HRECV='LSVM_ZM',HCOMMENT=YCOMMENT) ENDIF ! YRECFM='LSWM' YCOMMENT='X_Y_Z_Large Scale vertical wind (M/S)' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLSWM,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XLSWM,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LSTHM' YCOMMENT='X_Y_Z_Large Scale potential Temperature (K)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLSTHM,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XLSTHM,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LUSERV) THEN YRECFM='LSMRV' @@ -2037,7 +2040,7 @@ IF (LVAR_LS) THEN IGRID=1 ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XLSRVM(:,:,:)*1.E3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF ! @@ -2052,70 +2055,70 @@ IF (LVAR_FRC .AND. LFORCING) THEN YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XUFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XUFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='VFRC'//YFRC YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XVFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XVFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='WFRC'//YFRC YCOMMENT=' ' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XWFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XWFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='THFRC'//YFRC YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XTHFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XTHFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='RVFRC'//YFRC YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XRVFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XRVFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='TENDTHFRC'//YFRC YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XTENDTHFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XTENDTHFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='TENDRVFRC'//YFRC YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XTENDRVFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XTENDRVFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='GXTHFRC'//YFRC YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XGXTHFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XGXTHFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='GYTHFRC'//YFRC YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XGYTHFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XGYTHFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='PGROUNDFRC'//YFRC YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XPGROUNDFRC(JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XPGROUNDFRC(JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! END DO @@ -2133,7 +2136,7 @@ IF (LTPZH .OR. LCOREF) THEN IGRID=1 ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=ZTEMP(:,:,:) - XTT - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) ! !* Pressure in hPa YRECFM='PRES' @@ -2141,14 +2144,14 @@ IF (LTPZH .OR. LCOREF) THEN IGRID=1 ILENCH=LEN(YCOMMENT) ZWORK31(:,:,:)=XPABST(:,:,:)*1E-2 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) ! !* Geopotential in meters YRECFM='ALT' YCOMMENT='X_Y_Z_ALTitude (M)' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XZZ,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XZZ,IGRID,ILENCH,YCOMMENT,IRESP) ! !* Relative humidity in percent IF (LUSERV) THEN @@ -2169,14 +2172,14 @@ IF (LTPZH .OR. LCOREF) THEN YCOMMENT='X_Y_Z_RElative HUmidity (%)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK33(:,:,:)=ZWORK33(:,:,:)*ZWORK32(:,:,:)*1E-4 YRECFM='VPRES' YCOMMENT='X_Y_Z_Vapor PRESsure (hPa)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LCOREF) THEN ZWORK33(:,:,:)=(77.6*( XPABST(:,:,:)*1E-2 & @@ -2186,17 +2189,17 @@ IF (LTPZH .OR. LCOREF) THEN YCOMMENT='X_Y_Z_REFraction COindex (N-units)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK33(:,:,:)=ZWORK33(:,:,:)+MZF(1,IKU,1,XZZ(:,:,:))*1E6/XRADIUS YRECFM='MCOREF' YCOMMENT='X_Y_Z_Modified REFraction COindex (M-units)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP) END IF ELSE - PRINT*, 'NO WATER VAPOR IN ',HFMFILE,' RELATIVE HUMIDITY IS NOT COMPUTED' + PRINT*, 'NO WATER VAPOR IN ',YFMFILE2,' RELATIVE HUMIDITY IS NOT COMPUTED' END IF ! END IF @@ -2228,7 +2231,7 @@ IF ( LMOIST_V .OR. LMSLP .OR. LBLTOP ) THEN YCOMMENT='X_Y_Z_Virtual potential temperature (K)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZTHETAV,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZTHETAV,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! END IF @@ -2255,7 +2258,7 @@ IF (LVISI) THEN YCOMMENT='X_Y_Z_Visibility Kunkel (m)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZVISIKUN,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZVISIKUN,IGRID,ILENCH,YCOMMENT,IRESP) ! IF ((CCLOUD == 'C2R2') .OR. (CCLOUD =='KHKO')) THEN ZVISIGUL(:,:,:) = 10000. @@ -2269,13 +2272,13 @@ IF (LVISI) THEN YCOMMENT='X_Y_Z_Visibility Gultepe (m)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZVISIGUL,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZVISIGUL,IGRID,ILENCH,YCOMMENT,IRESP) ! Visibity Zhang YRECFM='VISIZHA' YCOMMENT='X_Y_Z_Visibility Zhang (m)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZVISIZHA,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZVISIZHA,IGRID,ILENCH,YCOMMENT,IRESP) ! DEALLOCATE(ZVISIGUL,ZVISIZHA) END IF @@ -2304,7 +2307,7 @@ IF (( LMOIST_E .OR. LBV_FR ) .AND. (NRR>0)) THEN YCOMMENT='X_Y_Z_Equivalent potential Temperature (K)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZTHETAE,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZTHETAE,IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF !------------------------------------------------------------------------------- @@ -2324,7 +2327,7 @@ IF (LMOIST_ES .AND. (NRR>0)) THEN YCOMMENT='X_Y_Z_Equivalent Saturated potential Temperature(K)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZTHETAES,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZTHETAES,IGRID,ILENCH,YCOMMENT,IRESP) ENDIF ! !------------------------------------------------------------------------------- @@ -2338,7 +2341,7 @@ IF (LVORT) THEN YCOMMENT='X_Y_Z_x component of vorticity (/S)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) ! ! Vorticity y ZWORK32(:,:,:)=MZF(1,IKU,1,MXF(MYM(ZVOY(:,:,:)))) @@ -2346,12 +2349,12 @@ IF (LVORT) THEN YCOMMENT='X_Y_Z_y component of vorticity (/S)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LWIND_ZM) THEN YCOMMENT='X_Y_Z_Zonal and Meridian components of horizontal vorticity (M/S)' CALL UV_TO_ZONAL_AND_MERID(ZWORK31,ZWORK32,23, & - HFMFILE=HFMFILE,HRECU='UM1_ZM',HRECV='VM1_ZM',HCOMMENT=YCOMMENT) + HFMFILE=YFMFILE2,HRECU='UM1_ZM',HRECV='VM1_ZM',HCOMMENT=YCOMMENT) ENDIF ! ! Vorticity z @@ -2360,7 +2363,7 @@ IF (LVORT) THEN YCOMMENT='X_Y_Z_relative vorticity (/S)' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) ! ! Absolute Vorticity ZWORK31(:,:,:)=MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:) @@ -2368,7 +2371,7 @@ IF (LVORT) THEN YCOMMENT='X_Y_Z_z ABsolute VORticity (/S)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) ! END IF ! @@ -2394,7 +2397,7 @@ IF ( LMEAN_POVO ) THEN YCOMMENT='X_Y_Z_MEAN of POtential VOrticity (PVU)' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! ! Virtual Potential Vorticity in PV units @@ -2410,7 +2413,7 @@ IF (LMOIST_V .AND. (NRR>0) ) THEN YCOMMENT='X_Y_Z_Virtual POtential VOrticity (PVU)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LMEAN_POVO) THEN IWORK1(:,:)=0 @@ -2426,7 +2429,7 @@ IF (LMOIST_V .AND. (NRR>0) ) THEN YCOMMENT='X_Y_Z_MEAN of Virtual POtential VOrticity (PVU)' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF ! @@ -2444,7 +2447,7 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN YCOMMENT='X_Y_Z_Equivalent POtential VOrticity (PVU)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LMEAN_POVO) THEN IWORK1(:,:)=0 @@ -2460,7 +2463,7 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN YCOMMENT='X_Y_Z_MEAN of Equivalent POtential VOrticity (PVU)' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) DEALLOCATE(IWORK1) END IF ! @@ -2479,7 +2482,7 @@ IF (LMOIST_ES .AND. (NRR>0) ) THEN YCOMMENT='X_Y_Z_Equivalent Saturated POtential VOrticity (PVU)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) ENDIF ! ! @@ -2495,7 +2498,7 @@ IF (LDIV) THEN YCOMMENT='(1/s)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LUSERV) THEN YRECFM= 'HMDIV' @@ -2504,7 +2507,7 @@ IF (LDIV) THEN ZWORK31=MXM(XRHODREF*XRT(:,:,:,1))*XUT ZWORK32=MYM(XRHODREF*XRT(:,:,:,1))*XVT ZWORK33=GX_U_M(1,IKU,1,ZWORK31,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,ZWORK32,XDYY,XDZZ,XDZY) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH, & YCOMMENT,IRESP) END IF ! @@ -2554,18 +2557,18 @@ IF (LGEO .OR. LAGEO) THEN YCOMMENT='X_Y_Z_U component of GEOstrophic wind (m/s)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='VM88' YCOMMENT='X_Y_Z_V component of GEOstrophic wind (m/s)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LWIND_ZM) THEN YCOMMENT='X_Y_Z_Zonal and Meridian components of GEOstrophic wind (m/s)' CALL UV_TO_ZONAL_AND_MERID(ZWORK31,ZWORK32,23, & - HFMFILE=HFMFILE,HRECU='UM88_ZM',HRECV='VM88_ZM',HCOMMENT=YCOMMENT) + HFMFILE=YFMFILE2,HRECU='UM88_ZM',HRECV='VM88_ZM',HCOMMENT=YCOMMENT) ENDIF ! ! wm necessary to plot vertical cross sections of wind vectors @@ -2574,7 +2577,7 @@ IF (LGEO .OR. LAGEO) THEN YCOMMENT='(M/S)' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! IF (LAGEO) THEN @@ -2583,19 +2586,19 @@ IF (LGEO .OR. LAGEO) THEN YCOMMENT='X_Y_Z_U component of AGEOstrophic wind (m/s)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) ! ZWORK32(:,:,:)=XVT(:,:,:)-ZWORK32(:,:,:) YRECFM='VM89' YCOMMENT='X_Y_Z_V component of AGEOstrophic wind (m/s)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LWIND_ZM) THEN YCOMMENT='X_Y_Z_Zonal and Meridian components of AGEOstrophic wind (m/s)' CALL UV_TO_ZONAL_AND_MERID(ZWORK31,ZWORK32,23, & - HFMFILE=HFMFILE,HRECU='UM89_ZM',HRECV='VM89_ZM',HCOMMENT=YCOMMENT) + HFMFILE=YFMFILE2,HRECU='UM89_ZM',HRECV='VM89_ZM',HCOMMENT=YCOMMENT) ENDIF ! ! wm necessary to plot vertical cross sections of wind vectors @@ -2603,7 +2606,7 @@ IF (LGEO .OR. LAGEO) THEN YCOMMENT='X_Y_Z_vertical wind (m/s)' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! END IF @@ -2633,7 +2636,7 @@ IF (LMSLP) THEN YCOMMENT='X_Y_Mean Sea Level Pressure (hPa)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) END IF !------------------------------------------------------------------------------- ! @@ -2652,7 +2655,7 @@ IF (LTHW) THEN YCOMMENT ='X_Y_THickness of Vapor Water (MM)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! ZWORK21(:,:) = 0. @@ -2666,7 +2669,7 @@ IF (LTHW) THEN YCOMMENT ='X_Y_THickness of Cloud Water (MM)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! ZWORK21(:,:) = 0. @@ -2680,7 +2683,7 @@ IF (LTHW) THEN YCOMMENT ='X_Y_THickness of Rain Water (MM)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! ZWORK21(:,:) = 0. @@ -2694,7 +2697,7 @@ IF (LTHW) THEN YCOMMENT ='X_Y_THickness of ICe (MM)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! ZWORK21(:,:) = 0. @@ -2708,7 +2711,7 @@ IF (LTHW) THEN YCOMMENT ='X_Y_THickness of SNow (MM)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! ZWORK21(:,:) = 0. @@ -2722,7 +2725,7 @@ IF (LTHW) THEN YCOMMENT ='X_Y_THickness of GRaupel (MM)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! ZWORK21(:,:) = 0. @@ -2736,7 +2739,7 @@ IF (LTHW) THEN YCOMMENT ='X_Y_THickness of HAil (MM)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF ! @@ -2771,7 +2774,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN END IF IF (LUSERR .OR. CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. & CCLOUD == 'LIMA' .OR. CDCONV /= 'NONE') THEN - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ELSE PRINT * ,'YOU WANT TO COMPUTE THE ACCUMULATED RAIN' PRINT * ,'BUT NO RAIN IS PRESENT IN THE MODEL' @@ -2790,7 +2793,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN WRITE(YRECFM,'(A9,2I2.2)')'LS_ACTOPR',JI,JJ YCOMMENT ='X_Y_Large Scale ACccumulated TOtal Precipitation Rate (MM)' ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) END IF END DO ! @@ -2823,7 +2826,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN END IF IF (LUSERR .OR. CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. & CCLOUD == 'LIMA' .OR. CDCONV /= 'NONE') THEN - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ELSE PRINT * ,'YOU WANT TO COMPUTE THE RAIN RATE' PRINT * ,'BUT NO RAIN IS PRESENT IN THE MODEL' @@ -2837,7 +2840,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN YRECFM ='LS_INTOPR' YCOMMENT ='X_Y_Large Scale INstantaneous TOtal Precipitation Rate (MM/H)' ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! END IF @@ -2860,32 +2863,32 @@ IF (NCAPE >=0 .AND. LUSERV) THEN YCOMMENT='X_Y_MAX of Convective Available Potential Energy (J/kg)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='CINMAX' YCOMMENT='X_Y_MAX of Convective INhibition energy (J/kg)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (NCAPE >=1) THEN YRECFM='CAPE3D' YCOMMENT='X_Y_Z_Convective Available Potential Energy (J/kg)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='CIN3D' YCOMMENT='X_Y_Z_Convective INhibition energy (J/kg)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DCAPE3D' YCOMMENT='X_Y_Z_ (J/kg)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! IF (NCAPE >=2) THEN @@ -2897,7 +2900,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN YCOMMENT='X_Y_Z_Vertical Kinetic Energy (J/kg)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) END IF ENDIF ! @@ -2923,7 +2926,7 @@ IF (LBV_FR) THEN YCOMMENT ='X_Y_Z_Brunt-Vaissala frequency (/S)' IGRID =4 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (NRR > 0) THEN ZWORK32(:,:,:)=DZM(1,IKU,1,ZTHETAE(:,:,:))/ MZM(1,IKU,1,ZTHETAE(:,:,:)) @@ -2943,7 +2946,7 @@ IF (LBV_FR) THEN YCOMMENT ='X_Y_Z_Equivalent Brunt-Vaissala frequency (/S)' IGRID =4 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF ! @@ -2958,27 +2961,27 @@ IF ( NGPS>=0 ) THEN ZGAMREF=-6.5E-3 ZWORK21(:,:) = ZTEMP(:,:,IKB) - ZGAMREF*((XZZ(:,:,IKB)+XZZ(:,:,IKB+1))/2.-XZS(:,:)) ! - YFGRI=ADJUSTL(ADJUSTR(HFMFILE)//'GPS') + YFGRI=ADJUSTL(ADJUSTR(YFMFILE2)//'GPS') CALL GPS_ZENITH (YFGRI,XRT(:,:,:,1),ZTEMP,XPABST,ZWORK21,ZWORK22,ZWORK23,ZWORK24) ! YRECFM ='ZTD' YCOMMENT ='X_Y_Z_Zenithal Total Delay (m)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (NGPS>=1) THEN YRECFM ='ZHD' YCOMMENT ='X_Y_Z_Zenithal Hydrostatic Delay (m)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK23,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK23,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM ='ZWD' YCOMMENT ='X_Y_Z_Zenithal Wet Delay (m)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK24,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK24,IGRID,ILENCH,YCOMMENT,IRESP) ! END IF ! @@ -3017,25 +3020,25 @@ IF(LRADAR .AND. LUSERR) THEN YCOMMENT ='X_Y_Z_RAdar REflectivity (dBZ)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM ='VDOP' YCOMMENT ='X_Y_Z_radar DOPpler fall speed (M/S)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM ='ZDR' YCOMMENT ='X_Y_Z_Differential polar Reflectivity (dBZ)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM ='KDP' YCOMMENT ='X_Y_Z_Differential Phase Reflectivity (degree/km)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) ! ELSE ! @@ -3160,7 +3163,7 @@ IF(LRADAR .AND. LUSERR) THEN INT(ANINT(10.*XELEV(JI,JEL))-10*INT(XELEV(JI,JEL))) WRITE(YGRID_SIZE,'(I3.3)') 2*NMAX DO JJ=1,SIZE(ZWORK42(:,:,:,:,:),5) - YRS=YRAD(JJ)//CNAME_RAD(JI)(1:3)//YELEV//YGRID_SIZE//HFMFILE + YRS=YRAD(JJ)//CNAME_RAD(JI)(1:3)//YELEV//YGRID_SIZE//YFMFILE2 CALL OPEN_ll(UNIT=ILURS,FILE=YRS,IOSTAT=IRESP,STATUS="NEW",ACTION='WRITE', & FORM="FORMATTED",RECL=8192) WRITE(ILURS,'(A,4F12.6,2I5)') '**domaine LATLON ',ZWORK43(JI,1,1),ZWORK43(JI,4*NMAX-1,2*NMAX), & @@ -3188,7 +3191,7 @@ IF(LRADAR .AND. LUSERR) THEN WRITE(YELEV,'(I2.2,A1,I1.1)') FLOOR(XELEV(JI,JEL)),'.',& INT(ANINT(10.*XELEV(JI,JEL))-10*INT(XELEV(JI,JEL))) DO JJ=1,SIZE(ZWORK42(:,:,:,:,:),5) - YRS="P"//YRAD(JJ)//CNAME_RAD(JI)(1:3)//YELEV//HFMFILE + YRS="P"//YRAD(JJ)//CNAME_RAD(JI)(1:3)//YELEV//YFMFILE2 CALL OPEN_ll(UNIT=ILURS,FILE=YRS,IOSTAT=IRESP,ACTION='WRITE',MODE=GLOBAL) DO JH=1,NBAZIM DO JV=1,NBSTEPMAX+1 @@ -3205,7 +3208,7 @@ IF(LRADAR .AND. LUSERR) THEN END IF ! IF (LLIDAR) THEN - PRINT *,'CALL LIDAR/RADAR with HFMFILE =',HFMFILE + PRINT *,'CALL LIDAR/RADAR with YFMFILE2 =',YFMFILE2 YVIEW=' ' YVIEW=TRIM(CVIEW_LIDAR) PRINT *,'CVIEW_LIDAR REQUESTED ',YVIEW @@ -3301,13 +3304,13 @@ IF (LLIDAR) THEN YCOMMENT ='X_Y_Z_Normalized_Lidar_Profile (1/m/sr)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM ='LIPAR' YCOMMENT ='X_Y_Z_Particle_Lidar_Profile (1/m/sr)' IGRID =1 ILENCH =LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP) ! END IF ! @@ -3320,8 +3323,8 @@ IF (LBLTOP) THEN ZWORK31(:,:,1:IKU-1)=0.5*(XZZ(:,:,1:IKU-1)+XZZ(:,:,2:IKU)) ZWORK31(:,:,IKU)=2.*ZWORK31(:,:,IKU-1)-ZWORK31(:,:,IKU-2) YFMFILE=CINIFILE - CINIFILE=HFMFILE - CALL FREE_ATM_PROFILE(ZTHETAV,ZWORK31,XZS,XZSMT,ZGAMREF,ZWORK32,ZWORK33) + CINIFILE=YFMFILE2 + CALL FREE_ATM_PROFILE(TPFILE,ZTHETAV,ZWORK31,XZS,XZSMT,ZGAMREF,ZWORK32,ZWORK33) CINIFILE=YFMFILE END IF ! @@ -3335,26 +3338,26 @@ IF ( LCH_CONV_LINOX ) THEN YCOMMENT = 'X_Y_IC_RATE (/s)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XIC_RATE,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XIC_RATE,IGRID,ILENCH,YCOMMENT,IRESP) YRECFM = 'CG_RATE' YCOMMENT = 'X_Y_CG_RATE (/s)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XCG_RATE,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XCG_RATE,IGRID,ILENCH,YCOMMENT,IRESP) YRECFM = 'IC_TOTAL_NB' YCOMMENT = 'X_Y_IC_TOTAL_NUMBER (no unit)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XIC_TOTAL_NUMBER,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XIC_TOTAL_NUMBER,IGRID,ILENCH, & YCOMMENT,IRESP) YRECFM = 'CG_TOTAL_NB' YCOMMENT = 'X_Y_CG_TOTAL_NUMBER (no unit)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XCG_TOTAL_NUMBER,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XCG_TOTAL_NUMBER,IGRID,ILENCH, & YCOMMENT,IRESP) END IF !------------------------------------------------------------------------------- -- GitLab