From 337ae322de61f5a360306633d3b03b0849423ee6 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 28 Jun 2021 10:10:37 +0200 Subject: [PATCH] Philippe 28/06/2021: use newunit for file openings --- src/MNH/eol_kine_alm.f90 | 19 ++--- src/MNH/eol_printer.f90 | 4 +- src/MNH/eol_reader.f90 | 139 +++++++++++++++++-------------------- src/MNH/ibm_prep_ls.f90 | 6 +- src/MNH/ini_eol_adnr.f90 | 4 +- src/MNH/ini_eol_alm.f90 | 8 +-- src/MNH/ini_stationn.f90 | 3 +- src/MNH/station_reader.f90 | 37 +++++----- 8 files changed, 100 insertions(+), 120 deletions(-) diff --git a/src/MNH/eol_kine_alm.f90 b/src/MNH/eol_kine_alm.f90 index e40757785..e3232fac5 100644 --- a/src/MNH/eol_kine_alm.f90 +++ b/src/MNH/eol_kine_alm.f90 @@ -92,6 +92,7 @@ REAL :: ZTIME ! TIME INTEGER :: JROT, JBLA, JTELT, JNELT, JBELT ! Loop control INTEGER :: INB_WT, INB_B, INB_BELT ! Total numbers INTEGER :: INB_TELT, INB_NELT ! Total numbers +INTEGER :: ITECOUT ! Unit number for Tecplot file ! ! !--------------------------------------------------------------- @@ -111,7 +112,7 @@ ZTIME = TDTCUR%xtime+(KTSUBCOUNT)*PTSUBSTEP ! !* 1.3 Tecplotfile : opening + headers IF (LTECOUTPTS) THEN - CALL OPEN_TECOUT(45, KTCOUNT, KTSUBCOUNT) + CALL OPEN_TECOUT(ITECOUT, KTCOUNT, KTSUBCOUNT) END IF ! ! @@ -153,7 +154,7 @@ DO JROT=1, INB_WT !* T.4 Print in tecplot file IF (LTECOUTPTS) THEN DO JTELT=1, INB_TELT - CALL PRINT_TECOUT(45, XPOS_TELT_RG(JROT,JTELT,:)) + CALL PRINT_TECOUT(ITECOUT, XPOS_TELT_RG(JROT,JTELT,:)) END DO END IF ! @@ -193,7 +194,7 @@ DO JROT=1, INB_WT !* N.4 Print in tecplot file IF (LTECOUTPTS) THEN DO JNELT=1, INB_NELT - CALL PRINT_TECOUT(45, XPOS_NELT_RG(JROT,JNELT,:)) + CALL PRINT_TECOUT(ITECOUT, XPOS_NELT_RG(JROT,JNELT,:)) END DO END IF ! @@ -223,7 +224,7 @@ DO JROT=1, INB_WT ! !* H.4 Print in tecplot file IF (LTECOUTPTS) THEN - CALL PRINT_TECOUT(45, XPOS_HUB_RG(JROT,:)) + CALL PRINT_TECOUT(ITECOUT, XPOS_HUB_RG(JROT,:)) END IF ! ! @@ -253,7 +254,7 @@ DO JROT=1, INB_WT ! !* B.4 Print in tecplot file IF (LTECOUTPTS) THEN - CALL PRINT_TECOUT(45, XPOS_BLA_RG(JROT,JBLA,:)) + CALL PRINT_TECOUT(ITECOUT, XPOS_BLA_RG(JROT,JBLA,:)) END IF ! ! @@ -295,7 +296,7 @@ DO JROT=1, INB_WT ! !* E.4 Print in tecplot file IF (LTECOUTPTS) THEN - CALL PRINT_TECOUT(45, XPOS_ELT_RG(JROT,JBLA,JBELT,:)) + CALL PRINT_TECOUT(ITECOUT, XPOS_ELT_RG(JROT,JBLA,JBELT,:)) END IF ! ! ---- Leading Edge and Trailing Edge ---- @@ -318,8 +319,8 @@ DO JROT=1, INB_WT ZPOS_ELTTE_RE(:)) !* LE.2 Print in tecplot file - CALL PRINT_TECOUT(45, ZPOS_ELTLE_RG(:)) - CALL PRINT_TECOUT(45, ZPOS_ELTTE_RG(:)) + CALL PRINT_TECOUT(ITECOUT, ZPOS_ELTLE_RG(:)) + CALL PRINT_TECOUT(ITECOUT, ZPOS_ELTTE_RG(:)) END IF ! ! @@ -329,7 +330,7 @@ END DO ! Rotor loop ! ! Closing tec file IF (LTECOUTPTS) THEN - CLOSE(45) + CLOSE(ITECOUT) END IF ! END SUBROUTINE EOL_KINE_ALM diff --git a/src/MNH/eol_printer.f90 b/src/MNH/eol_printer.f90 index 16de8363c..b4fe72816 100644 --- a/src/MNH/eol_printer.f90 +++ b/src/MNH/eol_printer.f90 @@ -283,7 +283,7 @@ USE MODD_EOL_ALM, ONLY:TFARM,TTURBINE,TBLADE ! IMPLICIT NONE ! -INTEGER, INTENT(IN) :: KFILE ! File index +INTEGER, INTENT(OUT) :: KFILE ! File index INTEGER, INTENT(IN) :: KTCOUNT ! Time step index INTEGER, INTENT(IN) :: KTSUBCOUNT ! Subtime step index ! @@ -304,7 +304,7 @@ ITOTELT = INB_WT*(INB_TELT+INB_NELT+INB_B*(1+INB_BELT*3)) ! ! File name and opening WRITE(HFILE, "(A18,I4.4,I2.2,A3)") "Tecplot2.0_Output_", KTCOUNT, KTSUBCOUNT,".tp" -OPEN( KFILE, file=HFILE, form="FORMATTED") +OPEN( NEWUNIT=KFILE, file=HFILE, form="FORMATTED") ! ! Tecplot Header WRITE(KFILE,*) 'TITLE="Wind Turbines Points"' diff --git a/src/MNH/eol_reader.f90 b/src/MNH/eol_reader.f90 index 78018d64f..829a1db63 100644 --- a/src/MNH/eol_reader.f90 +++ b/src/MNH/eol_reader.f90 @@ -11,47 +11,41 @@ INTERFACE ! ! ADNR ! -SUBROUTINE READ_CSVDATA_FARM_ADNR(KLUNAM,HFILE,TPFARM) +SUBROUTINE READ_CSVDATA_FARM_ADNR(HFILE,TPFARM) USE MODD_EOL_ADNR, ONLY: FARM - INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(FARM), INTENT(OUT) :: TPFARM ! stored farm data END SUBROUTINE READ_CSVDATA_FARM_ADNR ! -SUBROUTINE READ_CSVDATA_TURBINE_ADNR(KLUNAM,HFILE,TPTURBINE) +SUBROUTINE READ_CSVDATA_TURBINE_ADNR(HFILE,TPTURBINE) USE MODD_EOL_ADNR, ONLY : TURBINE - INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(TURBINE), INTENT(OUT) :: TPTURBINE ! stored turbine data END SUBROUTINE READ_CSVDATA_TURBINE_ADNR ! ! ALM ! -SUBROUTINE READ_CSVDATA_FARM_ALM(KLUNAM,HFILE,TPFARM) +SUBROUTINE READ_CSVDATA_FARM_ALM(HFILE,TPFARM) USE MODD_EOL_ALM, ONLY: FARM - INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(FARM), INTENT(OUT) :: TPFARM ! stored farm data END SUBROUTINE READ_CSVDATA_FARM_ALM ! -SUBROUTINE READ_CSVDATA_TURBINE_ALM(KLUNAM,HFILE,TPTURBINE) +SUBROUTINE READ_CSVDATA_TURBINE_ALM(HFILE,TPTURBINE) USE MODD_EOL_ALM, ONLY : TURBINE - INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(TURBINE), INTENT(OUT) :: TPTURBINE ! stored turbine data END SUBROUTINE READ_CSVDATA_TURBINE_ALM -SUBROUTINE READ_CSVDATA_BLADE_ALM(KLUNAM,HFILE,TPTURBINE,TPBLADE) +SUBROUTINE READ_CSVDATA_BLADE_ALM(HFILE,TPTURBINE,TPBLADE) USE MODD_EOL_ALM, ONLY : TURBINE, BLADE - INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(TURBINE), INTENT(IN) :: TPTURBINE ! stored turbine data TYPE(BLADE), INTENT(OUT) :: TPBLADE ! stored blade data END SUBROUTINE READ_CSVDATA_BLADE_ALM ! -SUBROUTINE READ_CSVDATA_AIRFOIL_ALM(KLUNAM,HFILE,TPBLADE,TPAIRFOIL) +SUBROUTINE READ_CSVDATA_AIRFOIL_ALM(HFILE,TPBLADE,TPAIRFOIL) USE MODD_EOL_ALM, ONLY : BLADE, AIRFOIL - INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(BLADE), INTENT(IN) :: TPBLADE ! stored blade data (to select airfoils) TYPE(AIRFOIL), DIMENSION(:), ALLOCATABLE, INTENT(OUT) :: TPAIRFOIL ! stored airfoil data @@ -97,19 +91,19 @@ END MODULE MODI_EOL_READER !!--------------------------------------------------------------- ! !######################################################### -SUBROUTINE READ_CSVDATA_FARM_ADNR(KLUNAM,HFILE,TPFARM) +SUBROUTINE READ_CSVDATA_FARM_ADNR(HFILE,TPFARM) ! USE MODD_EOL_ADNR, ONLY: FARM USE MODI_EOL_ERROR, ONLY: EOL_CSVNOTFOUND_ERROR, EOL_CSVEMPTY_ERROR ! IMPLICIT NONE ! -INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file -CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read +CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(FARM), INTENT(OUT) :: TPFARM ! dummy stored data blade ! LOGICAL :: GEXIST ! Existence of file ! +INTEGER :: ILU ! logical unit of the file INTEGER :: INBLINE ! Nb of line in csv file ! CHARACTER(LEN=400) :: YSTRING @@ -126,12 +120,12 @@ IF (.NOT.GEXIST) THEN END IF ! ! Opening the file -OPEN(UNIT=KLUNAM,FILE=HFILE, FORM='formatted', STATUS='OLD') +OPEN(NEWUNIT=ILU,FILE=HFILE, FORM='formatted', STATUS='OLD') ! Counting number of line -REWIND(KLUNAM) +REWIND(ILU) INBLINE=0 DO - READ(KLUNAM,END=101,FMT='(A400)') YSTRING + READ(ILU,END=101,FMT='(A400)') YSTRING IF (LEN_TRIM(YSTRING) > 0) THEN INBLINE = INBLINE + 1 END IF @@ -140,7 +134,6 @@ END DO 101 CONTINUE IF (INBLINE < 2) THEN CALL EOL_CSVEMPTY_ERROR(HFILE,INBLINE) - STOP ELSE ! Saving number of wind turbine TPFARM%NNB_TURBINES = INBLINE - 1 @@ -150,18 +143,18 @@ ELSE ALLOCATE(TPFARM%XCT_INF(TPFARM%NNB_TURBINES)) ! ! New read - REWIND(KLUNAM) - READ(KLUNAM,FMT='(A400)') YSTRING ! Header reading + REWIND(ILU) + READ(ILU,FMT='(A400)') YSTRING ! Header reading ! ! Saving data DO INBLINE=1, TPFARM%NNB_TURBINES - READ(KLUNAM,FMT='(A400)') YSTRING + READ(ILU,FMT='(A400)') YSTRING READ(YSTRING,*) ZPOS_X, ZPOS_Y, ZCT_INF TPFARM%XPOS_X(INBLINE) = ZPOS_X TPFARM%XPOS_Y(INBLINE) = ZPOS_Y TPFARM%XCT_INF(INBLINE) = ZCT_INF END DO - CLOSE(KLUNAM) + CLOSE(ILU) RETURN END IF ! @@ -169,19 +162,19 @@ END SUBROUTINE READ_CSVDATA_FARM_ADNR !######################################################### ! !######################################################### -SUBROUTINE READ_CSVDATA_TURBINE_ADNR(KLUNAM,HFILE,TPTURBINE) +SUBROUTINE READ_CSVDATA_TURBINE_ADNR(HFILE,TPTURBINE) ! USE MODD_EOL_ADNR, ONLY: TURBINE USE MODI_EOL_ERROR, ONLY: EOL_CSVNOTFOUND_ERROR, EOL_CSVEMPTY_ERROR ! IMPLICIT NONE ! -INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file -CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read +CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(TURBINE), INTENT(OUT) :: TPTURBINE ! dummy stored data turbine ! LOGICAL :: GEXIST ! Existence of file ! +INTEGER :: ILU ! logical unit of the file INTEGER :: INBLINE ! Nb of line in csv file ! CHARACTER(LEN=400) :: YSTRING @@ -197,13 +190,13 @@ IF (.NOT.GEXIST) THEN END IF ! ! Opening -OPEN(UNIT=KLUNAM,FILE=HFILE, FORM='formatted', STATUS='OLD') +OPEN(NEWUNIT=ILU,FILE=HFILE, FORM='formatted', STATUS='OLD') ! ! Counting number of line -REWIND(KLUNAM) +REWIND(ILU) INBLINE=0 DO - READ(KLUNAM,END=101,FMT='(A400)') YSTRING + READ(ILU,END=101,FMT='(A400)') YSTRING IF (LEN_TRIM(YSTRING) > 0) THEN INBLINE = INBLINE + 1 END IF @@ -212,38 +205,37 @@ END DO 101 CONTINUE IF (INBLINE /= 2) THEN CALL EOL_CSVEMPTY_ERROR(HFILE,INBLINE) - STOP ELSE - REWIND(KLUNAM) - READ(KLUNAM,FMT='(A400)') YSTRING ! Header reading - READ(KLUNAM,FMT='(A400)') YSTRING ! Reading next line + REWIND(ILU) + READ(ILU,FMT='(A400)') YSTRING ! Header reading + READ(ILU,FMT='(A400)') YSTRING ! Reading next line ! Read data READ(YSTRING,*) YWT_NAME, ZH_HEIGHT, ZR_MAX ! reading data TPTURBINE%CNAME = YWT_NAME ! Saving them TPTURBINE%XH_HEIGHT = ZH_HEIGHT TPTURBINE%XR_MAX = ZR_MAX - REWIND(KLUNAM) ! Rembobinage, plutôt 2 fois qu'1 ! + REWIND(ILU) ! Rembobinage, plutôt 2 fois qu'1 ! RETURN - CLOSE(KLUNAM) + CLOSE(ILU) END IF ! END SUBROUTINE READ_CSVDATA_TURBINE_ADNR !######################################################### ! !######################################################### -SUBROUTINE READ_CSVDATA_FARM_ALM(KLUNAM,HFILE,TPFARM) +SUBROUTINE READ_CSVDATA_FARM_ALM(HFILE,TPFARM) ! USE MODD_EOL_ALM, ONLY: FARM USE MODI_EOL_ERROR, ONLY: EOL_CSVNOTFOUND_ERROR, EOL_CSVEMPTY_ERROR ! IMPLICIT NONE ! -INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(FARM), INTENT(OUT) :: TPFARM ! dummy stored data blade ! LOGICAL :: GEXIST ! Existence of file ! +INTEGER :: ILU ! logical unit of the file INTEGER :: INBLINE ! Nb of line in csv file ! CHARACTER(LEN=400) :: YSTRING @@ -262,12 +254,12 @@ IF (.NOT.GEXIST) THEN END IF ! ! Opening the file -OPEN(UNIT=KLUNAM,FILE=HFILE, FORM='formatted', STATUS='OLD') +OPEN(NEWUNIT=ILU,FILE=HFILE, FORM='formatted', STATUS='OLD') ! Counting number of line -REWIND(KLUNAM) +REWIND(ILU) INBLINE=0 DO - READ(KLUNAM,END=101,FMT='(A400)') YSTRING + READ(ILU,END=101,FMT='(A400)') YSTRING IF (LEN_TRIM(YSTRING) > 0) THEN INBLINE = INBLINE + 1 END IF @@ -276,7 +268,6 @@ END DO 101 CONTINUE IF (INBLINE < 2) THEN CALL EOL_CSVEMPTY_ERROR(HFILE,INBLINE) - STOP ELSE ! Saving number of wind turbine TPFARM%NNB_TURBINES = INBLINE - 1 @@ -288,12 +279,12 @@ ELSE ALLOCATE(TPFARM%XBLA_PITCH(TPFARM%NNB_TURBINES)) ! ! New read - REWIND(KLUNAM) - READ(KLUNAM,FMT='(A400)') YSTRING ! Header reading + REWIND(ILU) + READ(ILU,FMT='(A400)') YSTRING ! Header reading ! ! Saving data DO INBLINE=1, TPFARM%NNB_TURBINES - READ(KLUNAM,FMT='(A400)') YSTRING + READ(ILU,FMT='(A400)') YSTRING READ(YSTRING,*) ZPOS_X, ZPOS_Y, ZOMEGA, ZYAW, ZPITCH TPFARM%XPOS_X(INBLINE) = ZPOS_X TPFARM%XPOS_Y(INBLINE) = ZPOS_Y @@ -301,7 +292,7 @@ ELSE TPFARM%XNAC_YAW(INBLINE) = ZYAW TPFARM%XBLA_PITCH(INBLINE) = ZPITCH END DO - CLOSE(KLUNAM) + CLOSE(ILU) RETURN END IF ! @@ -309,19 +300,19 @@ END SUBROUTINE READ_CSVDATA_FARM_ALM !######################################################### ! !######################################################### -SUBROUTINE READ_CSVDATA_TURBINE_ALM(KLUNAM,HFILE,TPTURBINE) +SUBROUTINE READ_CSVDATA_TURBINE_ALM(HFILE,TPTURBINE) ! USE MODD_EOL_ALM, ONLY: TURBINE USE MODI_EOL_ERROR, ONLY: EOL_CSVNOTFOUND_ERROR, EOL_CSVEMPTY_ERROR ! IMPLICIT NONE ! -INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(TURBINE), INTENT(OUT) :: TPTURBINE ! dummy stored data turbine ! LOGICAL :: GEXIST ! Existence of file ! +INTEGER :: ILU ! logical unit of the file INTEGER :: INBLINE ! Nb of line in csv file ! CHARACTER(LEN=400) :: YSTRING @@ -341,13 +332,13 @@ IF (.NOT.GEXIST) THEN END IF ! ! Opening -OPEN(UNIT=KLUNAM,FILE=HFILE, FORM='formatted', STATUS='OLD') +OPEN(NEWUNIT=ILU,FILE=HFILE, FORM='formatted', STATUS='OLD') ! ! Counting number of line -REWIND(KLUNAM) +REWIND(ILU) INBLINE=0 DO - READ(KLUNAM,END=101,FMT='(A400)') YSTRING + READ(ILU,END=101,FMT='(A400)') YSTRING IF (LEN_TRIM(YSTRING) > 0) THEN INBLINE = INBLINE + 1 END IF @@ -356,11 +347,10 @@ END DO 101 CONTINUE IF (INBLINE /= 2) THEN CALL EOL_CSVEMPTY_ERROR(HFILE,INBLINE) - STOP ELSE - REWIND(KLUNAM) - READ(KLUNAM,FMT='(A400)') YSTRING ! Header reading - READ(KLUNAM,FMT='(A400)') YSTRING ! Reading next line + REWIND(ILU) + READ(ILU,FMT='(A400)') YSTRING ! Header reading + READ(ILU,FMT='(A400)') YSTRING ! Reading next line ! Read data READ(YSTRING,*) YWT_NAME, INB_BLADE, ZH_HEIGHT,& ! reading data ZR_MIN, ZR_MAX, ZNAC_TILT, & @@ -372,28 +362,28 @@ ELSE TPTURBINE%XR_MAX = ZR_MAX TPTURBINE%XNAC_TILT = ZNAC_TILT TPTURBINE%XH_DEPORT = ZHUB_DEPORT - REWIND(KLUNAM) + REWIND(ILU) RETURN - CLOSE(KLUNAM) + CLOSE(ILU) END IF ! END SUBROUTINE READ_CSVDATA_TURBINE_ALM !######################################################### ! !######################################################### -SUBROUTINE READ_CSVDATA_BLADE_ALM(KLUNAM,HFILE,TPTURBINE,TPBLADE) +SUBROUTINE READ_CSVDATA_BLADE_ALM(HFILE,TPTURBINE,TPBLADE) ! USE MODD_EOL_ALM, ONLY: TURBINE, BLADE, NNB_BLAELT USE MODI_EOL_ERROR, ONLY: EOL_CSVNOTFOUND_ERROR, EOL_CSVEMPTY_ERROR USE MODI_EOL_ERROR, ONLY: EOL_BLADEDATA_ERROR ! -INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(TURBINE), INTENT(IN) :: TPTURBINE ! stored turbine data TYPE(BLADE), INTENT(OUT) :: TPBLADE ! dummy stored data blade ! LOGICAL :: GEXIST ! Existence of file ! +INTEGER :: ILU ! logical unit of the file INTEGER :: INBLINE ! Nb of line in csv file INTEGER :: INBDATA ! Nb of data (line/section) of blade ! @@ -411,12 +401,12 @@ IF (.NOT.GEXIST) THEN END IF ! ! Ouverture -OPEN(UNIT=KLUNAM,FILE=HFILE, FORM='formatted', STATUS='OLD') +OPEN(NEWUNIT=ILU,FILE=HFILE, FORM='formatted', STATUS='OLD') ! Counting number of line -REWIND(KLUNAM) +REWIND(ILU) INBLINE=0 DO - READ(KLUNAM,END=101,FMT='(A400)') YSTRING + READ(ILU,END=101,FMT='(A400)') YSTRING IF (LEN_TRIM(YSTRING) > 0) THEN INBLINE = INBLINE + 1 END IF @@ -425,7 +415,6 @@ END DO 101 CONTINUE IF (INBLINE < 2) THEN CALL EOL_CSVEMPTY_ERROR(HFILE,INBLINE) - STOP ELSE TPBLADE%NNB_BLAELT = NNB_BLAELT ! Saving number of data @@ -436,12 +425,12 @@ ELSE ALLOCATE(TPBLADE%CAIRFOIL(TPBLADE%NNB_BLADAT)) ! ! New read - REWIND(KLUNAM) - READ(KLUNAM,FMT='(A400)') YSTRING ! Header reading + REWIND(ILU) + READ(ILU,FMT='(A400)') YSTRING ! Header reading ! ! Saving data DO INBLINE=1, TPBLADE%NNB_BLADAT - READ(KLUNAM,FMT='(A400)') YSTRING + READ(ILU,FMT='(A400)') YSTRING READ(YSTRING,*) ZCENTER, ZCHORD, ZTWIST, YAIRFOIL ! Reading data IF ((ZCENTER<=0.0) .OR. (ZCENTER>= 1.0)) THEN ! Checking data @@ -455,7 +444,7 @@ ELSE TPBLADE%CAIRFOIL(INBLINE) = YAIRFOIL END IF END DO - CLOSE(KLUNAM) + CLOSE(ILU) RETURN END IF ! @@ -463,19 +452,19 @@ END SUBROUTINE READ_CSVDATA_BLADE_ALM !######################################################### ! !######################################################### -SUBROUTINE READ_CSVDATA_AIRFOIL_ALM(KLUNAM,HFILE,TPBLADE,TPAIRFOIL) +SUBROUTINE READ_CSVDATA_AIRFOIL_ALM(HFILE,TPBLADE,TPAIRFOIL) ! USE MODD_EOL_ALM, ONLY: BLADE, AIRFOIL USE MODI_EOL_ERROR, ONLY: EOL_CSVNOTFOUND_ERROR, EOL_CSVEMPTY_ERROR USE MODI_EOL_ERROR, ONLY: EOL_AIRFOILNOTFOUND_ERROR ! -INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(BLADE), INTENT(IN) :: TPBLADE ! stored blade data (to select airfoils) TYPE(AIRFOIL), DIMENSION(:), ALLOCATABLE, INTENT(OUT) :: TPAIRFOIL ! dummy stored data blade ! LOGICAL :: GEXIST ! Existence of file ! +INTEGER :: ILU ! logical unit of the file INTEGER :: INBDATA ! Nb of data (line/section) per airfoil INTEGER :: INBLINE ! Nb of line in csv file LOGICAL :: GAIRFLAG ! Flag for airfoil counting @@ -501,7 +490,7 @@ IF (.NOT.GEXIST) THEN END IF ! ! Ouverture -OPEN(UNIT=KLUNAM,FILE=HFILE, FORM='formatted', STATUS='OLD') +OPEN(NEWUNIT=ILU,FILE=HFILE, FORM='formatted', STATUS='OLD') ! ! 1. Counting number of differents airfoils along the blade and selection : ! @@ -530,17 +519,17 @@ ALLOCATE(TPAIRFOIL(INBAIRFOIL)) ! DO IA = 1, INBAIRFOIL ! Array allocation - CALL HOW_MANY_LINES_OF(KLUNAM,HFILE,YAIRFOIL(IA),INBDATA) + CALL HOW_MANY_LINES_OF(ILU,HFILE,YAIRFOIL(IA),INBDATA) ALLOCATE(TPAIRFOIL(IA)%XAA(INBDATA)) ALLOCATE(TPAIRFOIL(IA)%XRE(INBDATA)) ALLOCATE(TPAIRFOIL(IA)%XCL(INBDATA)) ALLOCATE(TPAIRFOIL(IA)%XCD(INBDATA)) ALLOCATE(TPAIRFOIL(IA)%XCM(INBDATA)) ! - REWIND(KLUNAM) + REWIND(ILU) INBLINE = 0 DO - READ(KLUNAM,END=101,FMT='(A400)') YSTRING ! Header + READ(ILU,END=101,FMT='(A400)') YSTRING ! Header !* reads the string IF (LEN_TRIM(YSTRING)>0) THEN READ(YSTRING,FMT=*) YREAD_NAME @@ -557,7 +546,7 @@ DO IA = 1, INBAIRFOIL TPAIRFOIL(IA)%XCM(INBLINE) = ZCM ELSE ! The name doesnt appear during a new read.. IF (INBLINE > 0) THEN ! .. but it has already been found, .. - REWIND(KLUNAM) ! .. so it is the end of the data .. + REWIND(ILU) ! .. so it is the end of the data .. EXIT ! .. and we can exit :) END IF END IF @@ -565,11 +554,10 @@ DO IA = 1, INBAIRFOIL END DO END DO ! -CLOSE(KLUNAM) +CLOSE(ILU) 101 CONTINUE IF (INBLINE == 0) THEN CALL EOL_AIRFOILNOTFOUND_ERROR(HFILE,YAIRFOIL(IA)) - STOP END IF END SUBROUTINE READ_CSVDATA_AIRFOIL_ALM !######################################################### @@ -610,7 +598,6 @@ END DO 101 CONTINUE IF (KLINE == 0) THEN CALL EOL_AIRFOILNOTFOUND_ERROR(HFILE,HNAME) - STOP END IF END SUBROUTINE HOW_MANY_LINES_OF !######################################################### diff --git a/src/MNH/ibm_prep_ls.f90 b/src/MNH/ibm_prep_ls.f90 index 6041198f3..bb3ae049b 100644 --- a/src/MNH/ibm_prep_ls.f90 +++ b/src/MNH/ibm_prep_ls.f90 @@ -156,8 +156,6 @@ SUBROUTINE IBM_PREP_LS(OIBM,HIBM_TYPE,PPHI) !------------------------------------------------------------------------------ ! ! 0.3 Allocation - ILUIBMGENE = 42 - ILUIBMIDEA = 43 HFILEGENE = "ibm_gene.obj" HFILEIDEA = "ibm_idea.nam" ! @@ -207,7 +205,7 @@ SUBROUTINE IBM_PREP_LS(OIBM,HIBM_TYPE,PPHI) ALLOCATE(ZV2(3150000,3)) ALLOCATE(ZV3(3150000,3)) ! - OPEN(ILUIBMGENE , FILE= HFILEGENE , IOSTAT=IRESPIBMGENE , STATUS='OLD') + OPEN(NEWUNIT=ILUIBMGENE , FILE=HFILEGENE , IOSTAT=IRESPIBMGENE , STATUS='OLD') ! JV=1 JF=0 @@ -358,7 +356,7 @@ SUBROUTINE IBM_PREP_LS(OIBM,HIBM_TYPE,PPHI) !---------------------------- IF (HIBM_TYPE=='IDEA') THEN ! - OPEN(ILUIBMIDEA , FILE= HFILEIDEA , IOSTAT=IRESPIBMIDEA , FORM='FORMATTED' , & + OPEN(NEWUNIT=ILUIBMIDEA , FILE= HFILEIDEA , IOSTAT=IRESPIBMIDEA , FORM='FORMATTED' , & STATUS='OLD', ACCESS='SEQUENTIAL', ACTION='READ') ! READ(UNIT=ILUIBMIDEA,FMT=*) IIBM_NUMB_NODE_SURF, IIBM_NUMB_TYPE_SURF diff --git a/src/MNH/ini_eol_adnr.f90 b/src/MNH/ini_eol_adnr.f90 index fb03dab93..9e069eed9 100644 --- a/src/MNH/ini_eol_adnr.f90 +++ b/src/MNH/ini_eol_adnr.f90 @@ -98,11 +98,11 @@ INTEGER :: ILUOUT ! Output listing file ! !* 1.1 Wind farm data ! -CALL READ_CSVDATA_FARM_ADNR(40,TRIM(CFARM_CSVDATA),TFARM) +CALL READ_CSVDATA_FARM_ADNR(TRIM(CFARM_CSVDATA),TFARM) ! !* 1.2 Wind turbine data ! -CALL READ_CSVDATA_TURBINE_ADNR(41,TRIM(CTURBINE_CSVDATA),TTURBINE) +CALL READ_CSVDATA_TURBINE_ADNR(TRIM(CTURBINE_CSVDATA),TTURBINE) ! ! !------------------------------------------------------------------- diff --git a/src/MNH/ini_eol_alm.f90 b/src/MNH/ini_eol_alm.f90 index c104e36f5..41938d789 100644 --- a/src/MNH/ini_eol_alm.f90 +++ b/src/MNH/ini_eol_alm.f90 @@ -158,19 +158,19 @@ INTEGER :: IINFO ! code info return ! !* 1.1 Wind farm data ! -CALL READ_CSVDATA_FARM_ALM(40,TRIM(CFARM_CSVDATA),TFARM) +CALL READ_CSVDATA_FARM_ALM(TRIM(CFARM_CSVDATA),TFARM) ! !* 1.2 Wind turbine data ! -CALL READ_CSVDATA_TURBINE_ALM(41,TRIM(CTURBINE_CSVDATA),TTURBINE) +CALL READ_CSVDATA_TURBINE_ALM(TRIM(CTURBINE_CSVDATA),TTURBINE) ! !* 1.3 Blade data ! -CALL READ_CSVDATA_BLADE_ALM(42,TRIM(CBLADE_CSVDATA),TTURBINE,TBLADE) +CALL READ_CSVDATA_BLADE_ALM(TRIM(CBLADE_CSVDATA),TTURBINE,TBLADE) ! !* 1.4 Airfoil data ! -CALL READ_CSVDATA_AIRFOIL_ALM(43,TRIM(CAIRFOIL_CSVDATA),TBLADE,TAIRFOIL) +CALL READ_CSVDATA_AIRFOIL_ALM(TRIM(CAIRFOIL_CSVDATA),TBLADE,TAIRFOIL) ! ! !------------------------------------------------------------------- diff --git a/src/MNH/ini_stationn.f90 b/src/MNH/ini_stationn.f90 index 0b3576ead..8bfe8866f 100644 --- a/src/MNH/ini_stationn.f90 +++ b/src/MNH/ini_stationn.f90 @@ -70,7 +70,6 @@ USE MODD_ALLSTATION_n USE MODD_CONF, ONLY: LCARTESIAN USE MODD_PARAMETERS ! -!USE MODN_STATION_n USE MODI_STATION_READER ! ! @@ -137,7 +136,7 @@ ELSE ! !* 2. CSV DATA ! - CALL READ_CSV_STATION(90,CFILE_STAT,TSTATION,LCARTESIAN) + CALL READ_CSV_STATION(CFILE_STAT,TSTATION,LCARTESIAN) TSTATION%STEP = XSTEP_STAT END IF diff --git a/src/MNH/station_reader.f90 b/src/MNH/station_reader.f90 index 3d1186a9e..e6f9647bc 100644 --- a/src/MNH/station_reader.f90 +++ b/src/MNH/station_reader.f90 @@ -9,13 +9,8 @@ ! INTERFACE ! -SUBROUTINE READ_CSV_STATION(KLUNAM,HFILE,TPSTATION,OCARTESIAN) - USE MODD_ALLSTATION_n +SUBROUTINE READ_CSV_STATION(HFILE,TPSTATION,OCARTESIAN) USE MODD_STATION_n - USE MODD_PARAMETERS - USE MODD_TYPE_STATION - USE MODI_INI_SURFSTATION_n - INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(STATION), INTENT(OUT) :: TPSTATION ! stored blade data LOGICAL, INTENT(IN) :: OCARTESIAN @@ -43,7 +38,7 @@ END MODULE MODI_STATION_READER !!--------------------------------------------------------------- ! !######################################################### -SUBROUTINE READ_CSV_STATION(KLUNAM,HFILE,TPSTATION,OCARTESIAN) +SUBROUTINE READ_CSV_STATION(HFILE,TPSTATION,OCARTESIAN) USE MODD_ALLSTATION_n USE MODD_STATION_n USE MODD_PARAMETERS @@ -51,24 +46,24 @@ USE MODD_TYPE_STATION USE MODI_INI_SURFSTATION_n ! -INTEGER, INTENT(IN) :: KLUNAM ! logical unit of the file -CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read +CHARACTER(LEN=*), INTENT(IN) :: HFILE ! file to read TYPE(STATION), INTENT(INOUT) :: TPSTATION ! dummy stored LOGICAL, INTENT(IN) :: OCARTESIAN ! INTEGER :: INBLINE ! Nb of line in csv file ! CHARACTER(LEN=80) :: YERROR -CHARACTER(LEN=400) :: YSTRING +CHARACTER(LEN=400) :: YSTRING +INTEGER :: ILU ! logical unit of the file ! ! Open file -OPEN(UNIT=KLUNAM,FILE=HFILE, FORM='formatted') +OPEN(NEWUNIT=ILU,FILE=HFILE, FORM='formatted') ! Count lines -REWIND(KLUNAM) +REWIND(ILU) INBLINE=0 DO - READ(KLUNAM,END=101,FMT='(A400)') YSTRING + READ(ILU,END=101,FMT='(A400)') YSTRING !* analyses if the record has been written in French convention CALL FRENCH_TO_ENGLISH(YSTRING) ! analyse de convention fr ou eng IF (LEN_TRIM(YSTRING) > 0) THEN @@ -104,29 +99,29 @@ END DO TPSTATION%NAME = " " TPSTATION%TYPE = " " ! Nouvelle lecture - REWIND(KLUNAM) - READ(KLUNAM,FMT='(A400)') YSTRING ! Lecture du header + REWIND(ILU) + READ(ILU,FMT='(A400)') YSTRING ! Lecture du header ! ! Save the data IF (OCARTESIAN) THEN INBLINE = 1 DO INBLINE=1, NUMBSTAT - READ(KLUNAM,FMT='(A400)') YSTRING + READ(ILU,FMT='(A400)') YSTRING READ(YSTRING,*) TPSTATION%NAME(INBLINE),TPSTATION%TYPE(INBLINE),& TPSTATION%X(INBLINE), TPSTATION%Y(INBLINE), TPSTATION%Z(INBLINE)!,& END DO - REWIND(KLUNAM) - CLOSE(KLUNAM) + REWIND(ILU) + CLOSE(ILU) RETURN ELSE INBLINE = 1 DO INBLINE=1, NUMBSTAT - READ(KLUNAM,FMT='(A400)') YSTRING + READ(ILU,FMT='(A400)') YSTRING READ(YSTRING,*) TPSTATION%NAME(INBLINE), TPSTATION%TYPE(INBLINE),& TPSTATION%LAT(INBLINE), TPSTATION%LON(INBLINE), TPSTATION%Z(INBLINE)!,& END DO - REWIND(KLUNAM) - CLOSE(KLUNAM) + REWIND(ILU) + CLOSE(ILU) RETURN END IF END IF -- GitLab