From b4a024285193be1512144d39b192661ed707b1c3 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 28 Nov 2016 16:22:42 +0100 Subject: [PATCH] Philippe 28/11/2016: use file structure for all calls to WRITE_LFIFM_n --- src/LIB/SURCOUCHE/src/modd_io.f90 | 2 +- src/LIB/SURCOUCHE/src/mode_fm.f90 | 20 +- src/MNH/modeln.f90 | 2 +- src/MNH/prep_ideal_case.f90 | 29 +- src/MNH/prep_real_case.f90 | 31 +- src/MNH/spawn_model2.f90 | 30 +- src/MNH/write_lfin.f90 | 549 +++++++++++++++--------------- 7 files changed, 365 insertions(+), 298 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90 index 5c9b6e0a2..0d04fa9bc 100644 --- a/src/LIB/SURCOUCHE/src/modd_io.f90 +++ b/src/LIB/SURCOUCHE/src/modd_io.f90 @@ -49,7 +49,7 @@ END TYPE TOUTBAK !Structure describing the characteristics of a file TYPE TFILEDATA CHARACTER(LEN=28) :: CNAME !Filename - CHARACTER(LEN=7) :: CTYPE = "UNKNOWN" !Filetype (backup, output...) + CHARACTER(LEN=13) :: CTYPE = "UNKNOWN" !Filetype (backup, output, prepidealcase...) CHARACTER(LEN=7) :: CFORMAT = "UNKNOWN" !Fileformat (NETCDF4, LFI...) CHARACTER(LEN=7) :: CMODE = "UNKNOWN" !Opening mode (read, write...) LOGICAL :: LOPENED = .FALSE. !Is the file opened diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index db092a523..643ddb135 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -134,9 +134,9 @@ SUBROUTINE IO_FILE_OPEN_ll(TPFILE,HFIPRI,KRESP) ! USE MODD_IO_ll, ONLY: TFILEDATA ! -TYPE(TFILEDATA),POINTER,INTENT(IN) :: TPFILE ! File structure -CHARACTER(LEN=*), INTENT(IN) :: HFIPRI ! File for prints in FM -INTEGER, INTENT(OUT) :: KRESP ! Return code +TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure +CHARACTER(LEN=*), INTENT(IN) :: HFIPRI ! File for prints in FM +INTEGER, INTENT(OUT) :: KRESP ! Return code ! INTEGER :: ININAR ! Number of articles present in LFI file (unused here) ! @@ -179,7 +179,7 @@ INTEGER, INTENT(OUT)::KNINAR ! number of articles INTEGER, INTENT(OUT)::KRESP ! return-code if a problem ! araised. LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO -TYPE(TFILEDATA),POINTER,INTENT(IN),OPTIONAL :: TPFILE ! File structure +TYPE(TFILEDATA), INTENT(IN), OPTIONAL :: TPFILE ! File structure ! ! Local variable ! @@ -201,7 +201,7 @@ LOGICAL :: GPARALLELIO #if defined(MNH_IOCDF4) INTEGER(KIND=IDCDF_KIND) :: INCERR #endif -CHARACTER(LEN=7) :: YTYPE +CHARACTER(LEN=13) :: YTYPE IF ( PRESENT(TPFILE) ) THEN YTYPE = TPFILE%CTYPE @@ -379,9 +379,9 @@ SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,HFIPRI,KRESP) ! USE MODD_IO_ll, ONLY: TFILEDATA ! -TYPE(TFILEDATA),POINTER,INTENT(IN) :: TPFILE ! File structure -CHARACTER(LEN=*), INTENT(IN) :: HFIPRI ! File for prints in FM -INTEGER, INTENT(OUT) :: KRESP ! Return code +TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure +CHARACTER(LEN=*), INTENT(IN) :: HFIPRI ! File for prints in FM +INTEGER, INTENT(OUT) :: KRESP ! Return code ! IF (.NOT.TPFILE%LOPENED) THEN PRINT *,'ERROR: IO_FILE_CLOSE_ll: trying to close a file not opened: ',TRIM(TPFILE%CNAME) @@ -418,7 +418,7 @@ CHARACTER(LEN=*), INTENT(IN) ::HSTATU ! status for the closed file CHARACTER(LEN=*), INTENT(IN) ::HFIPRI ! file for prints in FM INTEGER, INTENT(OUT)::KRESP ! return-code if problems araised LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO -TYPE(TFILEDATA),POINTER,INTENT(IN),OPTIONAL :: TPFILE ! File structure +TYPE(TFILEDATA), INTENT(IN), OPTIONAL :: TPFILE ! File structure INTEGER ::IRESP,IROWF,IFMFNL CHARACTER(LEN=7) ::YSTATU @@ -434,7 +434,7 @@ TYPE(FD_ll), POINTER :: TZFDLFI INTEGER(KIND=LFI_INT) :: IRESP8,INUM8 !JUAN LOGICAL :: GPARALLELIO -CHARACTER(LEN=7) :: YTYPE +CHARACTER(LEN=13) :: YTYPE IF ( PRESENT(TPFILE) ) THEN YTYPE = TPFILE%CTYPE diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index 8a1ee6baa..0eb2f34c7 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -921,7 +921,7 @@ IF (IBAK < NBAK_NUMB ) THEN YDESFM=ADJUSTL(ADJUSTR(YFMFILE)//'.des') ! CALL WRITE_DESFM_n(IMI,YDESFM,CLUOUT) - CALL WRITE_LFIFM_n(YFMFILE,YDADFILE,TBACKUPN(IBAK)%TFILE) + CALL WRITE_LFIFM_n(TBACKUPN(IBAK)%TFILE,YDADFILE) COUTFMFILE = YFMFILE CALL MNHWRITE_ZS_DUMMY_n(CPROGRAM) IF (CSURF=='EXTE') THEN diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index 0268f66f2..b9ed4986e 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -421,6 +421,7 @@ USE MODE_FMWRIT USE MODI_WRITE_HGRID USE MODD_MPIF USE MODD_VAR_ll +USE MODD_IO_ll, ONLY: TFILEDATA ! USE MODE_MPPDB ! @@ -569,6 +570,8 @@ REAL :: XHSLOP=1.2 ! if LHSLOP filtering of slopes higher REAL :: ZZS_MAX, ZZS_MAX_ll INTEGER :: IJPHEXT ! +TYPE(TFILEDATA) :: TZFILE +! ! !* 0.2 Namelist declarations ! @@ -1725,11 +1728,31 @@ NNPRAR = 22 + 2*(NRR+NSV) & ! 22 = number of grid variables + reference NTYPE=1 CDESFM=ADJUSTL(ADJUSTR(CINIFILE)//'.des') ! -CALL FMOPEN_ll(CINIFILE,'WRITE',CLUOUT,NNPRAR,NTYPE,NVERB,NNINAR,NRESP) +TZFILE%CNAME = CINIFILE +TZFILE%CTYPE = 'PREPIDEALCASE' +IF (LCDF4) THEN + IF (.NOT.LLFIOUT) THEN + TZFILE%CFORMAT='NETCDF4' + ELSE + TZFILE%CFORMAT='LFICDF4' + TZFILE%NLFINPRAR= NNPRAR + END IF +ELSE IF (LLFIOUT) THEN + TZFILE%CFORMAT='LFI' + TZFILE%NLFINPRAR= NNPRAR +ELSE + PRINT *,'Error: unknown backup/output fileformat' + CALL ABORT +ENDIF +TZFILE%CMODE = 'WRITE' +TZFILE%NLFITYPE = NTYPE +TZFILE%NLFIVERB = NVERB +! +CALL IO_FILE_OPEN_ll(TZFILE,CLUOUT,NRESP) ! CALL WRITE_DESFM_n(1,CDESFM,CLUOUT) ! -CALL WRITE_LFIFM_n(CINIFILE,' ') ! There is no DAD model for PREP_IDEAL_CASE +CALL WRITE_LFIFM_n(TZFILE,' ') ! There is no DAD model for PREP_IDEAL_CASE ! CALL SECOND_MNH2(ZTIME2) ! @@ -1813,7 +1836,7 @@ END IF IF (CSURF =='EXTE' .AND. (LEN_TRIM(CPGD_FILE)==0 .OR. .NOT. LREAD_GROUND_PARAM)) THEN CALL FMCLOS_ll(CINIFILEPGD,'KEEP',CLUOUT,NRESP) ENDIF -CALL FMCLOS_ll(CINIFILE,'KEEP',CLUOUT,NRESP) +CALL IO_FILE_CLOSE_ll(TZFILE,CLUOUT,NRESP) IF( LEN_TRIM(CPGD_FILE) /= 0 ) THEN CALL FMCLOS_ll(CPGD_FILE,'KEEP',CLUOUT,NRESP) ENDIF diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index e25cbc1bf..74cfd64df 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -445,7 +445,7 @@ USE MODD_CH_AEROSOL, ONLY: LORILAM, LINITPM, XINIRADIUSI, XINIRADIUSJ,& XINISIGI, XINISIGJ, XN0IMIN, XN0JMIN, CRGUNIT USE MODD_DUST, ONLY: LDUST, NMODE_DST, CRGUNITD, XINISIG, XINIRADIUS, XN0MIN USE MODD_SALT, ONLY: LSALT, NMODE_SLT, CRGUNITS, XINISIG_SLT, XINIRADIUS_SLT, XN0MIN_SLT -USE MODD_IO_ll, ONLY : GSMONOPROC +USE MODD_IO_ll, ONLY : GSMONOPROC,TFILEDATA,LIOCDF4,LLFIOUT USE MODD_PREP_REAL USE MODD_CH_MNHC_n, ONLY: LUSECHAQ_n=>LUSECHAQ,LUSECHIC_n=>LUSECHIC, LUSECHEM_n=>LUSECHEM USE MODI_READ_VER_GRID @@ -511,6 +511,9 @@ LOGICAL :: LUSECHAQ LOGICAL :: LUSECHIC LOGICAL :: LUSECHEM ! +TYPE(TFILEDATA) :: TZFILE +! +! !* 0.3 Declaration of namelists ! ------------------------ ! @@ -569,7 +572,27 @@ CALL OPEN_PRC_FILES(YPRE_REAL1,YATMFILE, YATMFILETYPE & CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) ! CPGDFILE = YPGDFILE -CALL FMOPEN_ll(CINIFILE,'WRITE',CLUOUT0,0,1,NVERB,ININAR,IRESP) +TZFILE%CNAME = CINIFILE +TZFILE%CTYPE = 'PREPREALCASE' +IF (LIOCDF4) THEN + IF (.NOT.LLFIOUT) THEN + TZFILE%CFORMAT='NETCDF4' + ELSE + TZFILE%CFORMAT='LFICDF4' + TZFILE%NLFINPRAR= 0 + END IF +ELSE IF (LLFIOUT) THEN + TZFILE%CFORMAT='LFI' + TZFILE%NLFINPRAR= 0 +ELSE + PRINT *,'Error: unknown backup/output fileformat' + CALL ABORT +ENDIF +TZFILE%CMODE = 'WRITE' +TZFILE%NLFITYPE = 1 +TZFILE%NLFIVERB = NVERB +! +CALL IO_FILE_OPEN_ll(TZFILE,CLUOUT0,IRESP) ! IF (YATMFILETYPE=='MESONH') THEN LSHIFT = .FALSE. @@ -1016,7 +1039,7 @@ END IF ! YDESFM=ADJUSTL(ADJUSTR(CINIFILE)//'.des') CALL WRITE_DESFM_n(1,YDESFM,CLUOUT0) -CALL WRITE_LFIFM_n(CINIFILE,YDAD_NAME) +CALL WRITE_LFIFM_n(TZFILE,YDAD_NAME) ! CALL SECOND_MNH(ZTIME2) ZWRITE = ZTIME2 - ZTIME1 @@ -1141,7 +1164,7 @@ END IF !------------------------------------------------------------------------------- ! CALL CLOSE_ll(CLUOUT0, IOSTAT=IRESP) -CALL FMCLOS_ll(CINIFILE,'KEEP',CLUOUT0,IRESP) +CALL IO_FILE_CLOSE_ll(TZFILE,CLUOUT0,IRESP) ! ! CALL END_PARA_ll(IINFO_ll) diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index 05c0ff7bc..023138a47 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -228,7 +228,7 @@ USE MODD_CH_MNHC_n USE MODD_PASPOL_n !$20140515 USE MODD_VAR_ll, ONLY : NPROC -!USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO_ll, ONLY: TFILEDATA,LIOCDF4,LLFIOUT ! USE MODE_GRIDCART ! Executive modules USE MODE_GRIDPROJ @@ -387,6 +387,8 @@ CHARACTER(LEN=4) :: YLBTYPE INTEGER,DIMENSION(:,:),ALLOCATABLE :: IJCOUNT ! REAL :: ZZS_MAX, ZZS_MAX_ll +! +TYPE(TFILEDATA) :: TZFILE !------------------------------------------------------------------------------- ! ! Save model index and switch to model 2 variables @@ -1427,7 +1429,27 @@ ELSE CMY_NAME(2)=ADJUSTL(ADJUSTR(CINIFILE)//'.spr'//ADJUSTL(HSPANBR)) END IF ! -CALL FMOPEN_ll(CMY_NAME(2),'WRITE',CLUOUT,INPRAR,ITYPE,NVERB,ININAR,IRESP) +TZFILE%CNAME = CMY_NAME(2) +TZFILE%CTYPE = 'SPAWNING' +IF (LIOCDF4) THEN + IF (.NOT.LLFIOUT) THEN + TZFILE%CFORMAT='NETCDF4' + ELSE + TZFILE%CFORMAT='LFICDF4' + TZFILE%NLFINPRAR= INPRAR + END IF +ELSE IF (LLFIOUT) THEN + TZFILE%CFORMAT='LFI' + TZFILE%NLFINPRAR= INPRAR +ELSE + PRINT *,'Error: unknown backup/output fileformat' + CALL ABORT +ENDIF +TZFILE%CMODE = 'WRITE' +TZFILE%NLFITYPE = ITYPE +TZFILE%NLFIVERB = NVERB +! +CALL IO_FILE_OPEN_ll(TZFILE,CLUOUT,IRESP) ! YDESFM=ADJUSTL(ADJUSTR(CMY_NAME(2))//'.des') ! @@ -1455,7 +1477,7 @@ ELSE CDAD_NAME(2)=CMY_NAME(1) ! model 1 becomes the DAD of model 2 (spawned one) ENDIF ! -CALL WRITE_LFIFM_n(CMY_NAME(2),CDAD_NAME(2)) +CALL WRITE_LFIFM_n(TZFILE,CDAD_NAME(2)) ! CALL SECOND_MNH(ZTIME2) ! @@ -1478,7 +1500,7 @@ ZSURF2 = ZTIME2 - ZTIME1 !* 8. CLOSES THE FMFILE ! ----------------- ! -CALL FMCLOS_ll(CMY_NAME(2),'KEEP',CLUOUT,IRESP) +CALL IO_FILE_CLOSE_ll(TZFILE,CLUOUT,IRESP) IF (LEN_TRIM(HSONFILE) /= 0 ) THEN CALL FMCLOS_ll(HSONFILE,'KEEP',CLUOUT,IRESP) END IF diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index f71aacaba..67cec6460 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -14,16 +14,15 @@ ! INTERFACE ! -SUBROUTINE WRITE_LFIFM_n(HFMFILE,HDADFILE,TPFILE) +SUBROUTINE WRITE_LFIFM_n(TPFILE,HDADFILE) ! USE MODD_IO_ll, ONLY: TFILEDATA ! IMPLICIT NONE ! -CHARACTER(LEN=28), INTENT(IN) :: HFMFILE ! Name of FM-file to write CHARACTER(LEN=28), INTENT(IN) :: HDADFILE ! corresponding FM-file name of ! its DAD model -TYPE(TFILEDATA),OPTIONAL,INTENT(IN) :: TPFILE ! File characteristics +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics END SUBROUTINE WRITE_LFIFM_n ! END INTERFACE @@ -32,7 +31,7 @@ END MODULE MODI_WRITE_LFIFM_n ! ! ! ########################################## - SUBROUTINE WRITE_LFIFM_n(HFMFILE,HDADFILE,TPFILE) + SUBROUTINE WRITE_LFIFM_n(TPFILE,HDADFILE) ! ########################################## ! !!**** *WRITE_LFIFM_n* - routine to write a LFIFM file for model $n @@ -40,7 +39,7 @@ END MODULE MODI_WRITE_LFIFM_n !! PURPOSE !! ------- ! The purpose of this routine is to write an initial LFIFM File -! of name HFMFILE//'.lfi' with the FM routines. +! of name YFMFILE//'.lfi' with the FM routines. ! !!** METHOD !! ------ @@ -119,7 +118,7 @@ END MODULE MODI_WRITE_LFIFM_n !! 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 YFMFILE 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) @@ -270,10 +269,9 @@ IMPLICIT NONE ! !* 0.1 Declarations of arguments ! -CHARACTER(LEN=28), INTENT(IN) :: HFMFILE ! Name of FM-file to write CHARACTER(LEN=28), INTENT(IN) :: HDADFILE ! corresponding FM-file name of ! its DAD model -TYPE(TFILEDATA),OPTIONAL,INTENT(IN) :: TPFILE ! File characteristics +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics ! !* 0.2 Declarations of local variables ! @@ -283,6 +281,7 @@ INTEGER :: IRESP ! IRESP : return-code if a problem appears INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string ! +CHARACTER(LEN=28) :: YFMFILE ! Name of FM-file to write CHARACTER(LEN=16) :: YRECFM ! Name of the article to be written CHARACTER(LEN=100):: YCOMMENT ! Comment string CHARACTER (LEN=2) :: YDIR ! Type of the data field @@ -330,6 +329,7 @@ CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) ALLOCATE(ZWORK2D(SIZE(XTHT,1),SIZE(XTHT,2))) ALLOCATE(ZWORK3D(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3))) ! +YFMFILE = TPFILE%CNAME ! !* 0.2 ARRAYS BOUNDS INITIALIZATION ! @@ -343,7 +343,7 @@ IKE=IKU-JPVEXT !* 1. WRITES IN THE LFI FILE ! ! -!* 1.0 HFMFILE and HDADFILE writing : +!* 1.0 YFMFILE and HDADFILE writing : ! YDIR='--' ! @@ -351,53 +351,49 @@ YRECFM='MASDEV' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,NMASDEV,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,NMASDEV,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='BUGFIX' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,NBUGFIX,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,NBUGFIX,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='BIBUSER' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,CBIBUSER,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,CBIBUSER,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='PROGRAM' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,CPROGRAM,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,CPROGRAM,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='FILETYPE' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -IF (PRESENT(TPFILE)) THEN - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,TPFILE%CTYPE,IGRID,ILENCH,YCOMMENT,IRESP) -ELSE - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,"UNKNOWN",IGRID,ILENCH,YCOMMENT,IRESP) -ENDIF +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,TPFILE%CTYPE,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='MY_NAME' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,HFMFILE,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,YFMFILE,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DAD_NAME' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,HDADFILE,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,HDADFILE,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LEN_TRIM(HDADFILE)>0) THEN - CALL FMWRIT(HFMFILE,'DXRATIO',CLUOUT,YDIR,NDXRATIO_ALL(IMI),0,ILENCH,YCOMMENT,IRESP) - CALL FMWRIT(HFMFILE,'DYRATIO',CLUOUT,YDIR,NDYRATIO_ALL(IMI),0,ILENCH,YCOMMENT,IRESP) - CALL FMWRIT(HFMFILE,'XOR' ,CLUOUT,YDIR,NXOR_ALL(IMI) ,0,ILENCH,YCOMMENT,IRESP) - CALL FMWRIT(HFMFILE,'YOR' ,CLUOUT,YDIR,NYOR_ALL(IMI) ,0,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,'DXRATIO',CLUOUT,YDIR,NDXRATIO_ALL(IMI),0,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,'DYRATIO',CLUOUT,YDIR,NDYRATIO_ALL(IMI),0,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,'XOR' ,CLUOUT,YDIR,NXOR_ALL(IMI) ,0,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,'YOR' ,CLUOUT,YDIR,NYOR_ALL(IMI) ,0,ILENCH,YCOMMENT,IRESP) END IF ! !* 1.1 Type and Dimensions : @@ -406,31 +402,31 @@ YRECFM='STORAGE_TYPE' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,CSTORAGE_TYPE,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,CSTORAGE_TYPE,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='IMAX' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,NIMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,NIMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='JMAX' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,NJMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,NJMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='JPHEXT' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,JPHEXT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,JPHEXT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='KMAX' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,NKMAX,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,NKMAX,IGRID,ILENCH,YCOMMENT,IRESP) ! !* 1.2 Grid variables : ! @@ -439,19 +435,19 @@ IF (.NOT.LCARTESIAN) THEN YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRPK,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRPK,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LONORI' YCOMMENT='DEGREES' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XLONORI,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XLONORI,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LATORI' YCOMMENT='DEGREES' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XLATORI,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XLATORI,IGRID,ILENCH,YCOMMENT,IRESP) ! !* diagnostic of 1st mass point ! @@ -467,59 +463,59 @@ IF (.NOT.LCARTESIAN) THEN YCOMMENT='DEGREES' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZLONOR,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZLONOR,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LATOR' YCOMMENT='DEGREES' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZLATOR,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZLATOR,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! YRECFM='THINSHELL' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,LTHINSHELL,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,LTHINSHELL,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LAT0' YCOMMENT='reference latitude for conformal projection (DEGREES)' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XLAT0,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XLAT0,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LON0' YCOMMENT='reference longitude for conformal projection (DEGREES)' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XLON0,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XLON0,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='BETA' YCOMMENT='rotation angle (DEGREES)' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XBETA,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XBETA,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='XHAT' YDIR='XX' YCOMMENT='Position x in the conformal or cartesian plane (METERS)' IGRID=2 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XXHAT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XXHAT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='YHAT' YDIR='YY' YCOMMENT='Position y in the conformal or cartesian plane (METERS)' IGRID=3 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XYHAT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XYHAT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='ZHAT' YDIR='--' YCOMMENT='height level without orography (METERS)' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XZHAT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XZHAT,IGRID,ILENCH,YCOMMENT,IRESP) ! #ifdef MNH_NCWRIT ! ! ! !*SB*MAY2012 @@ -529,7 +525,7 @@ CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XZHAT,IGRID,ILENCH,YCOMMENT,IRESP) ! YCOMMENT='X_Y_Z_ALTitude (M)' ! IGRID=4 ! ILENCH=LEN(YCOMMENT) -! CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XZZ,IGRID,ILENCH,YCOMMENT,IRESP) +! CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,'XY',XZZ,IGRID,ILENCH,YCOMMENT,IRESP) ! END IF ! #endif IF (.NOT.LCARTESIAN) THEN @@ -537,13 +533,13 @@ IF (.NOT.LCARTESIAN) THEN YCOMMENT='X_Y_latitude (degree)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLAT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,'XY',XLAT,IGRID,ILENCH,YCOMMENT,IRESP) YRECFM='LON' YCOMMENT='X_Y_longitude (degree)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLON,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,'XY',XLON,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! YRECFM='ZS' @@ -551,21 +547,21 @@ YDIR='XY' YCOMMENT='orography (METERS)' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XZS,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XZS,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='ZSMT' YDIR='XY' YCOMMENT='smooth orography (METERS)' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XZSMT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XZSMT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='SLEVE' YDIR='--' YCOMMENT='' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,LSLEVE,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,LSLEVE,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LSLEVE) THEN YRECFM='LEN1' @@ -573,29 +569,29 @@ IF (LSLEVE) THEN YCOMMENT='' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XLEN1,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XLEN1,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LEN2' YDIR='--' YCOMMENT='' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XLEN2,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XLEN2,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! YDIR='--' ! YRECFM='DTCUR' -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,TDTCUR,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,TDTCUR,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DTEXP' -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,TDTEXP,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,TDTEXP,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DTMOD' -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,TDTMOD,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,TDTMOD,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DTSEG' -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,TDTSEG,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,TDTSEG,IGRID,ILENCH,YCOMMENT,IRESP) ! !* 1.3 Configuration variables : ! @@ -603,49 +599,49 @@ YRECFM='L1D' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,L1D,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,L1D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='L2D' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,L2D,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,L2D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='PACK' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,LPACK,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,LPACK,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='CARTESIAN' YCOMMENT='Logical for cartesian geometry' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,LCARTESIAN,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,LCARTESIAN,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LBOUSS' YCOMMENT='Logical for boussinesq' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,LBOUSS,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,LBOUSS,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='SURF' YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,CSURF,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,CSURF,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='CPL_AROME' YCOMMENT='Logical for arome coupling file' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,LCPL_AROME,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,LCPL_AROME,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='COUPLING' YCOMMENT='Logical for coupling file' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,LCOUPLING,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,LCOUPLING,IGRID,ILENCH,YCOMMENT,IRESP) ! !* 1.4 Prognostic variables : ! @@ -658,12 +654,15 @@ YDIR='XY' ! CALL EXTRAPOL('E',XUT) ! CALL EXTRAPOL('N',XUT) ! CALL EXTRAPOL('S',XUT) + + + CALL MPPDB_CHECK3D(XUT,"write_lfifmn before FMWRIT::XUT",PRECISION) YRECFM='UT' YCOMMENT='X_Y_Z_U component of wind (m/s)' IGRID=2 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XUT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XUT,IGRID,ILENCH,YCOMMENT,IRESP) CALL MPPDB_CHECK3D(XUT,"write_lfifmn after FMWRIT::XUT",PRECISION) ! !20131128 check XVT-> X_Y_W_V wind component for PRC @@ -673,19 +672,19 @@ YRECFM='VT' YCOMMENT='X_Y_Z_V component of wind (m/s)' IGRID=3 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XVT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='WT' YCOMMENT='X_Y_Z_vertical wind (m/s)' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XWT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XWT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='THT' YCOMMENT='X_Y_Z_potential temperature (K)' IGRID=1 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTHT,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTHT,IGRID,ILENCH,YCOMMENT,IRESP) ! !* 1.4.2 Time t-dt: @@ -694,37 +693,37 @@ IF ( (CUVW_ADV_SCHEME == 'CEN4TH') .AND. (CTEMP_SCHEME == 'LEFR') ) THEN YCOMMENT='X_Y_Z_U component of wind (m/s)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XUM,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XUM,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='VM' YCOMMENT='X_Y_Z_V component of wind (m/s)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVM,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XVM,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='WM' YCOMMENT='X_Y_Z_vertical wind (m/s)' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XWM,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XWM,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DUM' YCOMMENT='X_Y_Z_U component of wind (m/s)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDUM,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDUM,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DVM' YCOMMENT='X_Y_Z_V component of wind (m/s)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDVM,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDVM,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DWM' YCOMMENT='X_Y_Z_vertical wind (m/s)' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDWM,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDWM,IGRID,ILENCH,YCOMMENT,IRESP) ! END IF @@ -737,120 +736,120 @@ IF (MEAN_COUNT /= 0) THEN IGRID=2 ILENCH=LEN(YCOMMENT) ZWORK3D = XUM_MEAN/MEAN_COUNT - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='U2ME' YCOMMENT='X_Y_Z_U component of mean wind variance(m2/s2)' IGRID=2 ILENCH=LEN(YCOMMENT) ZWORK3D = XU2_MEAN/MEAN_COUNT-XUM_MEAN**2/MEAN_COUNT**2 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='UMMA' YCOMMENT='X_Y_Z_U component of max wind (m/s)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XUM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XUM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='VMME' YCOMMENT='X_Y_Z_V component of mean wind (m/s)' IGRID=3 ILENCH=LEN(YCOMMENT) ZWORK3D = XVM_MEAN/MEAN_COUNT - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='V2ME' YCOMMENT='X_Y_Z_V component of mean wind variance (m2/s2)' IGRID=3 ILENCH=LEN(YCOMMENT) ZWORK3D = XV2_MEAN/MEAN_COUNT-XVM_MEAN**2/MEAN_COUNT**2 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='VMMA' YCOMMENT='X_Y_Z_V component of max wind (m/s)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XVM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='WMME' YCOMMENT='X_Y_Z_vertical mean wind (m/s)' IGRID=4 ILENCH=LEN(YCOMMENT) ZWORK3D = XWM_MEAN/MEAN_COUNT - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='W2ME' YCOMMENT='X_Y_Z_vertical mean wind variance(m2/s2)' IGRID=4 ILENCH=LEN(YCOMMENT) ZWORK3D = XW2_MEAN/MEAN_COUNT-XWM_MEAN**2/MEAN_COUNT**2 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='WMMA' YCOMMENT='X_Y_Z_vertical max wind (m/s)' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XWM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XWM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='THMME' YCOMMENT='X_Y_Z_mean potential temperature (K)' IGRID=1 ILENCH=LEN(YCOMMENT) ZWORK3D = XTHM_MEAN/MEAN_COUNT - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='TH2ME' YCOMMENT='X_Y_Z_mean potential temperature variance (K2)' IGRID=1 ILENCH=LEN(YCOMMENT) ZWORK3D = XTH2_MEAN/MEAN_COUNT-XTHM_MEAN**2/MEAN_COUNT**2 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='THMMA' YCOMMENT='X_Y_Z_max potential temperature (K)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTHM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTHM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='TEMPMME' YCOMMENT='X_Y_Z_mean temperature (K)' IGRID=1 ILENCH=LEN(YCOMMENT) ZWORK3D= XTEMPM_MEAN/MEAN_COUNT - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='TEMP2ME' YCOMMENT='X_Y_Z_mean temperature variance (K2)' IGRID=1 ILENCH=LEN(YCOMMENT) ZWORK3D = XTEMP2_MEAN/MEAN_COUNT-XTEMPM_MEAN**2/MEAN_COUNT**2 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='TEMPMMA' YCOMMENT='X_Y_Z_max temperature (K)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTEMPM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTEMPM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='PABSMME' YCOMMENT='X_Y_Z_mean ABSolute Pressure (Pa)' IGRID=1 ILENCH=LEN(YCOMMENT) ZWORK3D= XPABSM_MEAN/MEAN_COUNT - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='PABS2ME' YCOMMENT='X_Y_Z_mean ABSolute Pressure variance(Pa2)' IGRID=1 ILENCH=LEN(YCOMMENT) ZWORK3D = XPABS2_MEAN/MEAN_COUNT-XPABSM_MEAN**2/MEAN_COUNT**2 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='PABSMMA' YCOMMENT='X_Y_Z_max ABSolute Pressure (Pa)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPABSM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XPABSM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (CTURB /= 'NONE') THEN YRECFM='TKEMME' @@ -858,13 +857,13 @@ IF (MEAN_COUNT /= 0) THEN IGRID=1 ILENCH=LEN(YCOMMENT) ZWORK3D= XTKEM_MEAN/MEAN_COUNT - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='TKEMMA' YCOMMENT='X_Y_Z_max kinetic energy (m2/s2)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTKEM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTKEM_MAX,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! END IF @@ -875,14 +874,14 @@ IF (CTURB /= 'NONE') THEN YCOMMENT='X_Y_Z_Turbulent Kinetic Energy (M**2/S**2)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTKET,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTKET,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (CPROGRAM == 'MESONH') THEN YRECFM='TKEMS' YCOMMENT='X_Y_Z_Turbulent Kinetic Energy adv source (M**2/S**3)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRTKEMS,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRTKEMS,IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF ! @@ -892,7 +891,7 @@ YRECFM='PABST' YCOMMENT='X_Y_Z_ABSolute Pressure (Pa)' IGRID=1 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPABST,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XPABST,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (NRR >=1) THEN IRR=0 @@ -902,7 +901,7 @@ IF (NRR >=1) THEN YRECFM= 'RVT' YCOMMENT='X_Y_Z_Vapor mixing Ratio (KG/KG)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF (LUSERC) THEN @@ -910,7 +909,7 @@ IF (NRR >=1) THEN YRECFM= 'RCT' YCOMMENT='X_Y_Z_Cloud mixing Ratio (KG/KG)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) WRITE (ILUOUT,*) IRR,' RC min-max ',MIN_ll(XRT(:,:,:,IRR),INFO_ll),MAX_ll(XRT(:,:,:,IRR),INFO_ll) END IF @@ -919,7 +918,7 @@ IF (NRR >=1) THEN YRECFM= 'RRT' YCOMMENT='X_Y_Z_Rain mixing Ratio (KG/KG)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) WRITE (ILUOUT,*) IRR,' RR min-max ',MIN_ll(XRT(:,:,:,IRR),INFO_ll),MAX_ll(XRT(:,:,:,IRR),INFO_ll) END IF @@ -928,14 +927,14 @@ IF (NRR >=1) THEN YRECFM= 'RIT' YCOMMENT='X_Y_Z_Ice mixing Ratio (KG/KG)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) WRITE (ILUOUT,*) IRR,' RI min-max ',MIN_ll(XRT(:,:,:,IRR),INFO_ll),MAX_ll(XRT(:,:,:,IRR),INFO_ll) IF ( CPROGRAM == 'MESONH' .AND. CCLOUD(1:3) == 'ICE') THEN YRECFM= 'CIT' YCOMMENT='X_Y_Z_Cloud Ice concentration (/M3)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XCIT(:,:,:), IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XCIT(:,:,:), IGRID,ILENCH, & YCOMMENT,IRESP) END IF END IF @@ -944,7 +943,7 @@ IF (NRR >=1) THEN YRECFM= 'RST' YCOMMENT='X_Y_Z_Snow mixing Ratio (KG/KG)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) WRITE (ILUOUT,*) IRR,' RS min-max ',MINVAL(XRT(:,:,:,IRR)),MAXVAL(XRT(:,:,:,IRR)) END IF @@ -953,7 +952,7 @@ IF (NRR >=1) THEN YRECFM= 'RGT' YCOMMENT='X_Y_Z_Graupel mixing Ratio (KG/KG)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) WRITE (ILUOUT,*) IRR,' RG min-max ',MINVAL(XRT(:,:,:,IRR)),MAXVAL(XRT(:,:,:,IRR)) END IF @@ -962,7 +961,7 @@ IF (NRR >=1) THEN YRECFM= 'RHT' YCOMMENT='X_Y_Z_Hail mixing Ratio (KG/KG)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) END IF END IF @@ -975,7 +974,7 @@ IF (NSV >=1) THEN WRITE(YRECFM,'(A3,I3.3)')'SVT',JSV WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (KG/KG)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) JSA=JSA+1 END DO @@ -984,7 +983,7 @@ IF (NSV >=1) THEN YRECFM=TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/M3)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) JSA=JSA+1 END DO @@ -993,7 +992,7 @@ IF (NSV >=1) THEN YRECFM=TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/M3)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) JSA=JSA+1 END DO @@ -1061,7 +1060,7 @@ IF (NSV >=1) THEN ! ! ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) JSA=JSA+1 END DO @@ -1074,7 +1073,7 @@ IF (NSV >=1) THEN YCOMMENT = 'X_Y_INstantaneous Precipitating Aerosol Rate (kg/m2/s)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ZWORK2D(:,:) = XRHOLW*XINPRR(:,:)*XSVT(:,:,2,NSV_LIMA_SCAVMASS)/ & max( 1.e-20,XRT(:,:,2,3) ) !~2=at ground level @@ -1082,7 +1081,7 @@ IF (NSV >=1) THEN YCOMMENT = 'X_Y_INstantaneous Precipitating Aerosol Rate (kg/m2/s)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ! ZWORK2D(:,:) = XACPAP(:,:) @@ -1090,7 +1089,7 @@ IF (NSV >=1) THEN YCOMMENT = 'X_Y_ACcumulated Precipitating Aerosol Rate (kg/m2)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion END IF END IF @@ -1108,7 +1107,7 @@ IF (NSV >=1) THEN ILENCH=LEN(YCOMMENT) ZWORK3D(:,:,:) = 0. ZWORK3D(:,:,:) = XSVT(:,:,:,JSV) * XRHODREF(:,:,:) ! C/kg --> C/m3 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) JSA=JSA+1 END DO @@ -1116,19 +1115,19 @@ IF (NSV >=1) THEN YRECFM='EFIELDU' YCOMMENT='X_Y_Z_EFIELDU (V/m)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XEFIELDU(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XEFIELDU(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='EFIELDV' YCOMMENT='X_Y_Z_EFIELDV (V/m)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XEFIELDV(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XEFIELDV(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='EFIELDW' YCOMMENT='X_Y_Z_EFIELDW (V/m)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XEFIELDW(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XEFIELDW(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! ZWORK3D(:,:,:) = 0. @@ -1136,7 +1135,7 @@ IF (NSV >=1) THEN YCOMMENT='X_Y_Z_EMODULE (V/m)' ZWORK3D(:,:,:) = (XEFIELDU**2 + XEFIELDV**2 + XEFIELDW**2)**0.5 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! ZWORK3D(:,:,:) = 0. @@ -1144,7 +1143,7 @@ IF (NSV >=1) THEN YCOMMENT='X_Y_Z_NI_IAGGS (pC/m3/s)' ILENCH=LEN(YCOMMENT) ZWORK3D(:,:,:) = XNI_IAGGS(:,:,:) * 1.E12 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! ZWORK3D(:,:,:) = 0. @@ -1152,7 +1151,7 @@ IF (NSV >=1) THEN YCOMMENT='X_Y_Z_NI_IDRYG (pC/m3/s)' ILENCH=LEN(YCOMMENT) ZWORK3D(:,:,:) = XNI_IDRYG(:,:,:) * 1.E12 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! ZWORK3D(:,:,:) = 0. @@ -1160,7 +1159,7 @@ IF (NSV >=1) THEN YCOMMENT='X_Y_Z_NI_SDRYG (pC/m3/s)' ILENCH=LEN(YCOMMENT) ZWORK3D(:,:,:) = XNI_SDRYG(:,:,:) * 1.E12 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! ZWORK3D(:,:,:) = 0. @@ -1168,7 +1167,7 @@ IF (NSV >=1) THEN YCOMMENT='X_Y_Z_INDUC_CG (pC/m3/s)' ILENCH=LEN(YCOMMENT) ZWORK3D(:,:,:) = XIND_RATE(:,:,:) * 1.E12 - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! ZWORK2D(:,:) = 0. @@ -1176,7 +1175,7 @@ IF (NSV >=1) THEN YCOMMENT='X_Y_Z_FLASH_MAP_TRIG_IC (no unit)' ILENCH=LEN(YCOMMENT) ZWORK2D(:,:) = FLOAT(NMAP_TRIG_IC(:,:)) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D(:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D(:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! ZWORK2D(:,:) = 0. @@ -1184,7 +1183,7 @@ IF (NSV >=1) THEN YCOMMENT='X_Y_Z_FLASH_MAP_IMPACT_CG (no unit)' ILENCH=LEN(YCOMMENT) ZWORK2D(:,:) = FLOAT(NMAP_IMPACT_CG(:,:)) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D(:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D(:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! ZWORK2D(:,:) = 0. @@ -1192,7 +1191,7 @@ IF (NSV >=1) THEN YCOMMENT='X_Y_Z_FLASH_MAP_2DAREA_CG (no unit)' ILENCH=LEN(YCOMMENT) ZWORK2D(:,:) = FLOAT(NMAP_2DAREA_CG(:,:)) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D(:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D(:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! ZWORK2D(:,:) = 0. @@ -1200,7 +1199,7 @@ IF (NSV >=1) THEN YCOMMENT='X_Y_Z_FLASH_MAP_2DAREA_IC (no unit)' ILENCH=LEN(YCOMMENT) ZWORK2D(:,:) = FLOAT(NMAP_2DAREA_IC(:,:)) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D(:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D(:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! ZWORK3D(:,:,:) = 0. @@ -1208,7 +1207,7 @@ IF (NSV >=1) THEN YCOMMENT='X_Y_Z_FLASH_MAP_3DCG (no unit)' ILENCH=LEN(YCOMMENT) ZWORK3D(:,:,:) = FLOAT(NMAP_3DCG(:,:,:)) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! ZWORK3D(:,:,:) = 0. @@ -1216,14 +1215,14 @@ IF (NSV >=1) THEN YCOMMENT='X_Y_Z_FLASH_MAP_3DIC (no unit)' ILENCH=LEN(YCOMMENT) ZWORK3D(:,:,:) = FLOAT(NMAP_3DIC(:,:,:)) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! IF (LLNOX_EXPLICIT) THEN YRECFM='LINOX' WRITE(YCOMMENT,'(A6,A3,I3.3,A10)')'X_Y_Z_','SVT',JSV,' (mol/mol)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,NSV_LNOXEND),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,NSV_LNOXEND),IGRID,ILENCH, & YCOMMENT,IRESP) JSA=JSA+1 END IF @@ -1233,7 +1232,7 @@ IF (NSV >=1) THEN YRECFM=TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (M)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) JSA=JSA+1 END DO @@ -1243,7 +1242,7 @@ IF (NSV >=1) THEN WRITE(YRECFM,'(A3,I3.3)')'SVT',JSV WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (KG/KG)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) JSA=JSA+1 END DO @@ -1253,26 +1252,26 @@ IF (NSV >=1) THEN YRECFM= 'SUPSATMAX' YCOMMENT='X_Y_Z_Supersaturation' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSUPSAT(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSUPSAT(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM= 'NACT' YCOMMENT='X_Y_Z_Nact' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XNACT(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XNACT(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF ( ((CCLOUD == 'KHKO') .OR.(CCLOUD == 'C2R2')) .AND. LSUPSAT) THEN YRECFM= 'SSPRO' YCOMMENT='X_Y_Z_Supersaturation' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSSPRO(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSSPRO(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM= 'NPRO' YCOMMENT='X_Y_Z_Nact' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XNPRO(:,:,:),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XNPRO(:,:,:),IGRID,ILENCH, & YCOMMENT,IRESP) END IF ! @@ -1283,7 +1282,7 @@ IF (NSV >=1) THEN WRITE(YRECFM,'(A3,I3.3)')'SVT',JSV WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (KG/KG)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) JSA=JSA+1 END DO @@ -1295,7 +1294,7 @@ IF (NSV >=1) THEN WRITE(YRECFM,'(A3,I3.3)')'SVT',JSV WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (KG/KG)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) JSA=JSA+1 END DO @@ -1320,7 +1319,7 @@ IF (NSV >=1) THEN YRECFM=TRIM(UPCASE(CNAMES(JSV-NSV_CHEMBEG+1)))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) YCHNAMES(JSV-JSA)=YRECFM(1:LEN_TRIM(YRECFM)-1) ! without T END DO @@ -1329,7 +1328,7 @@ IF (NSV >=1) THEN YRECFM=TRIM(UPCASE(CICNAMES(JSV-NSV_CHICBEG+1)))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) YCHNAMES(JSV-JSA)=YRECFM(1:LEN_TRIM(YRECFM)-1) ! without M END DO @@ -1341,19 +1340,19 @@ IF (NSV >=1) THEN YCOMMENT = 'X_Y_Accumulated moles of aqueous species at the surface (mol i/m2)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH,YCOMMENT,IRESP) END DO END IF IF (LUSECHAQ.AND.LCH_PH) THEN ! pH values in cloud YRECFM = 'PHC' YCOMMENT='X_Y_Z_PHC' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPHC,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XPHC,IGRID,ILENCH,YCOMMENT,IRESP) IF (NRR>=3) THEN YRECFM = 'PHR' YCOMMENT='X_Y_Z_PHR' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPHR,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XPHR,IGRID,ILENCH,YCOMMENT,IRESP) ! compute mean pH in accumulated surface water !ZWORK2D(:,:) = 10**(-XCH_PHINIT) WHERE (XACPRR > 0.) @@ -1367,7 +1366,7 @@ IF (NSV >=1) THEN YRECFM = 'MEANPHR' YCOMMENT='X_Y_MEAN_PH' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH,YCOMMENT,IRESP) ENDIF ENDIF ELSE IF (LCH_CONV_LINOX) THEN @@ -1375,7 +1374,7 @@ IF (NSV >=1) THEN YRECFM='LINOXT' WRITE(YCOMMENT,'(A6,A3,I3.3,A)') 'X_Y_Z_','SVT',JSV,' (ppp)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) YCHNAMES(JSV-JSA)=YRECFM(1:LEN_TRIM(YRECFM)-1) END DO @@ -1390,7 +1389,7 @@ IF (NSV >=1) THEN YRECFM=TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) IF (JSV==NSV_AERBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AERBEG ',JSV IF (JSV==NSV_AEREND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AEREND ',JSV @@ -1401,7 +1400,7 @@ IF (NSV >=1) THEN YRECFM=TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) IF (JSV==NSV_AERDEPBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AERDEPBEG ',JSV IF (JSV==NSV_AERDEPEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AERDEPEND ',JSV @@ -1443,7 +1442,7 @@ IF (IMOMENTS == 1) THEN YRECFM = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,& + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,& YCOMMENT,IRESP) YDSTNAMES((JMODE-1)*IMOMENTS+1)=YRECFM(1:LEN_TRIM(YRECFM)-1) @@ -1458,7 +1457,7 @@ ELSE YRECFM = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T' !The refererence which will be written to file WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) YDSTNAMES((JMODE-1)*IMOMENTS+JMOM)=YRECFM(1:LEN_TRIM(YRECFM)-1) END DO ! Loop on moment @@ -1476,7 +1475,7 @@ END IF ! Valeur IMOMENTS YRECFM=TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) IF (JSV==NSV_DSTBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTBEG ',JSV IF (JSV==NSV_DSTEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTEND ',JSV @@ -1488,7 +1487,7 @@ END IF ! Valeur IMOMENTS YRECFM=TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) IF (JSV==NSV_DSTDEPBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTDEPBEG ',JSV IF (JSV==NSV_DSTDEPEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTDEPEND ',JSV @@ -1530,7 +1529,7 @@ END IF ! Valeur IMOMENTS YRECFM = TRIM(YPSALT_INI(ISV_NAME_IDX))//'T' !The refererence which will be written to file WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) YSLTNAMES((JMODE-1)*IMOMENTS+JMOM)=YRECFM(1:LEN_TRIM(YRECFM)-1) END DO ! Loop on moments @@ -1547,7 +1546,7 @@ END IF ! Valeur IMOMENTS YRECFM=TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) IF (JSV==NSV_SLTBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTBEG ',JSV IF (JSV==NSV_SLTEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTEND ',JSV @@ -1559,7 +1558,7 @@ END IF ! Valeur IMOMENTS YRECFM=TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) IF (JSV==NSV_SLTDEPBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTDEPBEG ',JSV IF (JSV==NSV_SLTDEPEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTDEPEND ',JSV @@ -1575,7 +1574,7 @@ END IF ! Valeur IMOMENTS YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',ICH_NBR,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,'--',ICH_NBR,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (ICH_NBR/=0) THEN YRECFM='NSV.TITRE' @@ -1590,7 +1589,7 @@ END IF ! Valeur IMOMENTS ICH_NAMES(ILREC*(JSV-1)+JT) = ICHAR(YCHNAMES(JSV)(JT:JT)) ENDDO ENDDO - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',ICH_NAMES,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,'--',ICH_NAMES,IGRID,ILENCH,YCOMMENT,IRESP) DEALLOCATE(YCHNAMES,ICH_NAMES) END IF ! @@ -1599,7 +1598,7 @@ END IF ! Valeur IMOMENTS YRECFM=TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (M)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, & YCOMMENT,IRESP) END DO END IF @@ -1609,35 +1608,35 @@ YRECFM='LSUM' YCOMMENT='X_Y_Z_Large Scale U component (M/S)' IGRID=2 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XLSUM,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,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,YDIR,XLSVM,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XLSVM,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='LSWM' YCOMMENT='X_Y_Z_Large Scale vertical wind (M/S)' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XLSWM,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,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,YDIR,XLSTHM,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XLSTHM,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (LUSERV) THEN YRECFM='LSRVM' YCOMMENT='X_Y_Z_Large Scale Vapor Mixing Ratio (KG/KG)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XLSRVM,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XLSRVM,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! -CALL WRITE_LB_n(HFMFILE) +CALL WRITE_LB_n(YFMFILE) ! ! YRECFM='DRYMASST' @@ -1645,7 +1644,7 @@ YDIR='--' YCOMMENT='Total Dry Mass (KG)' IGRID=0 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDRYMASST,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDRYMASST,IGRID,ILENCH,YCOMMENT,IRESP) ! YDIR='XY' ! @@ -1654,7 +1653,7 @@ IF( CTURB /= 'NONE' .AND. CTOM=='TM06') THEN YCOMMENT='X_Y_BL_DEPTH (M)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XBL_DEPTH,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XBL_DEPTH,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! IF( CTURB /= 'NONE' .AND. LRMC01) THEN @@ -1662,7 +1661,7 @@ IF( CTURB /= 'NONE' .AND. LRMC01) THEN YCOMMENT='X_Y_SBL_DEPTH (M)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSBL_DEPTH,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSBL_DEPTH,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! IF( CTURB /= 'NONE' .AND. (CPROGRAM == 'MESONH' .OR. CPROGRAM == 'DIAG')) THEN @@ -1670,7 +1669,7 @@ IF( CTURB /= 'NONE' .AND. (CPROGRAM == 'MESONH' .OR. CPROGRAM == 'DIAG')) THEN YCOMMENT='X_Y_WTHVMF (mK/s)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XWTHVMF,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XWTHVMF,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! ! @@ -1679,13 +1678,13 @@ IF( NRR > 1 .AND. CTURB /= 'NONE' ) THEN 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,YDIR,XSRCT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,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,YDIR,XSIGS,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSIGS,IGRID,ILENCH,YCOMMENT,IRESP) ! END IF ! @@ -1697,19 +1696,19 @@ YRECFM='RHOREFZ' YCOMMENT='rhodz for reference state without orography (kg/m3)' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRHODREFZ,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,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,YDIR,XTHVREFZ,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTHVREFZ,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='EXNTOP' YCOMMENT='Exner function at model top' IGRID=4 ILENCH=LEN(YCOMMENT) -CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XEXNTOP,IGRID,ILENCH,YCOMMENT,IRESP) +CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XEXNTOP,IGRID,ILENCH,YCOMMENT,IRESP) ! !* 1.6 Tendencies ! @@ -1720,25 +1719,25 @@ IF (CPROGRAM == 'MESONH') THEN YCOMMENT='X_Y_Z_US_PRES' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRUS_PRES,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRUS_PRES,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='VS_PRES' YCOMMENT='X_Y_Z_VS_PRES' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRVS_PRES,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRVS_PRES,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='WS_PRES' YCOMMENT='X_Y_Z_WS_PRES' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRWS_PRES,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRWS_PRES,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='THS_CLD' YCOMMENT='X_Y_Z_THS_CLD' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRTHS_CLD,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRTHS_CLD,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (NRR >=1) THEN IRR=0 @@ -1748,7 +1747,7 @@ IF (CPROGRAM == 'MESONH') THEN YRECFM= 'RVS_CLD' YCOMMENT='X_Y_Z_RVS_CLD' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF (LUSERC) THEN @@ -1756,7 +1755,7 @@ IF (CPROGRAM == 'MESONH') THEN YRECFM= 'RCS_CLD' YCOMMENT='X_Y_Z_RCS_CLD' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF (LUSERR) THEN @@ -1764,7 +1763,7 @@ IF (CPROGRAM == 'MESONH') THEN YRECFM= 'RRS_CLD' YCOMMENT='X_Y_Z_RCS_CLD' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF (LUSERI) THEN @@ -1772,7 +1771,7 @@ IF (CPROGRAM == 'MESONH') THEN YRECFM= 'RIS_CLD' YCOMMENT='X_Y_Z_RIS_CLD' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF (LUSERS) THEN @@ -1780,7 +1779,7 @@ IF (CPROGRAM == 'MESONH') THEN YRECFM= 'RSS_CLD' YCOMMENT='X_Y_Z_RSS_CLD' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF (LUSERG) THEN @@ -1788,7 +1787,7 @@ IF (CPROGRAM == 'MESONH') THEN YRECFM= 'RGS_CLD' YCOMMENT='X_Y_Z_RGS_CLD' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF (LUSERH) THEN @@ -1796,7 +1795,7 @@ IF (CPROGRAM == 'MESONH') THEN YRECFM= 'RHS_CLD' YCOMMENT='X_Y_Z_RHS_CLD' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) END IF END IF @@ -1808,14 +1807,14 @@ IF (NSV >=1) THEN YRECFM='RSVS_CLD1' YCOMMENT='X_Y_Z_RHS_CLD' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) END IF IF (JSV == NSV_C2R2END ) THEN YRECFM='RSVS_CLD2' YCOMMENT='X_Y_Z_RHS_CLD' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH, & YCOMMENT,IRESP) END IF END DO @@ -1831,12 +1830,12 @@ IF (CRAD /= 'NONE') THEN YRECFM='DTRAD_FULL' YCOMMENT='-' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,TDTRAD_FULL,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,TDTRAD_FULL,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='DTRAD_CLLY' YCOMMENT='-' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,TDTRAD_CLONLY,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,TDTRAD_CLONLY,IGRID,ILENCH,YCOMMENT,IRESP) ! YDIR='XY' ! @@ -1844,73 +1843,73 @@ IF (CRAD /= 'NONE') THEN YCOMMENT = 'X_Y_Z_RADiative heating/cooling rate (K/s)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDTHRAD,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDTHRAD,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM = 'FLALWD' YCOMMENT = 'X_Y_Downward Long Waves on FLAT surface (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XFLALWD,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XFLALWD,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM = 'DIRFLASWD' YCOMMENT = 'X_Y_DIRect Downward Long Waves on FLAT surface (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDIRFLASWD,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDIRFLASWD,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM = 'SCAFLASWD' YCOMMENT = 'X_Y_SCAttered Downward Long Waves on FLAT surface (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSCAFLASWD,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSCAFLASWD,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM = 'DIRSRFSWD' YCOMMENT = 'X_Y_DIRect Downward Long Waves (W/M2)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDIRSRFSWD,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDIRSRFSWD,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM = 'CLEARCOL_TM1' YCOMMENT = 'TRACE OF CLOUD' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,NCLEARCOL_TM1,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,NCLEARCOL_TM1,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM = 'ZENITH' YCOMMENT = 'X_Y_ZENITH (RAD)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XZENITH,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XZENITH,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM = 'AZIM' YCOMMENT = 'X_Y_AZIMuth (RAD)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XAZIM,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XAZIM,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM = 'DIR_ALB' YCOMMENT = 'X_Y_DIRect ALBedo (-)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDIR_ALB,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDIR_ALB,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM = 'SCA_ALB' YCOMMENT = 'X_Y_SCAttered ALBedo (-)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSCA_ALB,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XSCA_ALB,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM = 'EMIS' YCOMMENT = 'X_Y_EMISsivity (-)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XEMIS,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XEMIS,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM = 'TSRAD' YCOMMENT = 'X_Y_RADiative Surface Temperature (K)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTSRAD,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTSRAD,IGRID,ILENCH,YCOMMENT,IRESP) ! ENDIF ! @@ -1920,7 +1919,7 @@ IF (NRR > 1 .AND. CPROGRAM == 'MESONH') THEN IGRID=1 ILENCH=LEN(YCOMMENT) YDIR='XY' - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XCLDFR,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XCLDFR,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! ! @@ -1935,7 +1934,7 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN YDIR='--' YCOMMENT = '-' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,TDTDCONV,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,TDTDCONV,IGRID,ILENCH,YCOMMENT,IRESP) ! YDIR='XY' ! @@ -1943,7 +1942,7 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN YCOMMENT = 'X_Y_COUNTCONV' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,NCOUNTCONV,IGRID,ILENCH,YCOMMENT, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,NCOUNTCONV,IGRID,ILENCH,YCOMMENT, & IRESP) ! ! @@ -1951,35 +1950,35 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN YCOMMENT = 'X_Y_Z_CONVective heating/cooling rate (K/s)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDTHCONV,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDTHCONV,IGRID,ILENCH,YCOMMENT,IRESP) ! ! YRECFM = 'DRVCONV' YCOMMENT = 'X_Y_Z_CONVective R_v tendency (1/s)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDRVCONV,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDRVCONV,IGRID,ILENCH,YCOMMENT,IRESP) ! ! YRECFM = 'DRCCONV' YCOMMENT = 'X_Y_Z_CONVective R_c tendency (1/s)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDRCCONV,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDRCCONV,IGRID,ILENCH,YCOMMENT,IRESP) ! ! YRECFM = 'DRICONV' YCOMMENT = 'X_Y_Z_CONVective R_i tendency (1/s)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDRICONV,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDRICONV,IGRID,ILENCH,YCOMMENT,IRESP) ! ! YRECFM = 'PRCONV' YCOMMENT = 'X_Y_CONVective instantaneous Precipitation Rate (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPRCONV*3.6E6,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XPRCONV*3.6E6,IGRID,ILENCH, & YCOMMENT,IRESP) ! ! @@ -1987,7 +1986,7 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN YCOMMENT = 'X_Y_CONVective ACcumulated Precipitation rate (MM)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPACCONV*1.0E3,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XPACCONV*1.0E3,IGRID,ILENCH, & YCOMMENT,IRESP) ! ! @@ -1995,7 +1994,7 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN YCOMMENT = 'X_Y_CONVective instantaneous Precipitation Rate for Snow (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPRSCONV*3.6E6,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XPRSCONV*3.6E6,IGRID,ILENCH, & YCOMMENT,IRESP) ! IF ( LCH_CONV_LINOX ) THEN @@ -2003,28 +2002,28 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN YCOMMENT = 'X_Y_IntraCloud lightning Rate (/s)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XIC_RATE,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,'XY',XIC_RATE,IGRID,ILENCH, & YCOMMENT,IRESP) YRECFM = 'CG_RATE' YCOMMENT = 'X_Y_CloudGround lightning Rate (/s)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XCG_RATE,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,'XY',XCG_RATE,IGRID,ILENCH, & YCOMMENT,IRESP) YRECFM = 'IC_TOTAL_NB' YCOMMENT = 'X_Y_IntraCloud lightning Number (-)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XIC_TOTAL_NUMBER,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,'XY',XIC_TOTAL_NUMBER,IGRID,ILENCH, & YCOMMENT,IRESP) YRECFM = 'CG_TOTAL_NB' YCOMMENT = 'X_Y_CloudGround lightning Number (-)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XCG_TOTAL_NUMBER,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,'XY',XCG_TOTAL_NUMBER,IGRID,ILENCH, & YCOMMENT,IRESP) END IF ! @@ -2035,35 +2034,35 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN WRITE(YRECFM,'(A7,I3.3)')'DSVCONV',JSV WRITE(YCOMMENT,'(A6,A7,I3.3,A6)')'X_Y_Z_','DSVCONV',JSV,' (1/S)' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO DO JSV = NSV_C2R2BEG, NSV_C2R2END YRECFM = 'DSVCONV_'//TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1)) WRITE(YCOMMENT,'(A6,A7,I3.3,A6)')'X_Y_Z_','DSVCONV',JSV,' (1/S)' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO DO JSV = NSV_C1R3BEG, NSV_C1R3END YRECFM = 'DSVCONV_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1)) WRITE(YCOMMENT,'(A6,A7,I3.3,A6)')'X_Y_Z_','DSVCONV',JSV,' (1/S)' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO DO JSV = NSV_ELECBEG, NSV_ELECEND YRECFM = 'DSVCONV_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1)) WRITE(YCOMMENT,'(A6,A7,I3.3,A6)')'X_Y_Z_','DSVCONV',JSV,' (1/S)' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO DO JSV = NSV_PPBEG, NSV_PPEND WRITE(YRECFM,'(A7,I3.3)')'DSVCONV',JSV WRITE(YCOMMENT,'(A6,A7,I3.3,A6)')'X_Y_Z_','DSVCONV',JSV,' (1/S)' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO #ifdef MNH_FOREFIRE @@ -2072,7 +2071,7 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN WRITE(YRECFM,'(A7,I3.3)')'DSVCONV',JSV WRITE(YCOMMENT,'(A6,A7,I3.3,A6)')'X_Y_Z_','DSVCONV',JSV,' (1/S)' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO END IF @@ -2082,7 +2081,7 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN YRECFM = 'DSVCONV_'//TRIM(UPCASE(CNAMES(JSV-NSV_CHEMBEG+1))) WRITE(YCOMMENT,'(A6,A7,I3.3,A6)')'X_Y_Z_','DSVCONV',JSV,' (1/S)' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO IF (LORILAM) THEN @@ -2090,7 +2089,7 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN YRECFM = 'DSVCONV_'//TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1))) WRITE(YCOMMENT,'(A6,A7,I3.3,A6)')'X_Y_Z_','DSVCONV',JSV,' (1/S)' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO END IF @@ -2100,7 +2099,7 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN YRECFM='DSVCONV_LINOX' WRITE(YCOMMENT,'(A6,A7,I3.3,A6)')'X_Y_Z_','DSVCONV',JSV,' (1/S)' ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XDSVCONV(:,:,:,JSV), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,'XY',XDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO END IF @@ -2108,21 +2107,21 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN YRECFM = 'DSVCONV_'//TRIM(CLGNAMES(JSV-NSV_LGBEG+1)) WRITE(YCOMMENT,'(A6,A7,I3.3,A6)')'X_Y_Z_','DSVCONV',JSV,' (1/S)' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO DO JSV = NSV_DSTBEG, NSV_DSTEND YRECFM = 'DSVCONV_'//TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1)) WRITE(YCOMMENT,'(A6,A7,I3.3,A6)')'X_Y_Z_','DSVCONV',JSV,' (1/S)' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO DO JSV = NSV_SLTBEG, NSV_SLTEND YRECFM = 'DSVCONV_'//TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1)) WRITE(YCOMMENT,'(A6,A7,I3.3,A6)')'X_Y_Z_','DSVCONV',JSV,' (1/S)' ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO END IF @@ -2142,7 +2141,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_INstantaneous Cloud Precipitation Rain Rate (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*3.6E6,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*3.6E6,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ! ZWORK2D(:,:) = XACPRC(:,:) @@ -2150,7 +2149,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_ACcumulated Cloud Precipitation Rain Rate (MM)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*1.0E3,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*1.0E3,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ENDIF ENDIF @@ -2162,7 +2161,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_INstantaneous Precipitation Rain Rate (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*3.6E6,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*3.6E6,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ! ZWORK3D(:,:,:) = XINPRR3D(:,:,:) @@ -2170,7 +2169,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_INstantaneous 3D Rain Precipitation flux (M/S)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ! ZWORK3D(:,:,:) = XEVAP3D(:,:,:) @@ -2178,7 +2177,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_INstantaneous 3D Rain Evaporation flux (KG/KG/S)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ! ZWORK2D(:,:) = XACPRR(:,:) @@ -2186,7 +2185,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_ACcumulated Precipitation Rain Rate (MM)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*1.0E3,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*1.0E3,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ENDIF ENDIF @@ -2198,7 +2197,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_INstantaneous PRecipitation Snow Rate (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*3.6E6,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*3.6E6,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ! ZWORK2D(:,:) = XACPRS(:,:) @@ -2206,7 +2205,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_ACcumulated PRecipitation Snow Rate (MM)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*1.0E3,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*1.0E3,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion END IF END IF @@ -2218,7 +2217,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_INstantaneous PRecipitation Graupel Rate (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*3.6E6,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*3.6E6,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ! ZWORK2D(:,:) = XACPRG(:,:) @@ -2226,7 +2225,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_ACcumulated PRecipitation Graupel Rate (MM)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*1.0E3,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*1.0E3,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion END IF END IF @@ -2238,7 +2237,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_INstantaneous PRecipitation Hail Rate (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*3.6E6,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*3.6E6,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ! ZWORK2D(:,:) = XACPRH(:,:) @@ -2246,7 +2245,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_ACcumulated PRecipitation Hail Rate (MM)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*1.0E3,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*1.0E3,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ENDIF ENDIF @@ -2261,7 +2260,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_Total INstantaneaous PRecipitation rate (MM/H)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*3.6E6,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*3.6E6,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion ! ZWORK2D = XACPRR + XACPRS @@ -2272,7 +2271,7 @@ IF (CPROGRAM /= 'IDEAL') THEN YCOMMENT = 'X_Y_Total ACcumulated PRecipitation rate (MM)' IGRID = 1 ILENCH = LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*1.0E3,IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D*1.0E3,IGRID,ILENCH, & YCOMMENT,IRESP) ! unit conversion END IF END IF @@ -2291,7 +2290,7 @@ IF (LFORCING) THEN YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,NFRC,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,NFRC,IGRID,ILENCH,YCOMMENT,IRESP) ! DO JT=1,NFRC ! @@ -2299,7 +2298,7 @@ IF (LFORCING) THEN ! ! YRECFM='DTFRC'//YFRC - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,TDTFRC(JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,TDTFRC(JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! ! @@ -2307,7 +2306,7 @@ IF (LFORCING) THEN YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XUFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XUFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! ! @@ -2315,7 +2314,7 @@ IF (LFORCING) THEN YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XVFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! ! @@ -2323,7 +2322,7 @@ IF (LFORCING) THEN YCOMMENT=' ' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XWFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XWFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! ! @@ -2331,7 +2330,7 @@ IF (LFORCING) THEN YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTHFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTHFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! ! @@ -2339,7 +2338,7 @@ IF (LFORCING) THEN YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRVFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRVFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! ! @@ -2347,7 +2346,7 @@ IF (LFORCING) THEN YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTENDTHFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTENDTHFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! ! @@ -2355,7 +2354,7 @@ IF (LFORCING) THEN YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTENDRVFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTENDRVFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! ! @@ -2363,7 +2362,7 @@ IF (LFORCING) THEN YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XGXTHFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XGXTHFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! ! @@ -2371,7 +2370,7 @@ IF (LFORCING) THEN YCOMMENT=' ' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XGYTHFRC(:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XGYTHFRC(:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! ! @@ -2379,7 +2378,7 @@ IF (LFORCING) THEN YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPGROUNDFRC(JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XPGROUNDFRC(JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! END DO @@ -2396,14 +2395,14 @@ IF ( L2D_ADV_FRC ) THEN YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,NADVFRC,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,NADVFRC,IGRID,ILENCH,YCOMMENT,IRESP) ! DO JT=1,NADVFRC ! WRITE (YFRC,'(I3.3)') JT ! YRECFM='DTADV'//YFRC - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,TDTADVFRC(JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,TDTADVFRC(JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='TH_ADV'//YFRC @@ -2411,7 +2410,7 @@ IF ( L2D_ADV_FRC ) THEN IGRID=1 ILENCH=LEN(YCOMMENT) ! - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDTHFRC(:,:,:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDTHFRC(:,:,:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='Q_ADV'//YFRC @@ -2419,7 +2418,7 @@ IF ( L2D_ADV_FRC ) THEN IGRID=1 ILENCH=LEN(YCOMMENT) ! - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDRVFRC(:,:,:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDRVFRC(:,:,:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! ENDDO @@ -2433,14 +2432,14 @@ IF ( L2D_REL_FRC ) THEN YCOMMENT=' ' IGRID=0 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,NRELFRC,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,NRELFRC,IGRID,ILENCH,YCOMMENT,IRESP) ! DO JT=1,NRELFRC ! WRITE (YFRC,'(I3.3)') JT ! YRECFM='DTREL'//YFRC - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,TDTRELFRC(JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,TDTRELFRC(JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='TH_REL'//YFRC @@ -2448,7 +2447,7 @@ IF ( L2D_REL_FRC ) THEN IGRID=1 ILENCH=LEN(YCOMMENT) ! - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTHREL(:,:,:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTHREL(:,:,:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! YRECFM='Q_REL'//YFRC @@ -2456,7 +2455,7 @@ IF ( L2D_REL_FRC ) THEN IGRID=1 ILENCH=LEN(YCOMMENT) ! - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRVREL(:,:,:,JT),IGRID,ILENCH, & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XRVREL(:,:,:,JT),IGRID,ILENCH, & YCOMMENT,IRESP) ! ENDDO @@ -2470,13 +2469,13 @@ IF ( LTH_FLX ) THEN YCOMMENT='K M/S' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVTH_FLUX_M,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XVTH_FLUX_M,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='WT_FLX' YCOMMENT='K M/S' IGRID=4 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XWTH_FLUX_M,IGRID,ILENCH,YCOMMENT,IRESP)! + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XWTH_FLUX_M,IGRID,ILENCH,YCOMMENT,IRESP)! END IF ! IF ( LUV_FLX) THEN @@ -2484,13 +2483,13 @@ IF ( LUV_FLX) THEN YCOMMENT='M/S**2' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVU_FLUX_M,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XVU_FLUX_M,IGRID,ILENCH,YCOMMENT,IRESP) END IF ! !* 1.12 Balloon variables ! ! -IF (LFLYER) CALL WRITE_BALLOON_n(HFMFILE) +IF (LFLYER) CALL WRITE_BALLOON_n(YFMFILE) ! ! !* 1.13 Filtered variables for hurricane initialization @@ -2509,33 +2508,33 @@ IF ( CPROGRAM=='REAL ' ) THEN YCOMMENT='X_Y_Z_U component of Total wind (m/s)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XUTOT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XUTOT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='VT15' YCOMMENT='X_Y_Z_V component of Total wind (m/s)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVTOT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XVTOT,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='TEMPTOT' YCOMMENT='X_Y_Z_TOTal TEMPerature (K)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTTOT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTTOT,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (INDEX(CFILTERING,'P')/=0) THEN YRECFM='PRESTOT' YCOMMENT='X_Y_Z_TOTal PRESsure (Pa)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPTOT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XPTOT,IGRID,ILENCH,YCOMMENT,IRESP) ENDIF IF (INDEX(CFILTERING,'Q')/=0) THEN YRECFM='HUMTOT' YCOMMENT='X_Y_Z_TOTal specific HUMidity (kg/kg)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XQTOT,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XQTOT,IGRID,ILENCH,YCOMMENT,IRESP) ENDIF ! ! ii) Environmental fields (ENV=TOT-VORDIS) @@ -2544,33 +2543,33 @@ IF ( CPROGRAM=='REAL ' ) THEN YCOMMENT='X_Y_Z_U component of Environmental wind (m/s)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XUENV,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XUENV,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='VT16' YCOMMENT='X_Y_Z_V component of Environmental wind (m/s)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVENV,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XVENV,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='TEMPENV' YCOMMENT='X_Y_Z_ENVironmental TEMPerature (K)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTENV,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTENV,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (INDEX(CFILTERING,'P')/=0) THEN YRECFM='PRESENV' YCOMMENT='X_Y_Z_ENVironmental PRESsure (Pa)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPENV,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XPENV,IGRID,ILENCH,YCOMMENT,IRESP) ENDIF IF (INDEX(CFILTERING,'Q')/=0) THEN YRECFM='HUMENV' YCOMMENT='X_Y_Z_ENVironmental specific HUMidity (kg/kg)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XQENV,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XQENV,IGRID,ILENCH,YCOMMENT,IRESP) ENDIF ! END IF @@ -2582,19 +2581,19 @@ IF ( CPROGRAM=='REAL ' ) THEN YCOMMENT='X_Y_Z_U component of Basic wind (m/s)' IGRID=2 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XUBASIC,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XUBASIC,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='VT17' YCOMMENT='X_Y_Z_V component of Basic wind (m/s)' IGRID=3 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVBASIC,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XVBASIC,IGRID,ILENCH,YCOMMENT,IRESP) ! YRECFM='TEMPBAS' YCOMMENT='X_Y_Z_BASic TEMPerature (K)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTBASIC,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XTBASIC,IGRID,ILENCH,YCOMMENT,IRESP) ! IF (INDEX(CFILTERING,'P')/=0) THEN YRECFM='PRESBAS' @@ -2602,7 +2601,7 @@ IF ( CPROGRAM=='REAL ' ) THEN YCOMMENT='X_Y_Z_BASic PRESsure (Pa)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPBASIC(:,:,1),IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XPBASIC(:,:,1),IGRID,ILENCH,YCOMMENT,IRESP) ENDIF ! IF (INDEX(CFILTERING,'Q')/=0) THEN @@ -2610,7 +2609,7 @@ IF ( CPROGRAM=='REAL ' ) THEN YCOMMENT='X_Y_Z_BASic specific HUMidity (kg/kg)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XQBASIC,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XQBASIC,IGRID,ILENCH,YCOMMENT,IRESP) ENDIF END IF IF (NDIAG_FILT >=2) THEN @@ -2621,7 +2620,7 @@ IF ( CPROGRAM=='REAL ' ) THEN YCOMMENT='X_Y_Z_Total disturbance tangential wind (m/s)' IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVTDIS,IGRID,ILENCH,YCOMMENT,IRESP) + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XVTDIS,IGRID,ILENCH,YCOMMENT,IRESP) ! END IF ! @@ -2636,7 +2635,7 @@ IF ( CPROGRAM=='REAL ' ) THEN YCOMMENT='X_Y_Z_'//ADJUSTL(YRECFM) IGRID=1 ILENCH=LEN(YCOMMENT) - CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XDUMMY_2D(:,:,JSA), & + CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,XDUMMY_2D(:,:,JSA), & IGRID,ILENCH,YCOMMENT,IRESP) END DO END IF -- GitLab