diff --git a/src/MNH/get_nb_procio_read_mnh.f90 b/src/MNH/get_nb_procio_read_mnh.f90 index 717dde4b8e27c12e2eeeaae20ce0243cc1f22b59..7cb260fd4cc34288954f570773c0456e07e8de0f 100644 --- a/src/MNH/get_nb_procio_read_mnh.f90 +++ b/src/MNH/get_nb_procio_read_mnh.f90 @@ -36,9 +36,7 @@ !! !------------------------------------------------------------------------------- ! -USE MODD_IO_SURF_MNH, ONLY : COUT, TPINFILE -! -USE MODE_FM, ONLY : FMLOOK_ll +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE ! IMPLICIT NONE ! @@ -52,9 +50,8 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code ! !* 0.2 Declarations of local variables ! -!---------------------------------------------------------------- INTEGER :: IRESP -INTEGER :: ILUPRI +!---------------------------------------------------------------- ! !* 1. get the number of processes used for IO ! @@ -67,9 +64,8 @@ ELSE END IF !---------------------------------------------------------------- IF (IRESP.NE.0) THEN - CALL FMLOOK_ll(COUT,COUT,ILUPRI,IRESP) - WRITE (ILUPRI,*) ' exit from GET_NB_PROCIO_READ_MNH with RESP:',IRESP - WRITE (ILUPRI,*) ' | TPINFILE%CNAME = ',TRIM(ADJUSTL(TPINFILE%CNAME)) + WRITE (TOUT%NLU,*) ' exit from GET_NB_PROCIO_READ_MNH with RESP:',IRESP + WRITE (TOUT%NLU,*) ' | TPINFILE%CNAME = ',TRIM(ADJUSTL(TPINFILE%CNAME)) END IF KRESP = IRESP ! diff --git a/src/MNH/get_nb_procio_write_mnh.f90 b/src/MNH/get_nb_procio_write_mnh.f90 index 4d76a142c0643b771b6cb601f92d2b1b2d5767ad..24087a743cfa5eccf70a624b37f301c1c73a792e 100644 --- a/src/MNH/get_nb_procio_write_mnh.f90 +++ b/src/MNH/get_nb_procio_write_mnh.f90 @@ -36,11 +36,6 @@ !! !------------------------------------------------------------------------------- ! -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_IO_SURF_MNH, ONLY : COUT, COUTFILE -! -USE MODE_FM, ONLY : FMLOOK_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME ! IMPLICIT NONE ! @@ -54,28 +49,9 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code ! !* 0.2 Declarations of local variables ! +!NONE !---------------------------------------------------------------- -INTEGER :: IRESP -INTEGER :: ILUPRI -TYPE(TFILEDATA),POINTER :: TZFILE -! -!* 1. get the number of processes used for IO -! -IRESP = 0 -! -TZFILE => NULL() -CALL IO_FILE_FIND_BYNAME(TRIM(COUTFILE),TZFILE,IRESP) -IF (IRESP==0) THEN - KNB_PROCIO = 2 -ELSE - IRESP = -61 -END IF -!---------------------------------------------------------------- -IF (IRESP.NE.0) THEN - CALL FMLOOK_ll(COUT,COUT,ILUPRI,IRESP) - WRITE (ILUPRI,*) ' exit from GET_NB_PROCIO_WRITE_MNH with RESP:',IRESP - WRITE (ILUPRI,*) ' | COUTFILE = ',COUTFILE -END IF -KRESP = IRESP +KNB_PROCIO = 2 +KRESP = 0 ! END SUBROUTINE GET_NB_PROCIO_WRITE_MNH diff --git a/src/MNH/mnhclose_aux_io_surf.f90 b/src/MNH/mnhclose_aux_io_surf.f90 index 7709c1dadd74d66f3af47efa25c8bfdcb9c7ec2f..9497f55e3fb33291786938a953c5dc0efbc82fc2 100644 --- a/src/MNH/mnhclose_aux_io_surf.f90 +++ b/src/MNH/mnhclose_aux_io_surf.f90 @@ -63,7 +63,7 @@ USE MODE_ll USE MODE_FM USE MODE_IO_ll -USE MODD_IO_SURF_MNH, ONLY : COUT, TPINFILE, CACTION, NMASK_ALL, NMASK +USE MODD_IO_SURF_MNH, ONLY : TPINFILE, CACTION, NMASK_ALL, NMASK ! IMPLICIT NONE ! diff --git a/src/MNH/mnhend_io_surfn.f90 b/src/MNH/mnhend_io_surfn.f90 index aa0847a4c277b5203d547847ab5d53956d634970..60a524b3142852b62b6e7399367cec551a4029ef 100644 --- a/src/MNH/mnhend_io_surfn.f90 +++ b/src/MNH/mnhend_io_surfn.f90 @@ -59,8 +59,8 @@ END MODULE MODI_MNHEND_IO_SURF_n USE MODE_ll USE MODE_FM USE MODE_IO_ll - -USE MODD_IO_SURF_MNH, ONLY : CACTION, CFILE, TPINFILE, COUTFILE, NMASK, NMASK_ALL +! +USE MODD_IO_SURF_MNH, ONLY : CACTION, TPINFILE, COUTFILE, NMASK, NMASK_ALL ! IMPLICIT NONE ! @@ -78,7 +78,6 @@ INTEGER :: IRESP ! return-code if a problem appears ! CACTION=' ' ! -CFILE = ' ' COUTFILE = ' ' TPINFILE => NULL() ! diff --git a/src/MNH/mnhinit_io_surfn.f90 b/src/MNH/mnhinit_io_surfn.f90 index ba0a0f84340a6a38603f06b35563b20f1538a84a..8a05a19942e5709a1f24a44f78ead33bddbf7969 100644 --- a/src/MNH/mnhinit_io_surfn.f90 +++ b/src/MNH/mnhinit_io_surfn.f90 @@ -60,20 +60,19 @@ END MODULE MODI_MNHINIT_IO_SURF_n ! ------------ ! ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE, TPINFILE, COUTFILE, NLUOUT, & - NMASK, CMASK, NIU, NJU, NIB, NJB, NIE, NJE, CACTION, & - NMASK_ALL, NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, COUTFILE, & + NMASK, CMASK, NIU, NJU, NIB, NJB, NIE, NJE, CACTION, & + NMASK_ALL, NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & NIE_ALL, NJE_ALL, NHALO ! USE MODD_CONF, ONLY : CPROGRAM -USE MODD_LUNIT_n, ONLY : CINIFILE,CINIFILEPGD,CMASK_SURFEX -USE MODD_LUNIT, ONLY : CLUOUT0, COUTFMFILE, CPGDFILE +USE MODD_LUNIT_n, ONLY : CINIFILE,CINIFILEPGD,CMASK_SURFEX, TLUOUT +USE MODD_LUNIT, ONLY : CLUOUT0, COUTFMFILE, CPGDFILE, TLUOUT0 ! USE MODD_DIM_n, ONLY : NIMAX, NJMAX, NIMAX_ll, NJMAX_ll USE MODD_PARAMETERS, ONLY : JPHEXT ! USE MODE_ll -USE MODE_FM USE MODE_IO_ll USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME USE MODE_MODELN_HANDLER @@ -114,14 +113,11 @@ CACTION = HACTION ! SELECT CASE(CPROGRAM) CASE('MESONH','SPAWN ') - IMI = GET_CURRENT_MODEL_INDEX() - WRITE(COUT,FMT='(A14,I1,A13)') 'OUTPUT_LISTING',IMI,' ' + TOUT => TLUOUT CASE DEFAULT - COUT = CLUOUT0 + TOUT => TLUOUT0 END SELECT ! -CALL FMLOOK_ll(COUT,COUT,NLUOUT,IRESP) -! ! !* 2. initialization of surface file ! @@ -129,14 +125,11 @@ IF (HACTION=='READ ') THEN SELECT CASE(CPROGRAM) CASE('MESONH','DIAG ') IF(CMASK_SURFEX=="PGD") THEN - CFILE=CINIFILEPGD CALL IO_FILE_FIND_BYNAME(TRIM(CINIFILEPGD),TPINFILE,IRESP) ELSE - CFILE=CINIFILE CALL IO_FILE_FIND_BYNAME(TRIM(CINIFILE),TPINFILE,IRESP) ENDIF CASE('REAL ','IDEAL ','NESPGD','SPAWN ','ZOOMPG') - CFILE=CPGDFILE CALL IO_FILE_FIND_BYNAME(TRIM(CPGDFILE),TPINFILE,IRESP) END SELECT ELSE IF (HACTION=='WRITE') THEN @@ -175,7 +168,7 @@ DEALLOCATE(ZFULL) !* dimension and mask for distributed field on processors CALL GET_TYPE_DIM_n(YSURF_CUR%DTCO,YSURF_CUR%U,HMASK,ILM) ALLOCATE(NMASK(ILM)) -CALL GET_SURF_MASK_n(YSURF_CUR%DTCO,YSURF_CUR%U,HMASK,ILM,NMASK,ILU,NLUOUT) +CALL GET_SURF_MASK_n(YSURF_CUR%DTCO,YSURF_CUR%U,HMASK,ILM,NMASK,ILU,TOUT%NLU) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90 index e8a9f1d2d0795ef5c0c08f2a289e2c2319c22454..a88cfce9270dfb173174c5dd34b5d84c71bd1b46 100644 --- a/src/MNH/mnhopen_aux_io_surf.f90 +++ b/src/MNH/mnhopen_aux_io_surf.f90 @@ -57,15 +57,16 @@ END MODULE MODI_MNHOPEN_AUX_IO_SURF ! ------------ ! ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE, TPINFILE, COUTFILE, NLUOUT, & +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, COUTFILE, & NMASK_ALL, CMASK, NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, NIE_ALL, NJE_ALL, CACTION, & NMASK, NIU, NJU, NIB, NJB, NIE, NJE ! USE MODD_CONF, ONLY : CPROGRAM USE MODD_PARAMETERS, ONLY : JPHEXT -USE MODD_LUNIT, ONLY : CLUOUT0, COUTFMFILE, CPGDFILE +USE MODD_LUNIT, ONLY : CLUOUT0, COUTFMFILE, CPGDFILE, TLUOUT0 +USE MODD_LUNIT_n, ONLY : TLUOUT ! -USE MODE_FM +USE MODE_FM, ONLY: IO_FILE_OPEN_ll USE MODE_FMREAD USE MODE_IO_ll USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST,IO_FILE_FIND_BYNAME @@ -93,6 +94,7 @@ INTEGER :: IJMAX ! number of points in Y direction ! ! INTEGER :: ILU ! 1D physical dimension of XCOVER +INTEGER :: ILUOUT REAL, DIMENSION(:), ALLOCATABLE :: ZFULL ! total cover INTEGER :: IJPHEXT !------------------------------------------------------------------------------- @@ -105,19 +107,18 @@ INTEGER :: IJPHEXT ! SELECT CASE(CPROGRAM) CASE('MESONH','SPAWN ') - CALL GET_MODEL_NUMBER_ll (IMI) - WRITE(COUT,FMT='(A14,I1,A13)') 'OUTPUT_LISTING',IMI,' ' + TOUT => TLUOUT CASE DEFAULT - COUT = CLUOUT0 + TOUT => TLUOUT0 END SELECT ! -CALL FMLOOK_ll(COUT,COUT,NLUOUT,IRESP) +ILUOUT = TOUT%NLU ! ! !* 2. initialization of surface file ! IF (LEN_TRIM(CACTION)>0) THEN - WRITE(NLUOUT,*) 'file ',HFILE,' cannot be opened because another MESONH file is in use' + WRITE(ILUOUT,*) 'file ',HFILE,' cannot be opened because another MESONH file is in use' END IF ! IF (HFILE/=COUTFMFILE .AND. HFILE/=CPGDFILE) THEN @@ -133,7 +134,6 @@ ELSE CALL IO_FILE_FIND_BYNAME(TRIM(HFILE),TPINFILE,IRESP) END IF ! -CFILE = HFILE COUTFILE = HFILE ! ! @@ -145,9 +145,9 @@ CALL MNH_SURF_GRID_IO_INIT(IIMAX,IJMAX) IJPHEXT= 1 CALL IO_READ_FIELD(TPINFILE,'JPHEXT',IJPHEXT) IF ( IJPHEXT .NE. JPHEXT ) THEN - WRITE(NLUOUT,FMT=*) ' MNHOPEN_AUX_IO : JPHEXT in PRE_PGD1.nam/NAM_CONF_PGD ( or default value )& + WRITE(ILUOUT,FMT=*) ' MNHOPEN_AUX_IO : JPHEXT in PRE_PGD1.nam/NAM_CONF_PGD ( or default value )& & JPHEXT=',JPHEXT - WRITE(NLUOUT,FMT=*) ' different from PGD files=',HFILE ,' value JPHEXT=',IJPHEXT + WRITE(ILUOUT,FMT=*) ' different from PGD files=',HFILE ,' value JPHEXT=',IJPHEXT CALL PRINT_MSG(NVERB_FATAL,'IO','MNHOPEN_AUX_IO_SURF','') END IF ! @@ -171,7 +171,7 @@ CMASK=HMASK CALL GET_1D_MASK(ILU,ILU,ZFULL,NMASK_ALL) DEALLOCATE(ZFULL) !ELSE -! WRITE(NLUOUT,*) 'mask "',HMASK,'" for reading not supported for auxilliary MESONH file' +! WRITE(ILUOUT,*) 'mask "',HMASK,'" for reading not supported for auxilliary MESONH file' !END IF ! ! diff --git a/src/MNH/modd_io_surf_mnh.f90 b/src/MNH/modd_io_surf_mnh.f90 index 830660da86b64ab8581ed974ebc461cffedc2cfc..320697f961cd99637c11124b2f91a4e6f2ddcd1b 100644 --- a/src/MNH/modd_io_surf_mnh.f90 +++ b/src/MNH/modd_io_surf_mnh.f90 @@ -44,52 +44,33 @@ IMPLICIT NONE INTEGER :: NHALO = 0 TYPE IO_SURF_MNH_t -!$20140403 JUAN upgraded this modd to have // and mutlimodels use -!$20140403 cancel the SAVE in structure def as made in already // modd in MNH -!$ -!CHARACTER(LEN=28),SAVE :: CFILE ! Name of the input FM-file -!CHARACTER(LEN=28),SAVE :: COUTFILE ! Name of the output FM-file -!CHARACTER(LEN=28),SAVE :: COUT ! Name of output_listing file -!INTEGER :: NLUOUT ! output listing logical unit -!CHARACTER(LEN=6),SAVE :: CMASK -CHARACTER(LEN=28) :: CFILE ! Name of the input FM-file -TYPE(TFILEDATA),POINTER :: TPINFILE => NULL() ! Input FM-file -CHARACTER(LEN=28) :: COUTFILE ! Name of the output FM-file -CHARACTER(LEN=28) :: COUT ! Name of output_listing file -INTEGER :: NLUOUT ! output listing logical unit -CHARACTER(LEN=6) :: CMASK -INTEGER, DIMENSION(:), POINTER :: NMASK=>NULL() ! 1D mask to read only interesting surface -! ! points on current processor -INTEGER, DIMENSION(:), POINTER :: NMASK_ALL=>NULL() ! 1D mask to read all surface points all processors -! -CHARACTER(LEN=5) :: CACTION = ' '! action being done ('READ ','WRITE') -! -! number of points in each direction on current processor -INTEGER :: NIU,NJU -! indices of physical points in each direction on current processor -INTEGER :: NIB,NJB,NIE,NJE -! number of points in each direction on all processors -INTEGER :: NIU_ALL,NJU_ALL -! indices of physical points in each direction on all processors -INTEGER :: NIB_ALL,NJB_ALL,NIE_ALL,NJE_ALL -! -!!INTEGER :: NHALO = 0 -! number of points added on each side (N,E,S,W) to the fields -! the HALO is added when the field is read (works only for grid coordinates) -! note that at reading, this also modifies the numbers of points (IMAX, JMAX) -! the HALO is removed when the field is written (works for all fields) -! + TYPE(TFILEDATA),POINTER :: TPINFILE => NULL() ! Input FM-file + CHARACTER(LEN=28) :: COUTFILE ! Name of the output FM-file + TYPE(TFILEDATA),POINTER :: TOUT => NULL() ! Output_listing file + CHARACTER(LEN=6) :: CMASK + INTEGER, DIMENSION(:), POINTER :: NMASK=>NULL() ! 1D mask to read only interesting surface + ! ! points on current processor + INTEGER, DIMENSION(:), POINTER :: NMASK_ALL=>NULL() ! 1D mask to read all surface points all processors + ! + CHARACTER(LEN=5) :: CACTION = ' '! action being done ('READ ','WRITE') + ! + ! number of points in each direction on current processor + INTEGER :: NIU,NJU + ! indices of physical points in each direction on current processor + INTEGER :: NIB,NJB,NIE,NJE + ! number of points in each direction on all processors + INTEGER :: NIU_ALL,NJU_ALL + ! indices of physical points in each direction on all processors + INTEGER :: NIB_ALL,NJB_ALL,NIE_ALL,NJE_ALL END type IO_SURF_MNH_t ! TYPE(IO_SURF_MNH_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: IO_SURF_MNH_MODEL ! !!!!!!!!!!!!!!!!!!!! LOCAL VARIABLE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! -CHARACTER(LEN=28) ,POINTER :: CFILE =>NULL() ! Name of the input FM-file TYPE(TFILEDATA) ,POINTER :: TPINFILE => NULL() ! Input FM-file CHARACTER(LEN=28) ,POINTER :: COUTFILE =>NULL() ! Name of the output FM-file -CHARACTER(LEN=28) ,POINTER :: COUT =>NULL() ! Name of output_listing file -INTEGER ,POINTER :: NLUOUT =>NULL() ! output listing logical unit +TYPE(TFILEDATA) ,POINTER :: TOUT => NULL() ! Output_listing file CHARACTER(LEN=6) ,POINTER :: CMASK =>NULL() INTEGER, DIMENSION(:), POINTER :: NMASK=>NULL() ! 1D mask to read only interesting surface ! ! points on current processor @@ -106,11 +87,6 @@ INTEGER , POINTER :: NIU_ALL=>NULL(),NJU_ALL=>NULL() ! indices of physical points in each direction on all processors INTEGER , POINTER :: NIB_ALL=>NULL(),NJB_ALL=>NULL(),NIE_ALL=>NULL(),NJE_ALL=>NULL() ! -!$20140403 you hardly want to set the NHALO inside the structure since it -!$connects with NAMELIST PGDFILE makign things difficult -!$NHALO IS =1 whatever the model is !! -!!INTEGER , POINTER :: NHALO=>NULL() - CONTAINS SUBROUTINE IO_SURF_MNH_GOTO_MODEL(KFROM, KTO) @@ -120,11 +96,9 @@ IO_SURF_MNH_MODEL(KFROM)%NMASK=>NMASK IO_SURF_MNH_MODEL(KFROM)%NMASK_ALL=>NMASK_ALL ! current model is set for model KTO -CFILE=>IO_SURF_MNH_MODEL(KTO)%CFILE TPINFILE=>IO_SURF_MNH_MODEL(KTO)%TPINFILE COUTFILE=>IO_SURF_MNH_MODEL(KTO)%COUTFILE -COUT=>IO_SURF_MNH_MODEL(KTO)%COUT -NLUOUT=>IO_SURF_MNH_MODEL(KTO)%NLUOUT +TOUT=>IO_SURF_MNH_MODEL(KTO)%TOUT CMASK=>IO_SURF_MNH_MODEL(KTO)%CMASK NMASK=>IO_SURF_MNH_MODEL(KTO)%NMASK NMASK_ALL=>IO_SURF_MNH_MODEL(KTO)%NMASK_ALL @@ -141,7 +115,6 @@ NIB_ALL=>IO_SURF_MNH_MODEL(KTO)%NIB_ALL NJB_ALL=>IO_SURF_MNH_MODEL(KTO)%NJB_ALL NIE_ALL=>IO_SURF_MNH_MODEL(KTO)%NIE_ALL NJE_ALL=>IO_SURF_MNH_MODEL(KTO)%NJE_ALL -!!NHALO=>IO_SURF_MNH_MODEL(KTO)%NHALO END SUBROUTINE IO_SURF_MNH_GOTO_MODEL END MODULE MODD_IO_SURF_MNH diff --git a/src/MNH/read_surf_mnh.f90 b/src/MNH/read_surf_mnh.f90 index 186aa2e97b714ca769374f1479fdbea920eee97f..cd25880819d09943df57dd9dc4499e401f8d6ac0 100644 --- a/src/MNH/read_surf_mnh.f90 +++ b/src/MNH/read_surf_mnh.f90 @@ -54,7 +54,7 @@ USE MODE_FMREAD USE MODE_GRIDPROJ USE MODE_MSG ! -USE MODD_IO_SURF_MNH, ONLY : COUT, TPINFILE, NLUOUT +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE ! USE MODI_GET_SURF_UNDEF ! @@ -71,7 +71,7 @@ CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment ! INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string - +INTEGER :: ILUOUT INTEGER :: IMASDEV INTEGER :: IID,IRESP INTEGER :: IIMAX,IJMAX @@ -84,6 +84,8 @@ TYPE(TFIELDDATA) :: TZFIELD ! CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFX0_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! +ILUOUT = TOUT%NLU +! IF (HREC=='LONORI' .OR. HREC=='LATORI') THEN CALL IO_READ_FIELD(TPINFILE,'MASDEV',IMASDEV) IF (IMASDEV<=45) THEN @@ -151,11 +153,11 @@ ELSE END IF IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP - WRITE(NLUOUT,*) 'default value may be used, who knows???' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP + WRITE(ILUOUT,*) 'default value may be used, who knows???' + WRITE(ILUOUT,*) ' ' ENDIF !------------------------------------------------------------------------------- END SUBROUTINE READ_SURFX0_MNH @@ -210,7 +212,7 @@ USE MODE_MSG ! USE MODD_CST, ONLY : XPI ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE, TPINFILE, NLUOUT, NMASK, & +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & NIU, NJU, NIB, NJB, NIE, NJE, & NIU_ALL, NJU_ALL, NIB_ALL, & NJB_ALL, NIE_ALL, NJE_ALL, & @@ -240,6 +242,7 @@ CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field : ! INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string +INTEGER :: ILUOUT INTEGER :: JI, JJ ! loop counters REAL, DIMENSION(:,:), ALLOCATABLE :: ZWORK ! work array read in the file @@ -259,6 +262,7 @@ TYPE(TFIELDDATA) :: TZFIELD CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFX1_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! KRESP = 0 +ILUOUT = TOUT%NLU ! IF (HDIR=='A') THEN IIU = NIU_ALL @@ -454,11 +458,11 @@ ELSE END IF ! IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP - WRITE(NLUOUT,*) 'default value may be used, who knows???' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP + WRITE(ILUOUT,*) 'default value may be used, who knows???' + WRITE(ILUOUT,*) ' ' ELSE IF (HDIR=='H' .OR. HDIR=='A') THEN CALL PACK_2D_1D(IMASK,ZWORK(IIB:IIE,IJB:IJE),PFIELD) CALL GET_SURF_UNDEF(ZUNDEF) @@ -524,15 +528,15 @@ END SUBROUTINE READ_SURFX1_MNH ! ------------ ! USE MODE_ll -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_FIELD, ONLY : TFIELDDATA,TYPEREAL USE MODE_FM USE MODE_FMREAD USE MODE_IO_ll USE MODE_MSG ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE , NLUOUT, TPINFILE, NMASK, NIU, NJU, NIB, NJB, NIE, NJE, & +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, NIU, NJU, NIB, NJB, NIE, NJE, & NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, NIE_ALL, NJE_ALL, NMASK_ALL -USE MODD_PARAMETERS, ONLY: XUNDEF +USE MODD_PARAMETERS, ONLY : XUNDEF ! USE MODI_PACK_2D_1D ! @@ -557,7 +561,7 @@ CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field : ! INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string - +INTEGER :: ILUOUT INTEGER :: JP ! loop index REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWORK ! work array read in the file @@ -567,6 +571,8 @@ TYPE(TFIELDDATA) :: TZFIELD ! CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFX2_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! +ILUOUT = TOUT%NLU +! !! Reading of a 3D field, masked (2 first dimensions) and with !! 2 first dimensions packed into only 1 (results in a 2D array instead of 3D) ! @@ -599,11 +605,11 @@ ELSE END IF ! IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP - WRITE(NLUOUT,*) 'default value may be used, who knows???' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP + WRITE(ILUOUT,*) 'default value may be used, who knows???' + WRITE(ILUOUT,*) ' ' DEALLOCATE(ZWORK) ELSE IF (HDIR=='H') THEN DO JP=1,SIZE(PFIELD,2) @@ -666,20 +672,20 @@ END SUBROUTINE READ_SURFX2_MNH ! ------------ ! USE MODE_ll -USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL USE MODE_FM USE MODE_FMREAD USE MODE_IO_ll USE MODE_MSG ! USE MODD_DATA_COVER_PAR, ONLY : JPCOVER -USE MODD_CST, ONLY : XPI +USE MODD_CST, ONLY : XPI ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE, TPINFILE, NLUOUT, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, & - NJB_ALL, NIE_ALL, NJE_ALL, & - NMASK_ALL +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, & + NJB_ALL, NIE_ALL, NJE_ALL, & + NMASK_ALL ! USE MODI_PACK_2D_1D ! @@ -703,7 +709,8 @@ CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field : ! INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string - +INTEGER :: ILUOUT +! CHARACTER(LEN=LEN_HREC) :: YREC CHARACTER(LEN=2) :: YDIR CHARACTER(LEN=2) :: YSTORAGE_TYPE @@ -724,6 +731,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFX2COV_MNH',TRIM(TPINFILE%CNAME)//': re ! KRESP = 0 IRESP = 0 +ILUOUT = TOUT%NLU ! IF (HDIR=='A') THEN YDIR="--" @@ -805,10 +813,10 @@ ELSE END IF ! IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP + WRITE(ILUOUT,*) ' ' ELSE IF (HDIR=='H' .OR. HDIR=='A') THEN ICOVER=0 DO JL2=1,NCOVER @@ -864,7 +872,7 @@ END SUBROUTINE READ_SURFX2COV_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL +USE MODE_FIELD, ONLY : TFIELDDATA,TYPELOG,TYPEREAL USE MODE_FM USE MODE_FMREAD USE MODE_ll @@ -873,7 +881,7 @@ USE MODE_MSG ! USE MODD_CST, ONLY : XPI ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE, TPINFILE, NLUOUT, NMASK, & +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & NIU, NJU, NIB, NJB, NIE, NJE, & NIU_ALL, NJU_ALL, NIB_ALL, & NJB_ALL, NIE_ALL, NJE_ALL, & @@ -901,7 +909,8 @@ CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field : ! INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string - +INTEGER :: ILUOUT +! CHARACTER(LEN=LEN_HREC) :: YREC CHARACTER(LEN=2) :: YDIR CHARACTER(LEN=2) :: YSTORAGE_TYPE @@ -921,6 +930,7 @@ TYPE(TFIELDDATA) :: TZFIELD CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFX2COV_1COV_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! KRESP = 0 +ILUOUT = TOUT%NLU !YDIR1 = 'H' !IF (PRESENT(HDIR)) YDIR1 = HDIR YDIR1 = HDIR @@ -984,18 +994,18 @@ IF (.NOT. GCOVER_PACKED) THEN TZFIELD%NDIMS = 2 CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK2D,KRESP) ELSE - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error : GCOVER_PACKED = ', GCOVER_PACKED, ' and we try to read the covers one by one ' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error : GCOVER_PACKED = ', GCOVER_PACKED, ' and we try to read the covers one by one ' + WRITE(ILUOUT,*) ' ' CALL ABORT END IF ! IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP + WRITE(ILUOUT,*) ' ' ELSE IF (YDIR1=='H' .OR. YDIR1=='A') THEN CALL PACK_2D_1D(IMASK,ZWORK2D(IIB:IIE,IJB:IJE),PFIELD(:)) END IF @@ -1049,14 +1059,14 @@ END SUBROUTINE READ_SURFX2COV_1COV_MNH ! ------------ ! USE MODE_ll -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT USE MODE_FM USE MODE_FMREAD USE MODE_MSG ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE, TPINFILE, NLUOUT, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE -USE MODD_CONF, ONLY : CPROGRAM +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_CONF, ONLY : CPROGRAM ! ! ! @@ -1072,6 +1082,7 @@ CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment !* 0.2 Declarations of local variables ! INTEGER :: IIMAX, IJMAX +INTEGER :: ILUOUT TYPE(TFIELDDATA) :: TZFIELD ! !------------------------------------------------------------------------------- @@ -1079,6 +1090,7 @@ TYPE(TFIELDDATA) :: TZFIELD CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFN0_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! KRESP=0 +ILUOUT = TOUT%NLU ! IF (HREC=='DIM_FULL' .AND. ( CPROGRAM=='IDEAL ' .OR. & CPROGRAM=='SPAWN ' .OR. CPROGRAM=='ZOOMPG' ))THEN @@ -1098,11 +1110,11 @@ ELSE CALL IO_READ_FIELD(TPINFILE,TZFIELD,KFIELD,KRESP) IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP - WRITE(NLUOUT,*) 'default value may be used, who knows???' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP + WRITE(ILUOUT,*) 'default value may be used, who knows???' + WRITE(ILUOUT,*) ' ' ENDIF ENDIF @@ -1150,13 +1162,13 @@ END SUBROUTINE READ_SURFN0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT USE MODE_FM USE MODE_FMREAD USE MODE_MSG ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE, TPINFILE, NLUOUT, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE ! USE MODI_PACK_2D_1D ! @@ -1178,6 +1190,7 @@ CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field : ! INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string +INTEGER :: ILUOUT ! INTEGER, DIMENSION(:,:), ALLOCATABLE :: IWORK ! work array read in the file TYPE(TFIELDDATA) :: TZFIELD @@ -1185,6 +1198,8 @@ TYPE(TFIELDDATA) :: TZFIELD ! CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFN1_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! +ILUOUT = TOUT%NLU +! IF (HDIR=='-') THEN ! TZFIELD%CMNHNAME = TRIM(HREC) @@ -1213,11 +1228,11 @@ ELSE IF (HDIR=='H') THEN CALL IO_READ_FIELD(TPINFILE,TZFIELD,IWORK,KRESP) ! IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP - WRITE(NLUOUT,*) 'default value may be used, who knows???' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP + WRITE(ILUOUT,*) 'default value may be used, who knows???' + WRITE(ILUOUT,*) ' ' ELSE CALL PACK_2D_1D(NMASK,IWORK(NIB:NIE,NJB:NJE),KFIELD) END IF @@ -1270,15 +1285,15 @@ END SUBROUTINE READ_SURFN1_MNH ! ------------ ! USE MODE_ll -USE MODE_FIELD, ONLY: TFIELDDATA,TYPECHAR +USE MODE_FIELD, ONLY : TFIELDDATA,TYPECHAR USE MODE_FM USE MODE_FMREAD USE MODE_MSG USE MODE_POS ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE, TPINFILE, NLUOUT -USE MODD_CONF, ONLY : LCARTESIAN, CPROGRAM -USE MODD_LUNIT, ONLY : CPGDFILE +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE +USE MODD_CONF, ONLY : LCARTESIAN, CPROGRAM +USE MODD_LUNIT, ONLY : CPGDFILE ! ! IMPLICIT NONE @@ -1295,6 +1310,7 @@ CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment INTEGER :: IRESP ! return code INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string +INTEGER :: ILUOUT ! INTEGER :: IMASDEV ! mesonh version of the input file INTEGER :: ILUDES ! .des file logical unit @@ -1304,12 +1320,14 @@ LOGICAL :: GFOUND CHARACTER(LEN=4) :: CTURB,CRAD,CGROUND,CCLOUD,CDCONV,CELEC CHARACTER(LEN=6) :: CSEA_FLUX TYPE(TFIELDDATA) :: TZFIELD +! NAMELIST/NAM_PARAMn/CTURB,CRAD,CGROUND,CCLOUD,CDCONV,CSEA_FLUX, CELEC !---------------------------------------------------------------------------- ! CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFC0_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! KRESP = 0 +ILUOUT = TOUT%NLU ! On lit la version de Mesonh usilisée pour fabriquer le fichier ! CALL IO_READ_FIELD(TPINFILE,'MASDEV',IMASDEV) @@ -1323,8 +1341,8 @@ ELSE IF (HREC=='SNOW_ROOF_TYPE'.AND.IMASDEV<46) THEN ELSE IF (HREC=='PHOTO'.AND.IMASDEV<46) THEN HFIELD='NON' ELSE IF ( HREC=='GRID_TYPE'.AND. (IMASDEV<46 .OR. & - (CPROGRAM=='IDEAL ' .AND. CPGDFILE/=COUT) .OR. & - (CPROGRAM=='SPAWN ' .AND. CPGDFILE/=COUT) .OR. & + (CPROGRAM=='IDEAL ' .AND. CPGDFILE/=TOUT%CNAME) .OR. & + (CPROGRAM=='SPAWN ' .AND. CPGDFILE/=TOUT%CNAME) .OR. & CPROGRAM=='ZOOMPG' )) THEN IF (LCARTESIAN) THEN HFIELD="CARTESIAN " @@ -1339,9 +1357,9 @@ ELSE IF ( (HREC=='NATURE'.OR.HREC=='SEA '.OR.HREC=='WATER ' & CGROUND='ISBA' ELSE CGROUND='NONE' - YDESFM=ADJUSTL(ADJUSTR(CFILE)//'.des') - CALL FMLOOK_ll(YDESFM,COUT,ILUDES,IRESP) - CALL POSNAM(ILUDES,'NAM_PARAMN',GFOUND,NLUOUT) + YDESFM=ADJUSTL(ADJUSTR(TPINFILE%CNAME)//'.des') + CALL FMLOOK_ll(YDESFM,TOUT%CNAME,ILUDES,IRESP) + CALL POSNAM(ILUDES,'NAM_PARAMN',GFOUND,ILUOUT) IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_PARAMn) END IF IF (CGROUND=='NONE') THEN @@ -1354,9 +1372,9 @@ ELSE IF ( (HREC=='NATURE'.OR.HREC=='SEA '.OR.HREC=='WATER ' & IF(HREC=='NATURE') HFIELD ='ISBA ' IF(HREC=='TOWN ') HFIELD ='TEB ' ELSE - WRITE(NLUOUT,*) ' ' - WRITE(NLUOUT,*) 'error when reading article', HREC,'KRESP=',KRESP - WRITE(NLUOUT,*) 'avec CGROUND = "',CGROUND,'"' + WRITE(ILUOUT,*) ' ' + WRITE(ILUOUT,*) 'error when reading article', HREC,'KRESP=',KRESP + WRITE(ILUOUT,*) 'avec CGROUND = "',CGROUND,'"' !callabortstop CALL ABORT STOP @@ -1375,11 +1393,11 @@ ELSE CALL IO_READ_FIELD(TPINFILE,TZFIELD,HFIELD,KRESP) ! IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP - WRITE(NLUOUT,*) 'default value may be used, who knows???' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP + WRITE(ILUOUT,*) 'default value may be used, who knows???' + WRITE(ILUOUT,*) ' ' !callabortstop CALL ABORT STOP @@ -1431,10 +1449,10 @@ END SUBROUTINE READ_SURFC0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE , TPINFILE, NLUOUT, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT,TYPELOG +USE MODE_FIELD, ONLY : TFIELDDATA,TYPEINT,TYPELOG USE MODE_FM USE MODE_FMREAD USE MODE_MSG @@ -1461,13 +1479,15 @@ CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field : ! INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string - +INTEGER :: ILUOUT LOGICAL, DIMENSION(:,:), ALLOCATABLE :: GWORK ! work array read in the file INTEGER, DIMENSION(:,:), ALLOCATABLE :: IWORK ! work array read in the file TYPE(TFIELDDATA) :: TZFIELD !------------------------------------------------------------------------------- CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFL1_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! +ILUOUT = TOUT%NLU +! IF (HDIR=='-') THEN TZFIELD%CMNHNAME = TRIM(HREC) TZFIELD%CSTDNAME = '' @@ -1481,11 +1501,11 @@ IF (HDIR=='-') THEN CALL IO_READ_FIELD(TPINFILE,TZFIELD,OFIELD,KRESP) IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP - WRITE(NLUOUT,*) 'default value may be used, who knows???' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP + WRITE(ILUOUT,*) 'default value may be used, who knows???' + WRITE(ILUOUT,*) ' ' ENDIF ELSE IF (HDIR=='H') THEN ALLOCATE(GWORK(NIU,NJU)) @@ -1506,11 +1526,11 @@ ELSE IF (HDIR=='H') THEN DEALLOCATE(IWORK) ! IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP - WRITE(NLUOUT,*) 'default value may be used, who knows???' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP + WRITE(ILUOUT,*) 'default value may be used, who knows???' + WRITE(ILUOUT,*) ' ' ELSE CALL PACK_2D_1D(NMASK,GWORK(NIB:NIE,NJB:NJE),OFIELD) END IF @@ -1560,12 +1580,12 @@ END SUBROUTINE READ_SURFL1_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG +USE MODE_FIELD, ONLY : TFIELDDATA,TYPELOG USE MODE_FM USE MODE_FMREAD USE MODE_MSG ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE, TPINFILE, NLUOUT +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE ! ! IMPLICIT NONE @@ -1580,10 +1600,13 @@ CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment !* 0.2 Declarations of local variables ! INTEGER :: IMASDEV ! MESONH version +INTEGER :: ILUOUT TYPE(TFIELDDATA) :: TZFIELD !------------------------------------------------------------------------------- CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFL0_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! +ILUOUT = TOUT%NLU +! IF (HREC(1:4)=='BUDC') THEN CALL IO_READ_FIELD(TPINFILE,'MASDEV',IMASDEV) IF (IMASDEV<=45) THEN @@ -1615,11 +1638,11 @@ CALL IO_READ_FIELD(TPINFILE,TZFIELD,OFIELD,KRESP) HCOMMENT = TZFIELD%CCOMMENT ! IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP - WRITE(NLUOUT,*) 'default value may be used, who knows???' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ', HREC,'KRESP=',KRESP + WRITE(ILUOUT,*) 'default value may be used, who knows???' + WRITE(ILUOUT,*) ' ' ENDIF !------------------------------------------------------------------------------- END SUBROUTINE READ_SURFL0_MNH @@ -1670,7 +1693,7 @@ USE MODE_FM USE MODE_FMREAD USE MODE_MSG ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE, TPINFILE, NLUOUT +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE USE MODD_TYPE_DATE ! ! @@ -1690,6 +1713,7 @@ CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment ! INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string +INTEGER :: ILUOUT ! CHARACTER(LEN=LEN_HREC) :: YRECFM ! Name of the article to be written CHARACTER(LEN=40) :: YFILETYPE40! MESONH file type @@ -1702,6 +1726,8 @@ TYPE(DATE_TIME) :: TZDATETIME ! CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFT0_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! +ILUOUT = TOUT%NLU +! CALL IO_READ_FIELD(TPINFILE,'MASDEV',IMASDEV) IF (IMASDEV<46) THEN CALL IO_READ_FIELD(TPINFILE,'STORAGE_TYPE',YFILETYPE2) @@ -1719,11 +1745,11 @@ ELSE YFILETYPE2 = YFILETYPE40(1:2) END IF IF (YFILETYPE2(1:2)=='PG') THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'Date is not read in a PGD file' - WRITE(NLUOUT,*) 'Atmospheric model value is kept' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'Date is not read in a PGD file' + WRITE(ILUOUT,*) 'Atmospheric model value is kept' + WRITE(ILUOUT,*) ' ' KRESP = -2 RETURN END IF @@ -1731,11 +1757,11 @@ END IF CALL IO_READ_FIELD(TPINFILE,HREC,TZDATETIME,KRESP) ! IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ',YRECFM,'KRESP=',KRESP - WRITE(NLUOUT,*) 'default value may be used, who knows???' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ',YRECFM,'KRESP=',KRESP + WRITE(ILUOUT,*) 'default value may be used, who knows???' + WRITE(ILUOUT,*) ' ' ENDIF ! KYEAR = TZDATETIME%TDATE%YEAR @@ -1792,7 +1818,7 @@ USE MODE_FM USE MODE_FMREAD USE MODE_MSG ! -USE MODD_IO_SURF_MNH, ONLY : COUT, CFILE, TPINFILE, NLUOUT +USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE ! ! IMPLICIT NONE @@ -1813,6 +1839,7 @@ CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment ! INTEGER :: IGRID ! IGRID : grid indicator INTEGER :: ILENCH ! ILENCH : length of comment string +INTEGER :: ILUOUT ! CHARACTER(LEN=LEN_HREC) :: YRECFM ! Name of the article to be written CHARACTER(LEN=40) :: YFILETYPE40! MESONH file type @@ -1824,6 +1851,8 @@ TYPE(TFIELDDATA) :: TZFIELD ! CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFT1_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! +ILUOUT = TOUT%NLU +! CALL IO_READ_FIELD(TPINFILE,'MASDEV',IMASDEV) IF (IMASDEV<46) THEN CALL IO_READ_FIELD(TPINFILE,'STORAGE_TYPE',YFILETYPE2) @@ -1841,11 +1870,11 @@ ELSE YFILETYPE2 = YFILETYPE40(1:2) END IF !IF (YFILETYPE2(1:2)=='PG') THEN -! WRITE(NLUOUT,*) 'WARNING' -! WRITE(NLUOUT,*) '-------' -! WRITE(NLUOUT,*) 'Date is not read in a PGD file' -! WRITE(NLUOUT,*) 'Atmospheric model value is kept' -! WRITE(NLUOUT,*) ' ' +! WRITE(ILUOUT,*) 'WARNING' +! WRITE(ILUOUT,*) '-------' +! WRITE(ILUOUT,*) 'Date is not read in a PGD file' +! WRITE(ILUOUT,*) 'Atmospheric model value is kept' +! WRITE(ILUOUT,*) ' ' ! KRESP = -2 ! RETURN !END IF @@ -1867,11 +1896,11 @@ KMONTH(:) = ITDATE(2,:) KDAY(:) = ITDATE(3,:) ! IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ',YRECFM,'KRESP=',KRESP - WRITE(NLUOUT,*) 'default value may be used, who knows???' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ',YRECFM,'KRESP=',KRESP + WRITE(ILUOUT,*) 'default value may be used, who knows???' + WRITE(ILUOUT,*) ' ' ENDIF ! TZFIELD%CMNHNAME = TRIM(HREC)//'%TIME' @@ -1887,11 +1916,11 @@ TZFIELD%NDIMS = 1 CALL IO_READ_FIELD(TPINFILE,TZFIELD,PTIME(:),KRESP) ! IF (KRESP /=0) THEN - WRITE(NLUOUT,*) 'WARNING' - WRITE(NLUOUT,*) '-------' - WRITE(NLUOUT,*) 'error when reading article ',YRECFM,'KRESP=',KRESP - WRITE(NLUOUT,*) 'default value may be used, who knows???' - WRITE(NLUOUT,*) ' ' + WRITE(ILUOUT,*) 'WARNING' + WRITE(ILUOUT,*) '-------' + WRITE(ILUOUT,*) 'error when reading article ',YRECFM,'KRESP=',KRESP + WRITE(ILUOUT,*) 'default value may be used, who knows???' + WRITE(ILUOUT,*) ' ' ENDIF !------------------------------------------------------------------------------- END SUBROUTINE READ_SURFT1_MNH