Skip to content
Snippets Groups Projects
Commit 0a9e23ef authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 24/02/2017: IO: added fields written in write_lbn.f90

parent 5e959042
No related branches found
No related tags found
No related merge requests found
......@@ -1264,6 +1264,47 @@ ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
IDX = IDX+1
!
IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
TFIELDLIST(IDX)%CMNHNAME = 'HORELAX_TKE'
TFIELDLIST(IDX)%CSTDNAME = ''
TFIELDLIST(IDX)%CLONGNAME = 'MesoNH: HORELAX_TKE'
TFIELDLIST(IDX)%CUNITS = ''
TFIELDLIST(IDX)%CDIR = '--'
TFIELDLIST(IDX)%CCOMMENT = 'Switch to activate the HOrizontal RELAXation'
TFIELDLIST(IDX)%NGRID = 1
TFIELDLIST(IDX)%NTYPE = TYPELOG
TFIELDLIST(IDX)%NDIMS = 0
ALLOCATE(TFIELDLIST(IDX)%TFIELD_L0D(IMODEL))
IDX = IDX+1
!
IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
TFIELDLIST(IDX)%CMNHNAME = 'LBXTKEM'
TFIELDLIST(IDX)%CSTDNAME = ''
TFIELDLIST(IDX)%CLONGNAME = 'MesoNH: LBXTKEM'
TFIELDLIST(IDX)%CUNITS = 'm2 s-2'
TFIELDLIST(IDX)%CDIR = 'XY'
TFIELDLIST(IDX)%CLBTYPE = 'LBX'
TFIELDLIST(IDX)%CCOMMENT = '2_Y_Z_LBXTKEM'
TFIELDLIST(IDX)%NGRID = 1
TFIELDLIST(IDX)%NTYPE = TYPEREAL
TFIELDLIST(IDX)%NDIMS = 3
ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
IDX = IDX+1
!
IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
TFIELDLIST(IDX)%CMNHNAME = 'LBYTKEM'
TFIELDLIST(IDX)%CSTDNAME = ''
TFIELDLIST(IDX)%CLONGNAME = 'MesoNH: LBYTKEM'
TFIELDLIST(IDX)%CUNITS = 'm2 s-2'
TFIELDLIST(IDX)%CDIR = 'XY'
TFIELDLIST(IDX)%CLBTYPE = 'LBY'
TFIELDLIST(IDX)%CCOMMENT = '2_Y_Z_LBYTKEM'
TFIELDLIST(IDX)%NGRID = 1
TFIELDLIST(IDX)%NTYPE = TYPEREAL
TFIELDLIST(IDX)%NDIMS = 3
ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
IDX = IDX+1
!
IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
TFIELDLIST(IDX)%CMNHNAME = 'DRYMASST'
TFIELDLIST(IDX)%CSTDNAME = ''
TFIELDLIST(IDX)%CLONGNAME = 'MesoNH: DRYMASST'
......@@ -1773,6 +1814,10 @@ IF (.NOT.ASSOCIATED(LHORELAX_UVWTH)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','ALLOC_FIELD_SCALARS',' LHORELAX_UVWTH was not associated')
ALLOCATE(LHORELAX_UVWTH)
END IF
IF (.NOT.ASSOCIATED(LHORELAX_TKE)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','ALLOC_FIELD_SCALARS',' LHORELAX_TKE was not associated')
ALLOCATE(LHORELAX_TKE)
END IF
!
END SUBROUTINE ALLOC_FIELD_SCALARS
!
......@@ -1800,72 +1845,85 @@ IF (.NOT.ASSOCIATED(LSLEVE)) THEN
CALL FIND_FIELD_ID_FROM_MNHNAME('SLEVE',IID,IRESP)
TFIELDLIST(IID)%TFIELD_L0D(1)%DATA=>LSLEVE
END IF
!
IF (.NOT.ASSOCIATED(XLEN1)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' XLEN1 was not associated')
ALLOCATE(XLEN1)
CALL FIND_FIELD_ID_FROM_MNHNAME('LEN1',IID,IRESP)
TFIELDLIST(IID)%TFIELD_X0D(1)%DATA=>XLEN1
END IF
!
IF (.NOT.ASSOCIATED(XLEN2)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' XLEN2 was not associated')
ALLOCATE(XLEN2)
CALL FIND_FIELD_ID_FROM_MNHNAME('LEN2',IID,IRESP)
TFIELDLIST(IID)%TFIELD_X0D(1)%DATA=>XLEN2
END IF
!
IF (.NOT.ASSOCIATED(TDTMOD)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTMOD was not associated')
ALLOCATE(TDTMOD)
CALL FIND_FIELD_ID_FROM_MNHNAME('DTMOD',IID,IRESP)
TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTMOD
END IF
!
IF (.NOT.ASSOCIATED(TDTCUR)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTCUR was not associated')
ALLOCATE(TDTCUR)
CALL FIND_FIELD_ID_FROM_MNHNAME('DTCUR',IID,IRESP)
TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTCUR
END IF
!
IF (.NOT.ASSOCIATED(TDTRAD_FULL)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTRAD_FULL was not associated')
ALLOCATE(TDTRAD_FULL)
CALL FIND_FIELD_ID_FROM_MNHNAME('DTRAD_FULL',IID,IRESP)
TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTRAD_FULL
END IF
!
IF (.NOT.ASSOCIATED(TDTRAD_CLONLY)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTRAD_CLONLY was not associated')
ALLOCATE(TDTRAD_CLONLY)
CALL FIND_FIELD_ID_FROM_MNHNAME('DTRAD_CLLY',IID,IRESP)
TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTRAD_CLONLY
END IF
!
IF (.NOT.ASSOCIATED(TDTDCONV)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTDCONV was not associated')
ALLOCATE(TDTDCONV)
CALL FIND_FIELD_ID_FROM_MNHNAME('DTDCONV',IID,IRESP)
TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTDCONV
END IF
!
IF (.NOT.ASSOCIATED(CSURF)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' CSURF was not associated')
ALLOCATE(CHARACTER(LEN=4) :: CSURF)
CALL FIND_FIELD_ID_FROM_MNHNAME('SURF',IID,IRESP)
TFIELDLIST(IID)%TFIELD_C0D(1)%DATA=>CSURF
END IF
!
IF (.NOT.ASSOCIATED(XDRYMASST)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' XDRYMASST was not associated')
ALLOCATE(XDRYMASST)
CALL FIND_FIELD_ID_FROM_MNHNAME('DRYMASST',IID,IRESP)
TFIELDLIST(IID)%TFIELD_X0D(1)%DATA=>XDRYMASST
END IF
!
IF (.NOT.ASSOCIATED(NRIMX)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' NRIMX was not associated')
ALLOCATE(NRIMX)
END IF
!
CALL FIND_FIELD_ID_FROM_MNHNAME('RIMX',IID,IRESP)
TFIELDLIST(IID)%TFIELD_N0D(1)%DATA=>NRIMX
IF (.NOT.ASSOCIATED(NRIMY)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' NRIMY was not associated')
ALLOCATE(NRIMY)
END IF
!
CALL FIND_FIELD_ID_FROM_MNHNAME('RIMY',IID,IRESP)
TFIELDLIST(IID)%TFIELD_N0D(1)%DATA=>NRIMY
!
IF (.NOT.ASSOCIATED(LHORELAX_UVWTH)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' LHORELAX_UVWTH was not associated')
ALLOCATE(LHORELAX_UVWTH)
......@@ -1873,6 +1931,13 @@ END IF
CALL FIND_FIELD_ID_FROM_MNHNAME('HORELAX_UVWTH',IID,IRESP)
TFIELDLIST(IID)%TFIELD_L0D(1)%DATA=>LHORELAX_UVWTH
!
IF (.NOT.ASSOCIATED(LHORELAX_TKE)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' LHORELAX_TKE was not associated')
ALLOCATE(LHORELAX_TKE)
END IF
CALL FIND_FIELD_ID_FROM_MNHNAME('HORELAX_TKE',IID,IRESP)
TFIELDLIST(IID)%TFIELD_L0D(1)%DATA=>LHORELAX_TKE
!
END SUBROUTINE INI_FIELD_SCALARS
!
!
......@@ -2231,6 +2296,14 @@ IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA)) THEN
END IF
LHORELAX_UVWTH => TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA
!
CALL FIND_FIELD_ID_FROM_MNHNAME('HORELAX_TKE',IID,IRESP)
IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA)) THEN
CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
'TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
ALLOCATE(TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA)
END IF
LHORELAX_TKE => TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA
!
! MODD_ADV_n variables
!
CALL FIND_FIELD_ID_FROM_MNHNAME('TKEMS',IID,IRESP); XRTKEMS=>TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
......
......@@ -121,7 +121,7 @@ TYPE DYN_t
LOGICAL :: LHORELAX_RV, LHORELAX_RC, LHORELAX_RR, LHORELAX_RI
LOGICAL :: LHORELAX_RS, LHORELAX_RG, LHORELAX_RH
!
LOGICAL :: LHORELAX_TKE
! LOGICAL :: LHORELAX_TKE
!
LOGICAL :: LHORELAX_SVC2R2
LOGICAL :: LHORELAX_SVC1R3
......@@ -318,7 +318,7 @@ LHORELAX_RI=>DYN_MODEL(KTO)%LHORELAX_RI
LHORELAX_RS=>DYN_MODEL(KTO)%LHORELAX_RS
LHORELAX_RG=>DYN_MODEL(KTO)%LHORELAX_RG
LHORELAX_RH=>DYN_MODEL(KTO)%LHORELAX_RH
LHORELAX_TKE=>DYN_MODEL(KTO)%LHORELAX_TKE
!LHORELAX_TKE=>DYN_MODEL(KTO)%LHORELAX_TKE !Done in FIELDLIST_GOTO_MODEL
LHORELAX_SVC2R2=>DYN_MODEL(KTO)%LHORELAX_SVC2R2
LHORELAX_SVC1R3=>DYN_MODEL(KTO)%LHORELAX_SVC1R3
LHORELAX_SVLIMA=>DYN_MODEL(KTO)%LHORELAX_SVLIMA
......
......@@ -120,7 +120,7 @@ USE MODI_DUSTLFI_n
USE MODI_SALTLFI_n
USE MODD_PARAMETERS, ONLY: JPHEXT
USE MODD_IO_ll, ONLY: TFILEDATA
USE MODE_FIELD, ONLY: TFIELDDATA
USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL
!
!
IMPLICIT NONE
......@@ -196,29 +196,10 @@ YCOMMENT=''
ILENCH=LEN(YCOMMENT)
!
IF(CTURB/='NONE') THEN
YRECFM = 'HORELAX_TKE'
CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,LHORELAX_TKE,IGRID,ILENCH,YCOMMENT,IRESP)
CALL IO_WRITE_FIELD(TPFILE,'HORELAX_TKE',CLUOUT,IRESP,LHORELAX_TKE)
!
IRIMX =(NSIZELBXTKE_ll-2*JPHEXT)/2
IRIMY =(NSIZELBYTKE_ll-2*JPHEXT)/2
IF(NSIZELBXTKE_ll /= 0) THEN
YRECFM='LBXTKEM'
YCOMMENT='2_Y_Z_LBXTKEM (M**2/S**2)'
IGRID=1
ILENCH=LEN(YCOMMENT)
CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXTKEM,IRIMX,NSIZELBXTKE_ll,&
& IGRID,ILENCH,YCOMMENT,IRESP)
END IF
!
IF(NSIZELBYTKE_ll /= 0) THEN
YRECFM='LBYTKEM'
YCOMMENT='X_2_Z_LBYTKEM (M**2/S**2)'
IGRID=1
ILENCH=LEN(YCOMMENT)
CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYTKEM,IRIMY,NSIZELBYTKE_ll,&
& IGRID,ILENCH,YCOMMENT,IRESP)
END IF
IF(NSIZELBXTKE_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBXTKEM',CLUOUT,NSIZELBXTKE_ll,IRESP,XLBXTKEM)
IF(NSIZELBYTKE_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBYTKEM',CLUOUT,NSIZELBYTKE_ll,IRESP,XLBYTKEM)
END IF
!
!
......@@ -226,43 +207,57 @@ END IF
! -----
!
IF (NRR >=1) THEN
IGRID=1
GHORELAX_R = LHORELAX_RV .OR. LHORELAX_RC .OR. LHORELAX_RR .OR. &
LHORELAX_RI .OR. LHORELAX_RS .OR. LHORELAX_RG .OR. &
LHORELAX_RH
YRECFM = 'HORELAX_R'
YCOMMENT=' '
ILENCH=LEN(YCOMMENT)
CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,GHORELAX_R,IGRID,ILENCH,YCOMMENT,IRESP)
!
TZFIELD%CMNHNAME = 'HORELAX_R'
TZFIELD%CSTDNAME = ''
TZFIELD%CLONGNAME = 'MesoNH: HORELAX_R'
TZFIELD%CUNITS = ''
TZFIELD%CDIR = '--'
TZFIELD%CCOMMENT = 'Switch to activate the HOrizontal RELAXation'
TZFIELD%NGRID = 1
TZFIELD%NTYPE = TYPELOG
TZFIELD%NDIMS = 0
!
CALL IO_WRITE_FIELD(TPFILE,TZFIELD,CLUOUT,IRESP,GHORELAX_R)
!
GUSER(:)=(/LUSERV,LUSERC,LUSERR,LUSERI,LUSERS,LUSERG,LUSERH/)
YC(:)=(/"V","C","R","I","S","G","H"/)
IRIMX =(NSIZELBXR_ll-2*JPHEXT)/2
IRIMY =(NSIZELBYR_ll-2*JPHEXT)/2
IRR=0
!
TZFIELD%CSTDNAME = ''
TZFIELD%CUNITS = 'kg kg-1'
TZFIELD%CDIR = '--'
TZFIELD%NGRID = 1
TZFIELD%NTYPE = TYPEREAL
TZFIELD%NDIMS = 3
! Loop on moist variables
DO JRR=1,7
IF (GUSER(JRR)) THEN
IRR=IRR+1
IF(NSIZELBXR_ll /= 0) THEN
YRECFM= 'LBXR'//YC(JRR)//'M'
YCOMMENT= '2_Y_Z_LBXR'//YC(JRR)//'M (KG/KG)'
ILENCH=LEN(YCOMMENT)
CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXRM(:,:,:,IRR),IRIMX,NSIZELBXR_ll,&
& IGRID,ILENCH,YCOMMENT,IRESP)
TZFIELD%CMNHNAME = 'LBXR'//YC(JRR)//'M'
TZFIELD%CLONGNAME = 'MesoNH: LBXR'//YC(JRR)//'M'
TZFIELD%CLBTYPE = 'LBX'
TZFIELD%CCOMMENT = '2_Y_Z_LBXR'//YC(JRR)//'M'
CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,CLUOUT,NSIZELBXR_ll,IRESP,XLBXRM(:,:,:,IRR))
END IF
!
IF(NSIZELBYR_ll /= 0) THEN
YRECFM= 'LBYR'//YC(JRR)//'M'
YCOMMENT= '2_Y_Z_LBYR'//YC(JRR)//'M (KG/KG)'
ILENCH=LEN(YCOMMENT)
CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYRM(:,:,:,IRR),IRIMY,NSIZELBYR_ll,&
& IGRID,ILENCH,YCOMMENT,IRESP)
TZFIELD%CMNHNAME = 'LBYR'//YC(JRR)//'M'
TZFIELD%CLONGNAME = 'MesoNH: LBYR'//YC(JRR)//'M'
TZFIELD%CLBTYPE = 'LBY'
TZFIELD%CCOMMENT = '2_Y_Z_LBYR'//YC(JRR)//'M'
CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,CLUOUT,NSIZELBXR_ll,IRESP,XLBYRM(:,:,:,IRR))
END IF
END IF
END DO
END IF
!
TZFIELD%CLBTYPE = 'NONE' !Just to be careful
!
!* 7 LB-SV
! -----
!
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment