1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv! 2 ! ! 3 ! Module: output ! 4 ! Author: M. Syamlal Date: dd-mmm-yy ! 5 ! ! 6 ! Purpose: Contain data for output control. ! 7 ! ! 8 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^! 9 MODULE output 10 11 use param, only: DIMENSION_USR 12 use param1, only: N_SPX 13 14 ! Interval at which restart (.RES) file data is updated. 15 DOUBLE PRECISION :: RES_DT 16 ! Interval at which REAL restart (.SPx) files data are updated. 17 DOUBLE PRECISION :: SPX_DT(N_SPX) 18 ! Interval at which standard output (.OUT) file data is updated. 19 DOUBLE PRECISION :: OUT_DT 20 ! Interval at which user-defined output files are updated. 21 DOUBLE PRECISION :: USR_DT (DIMENSION_USR) 22 ! Interval to check and report the mass balance 23 DOUBLE PRECISION :: REPORT_MASS_BALANCE_DT 24 ! Interval in number of time steps at which LOG file is written 25 INTEGER :: NLOG 26 ! Flag to display messages and residuals on the screen 27 LOGICAL :: FULL_LOG 28 ! Flag to enable all ranks to write private LOG files. 29 LOGICAL :: ENABLE_DMP_LOG 30 ! Flag to print the index layout for ijk<=>i,j,k debugging tasks 31 LOGICAL :: DBGPRN_LAYOUT 32 33 ! Time at which special output is to be written 34 DOUBLE PRECISION :: USR_TIME(DIMENSION_USR) 35 ! Time at which restart file is to be written 36 DOUBLE PRECISION :: RES_TIME 37 ! Time at which REAL restart file is to be written 38 DOUBLE PRECISION :: SPX_TIME(N_SPX) 39 ! Time at which standard output is to be written 40 DOUBLE PRECISION :: OUT_TIME 41 42 ! The approximate amount (in MB) of space needed to write 43 ! one time step of data into the indexed SPX file. 44 DOUBLE PRECISION :: DISK(N_SPX) = 0.0d0 45 ! The approximated total disk space (in MB) 46 DOUBLE PRECISION :: DISK_TOT = 0.0d0 47 ! One megabite (MB) 48 DOUBLE PRECISION, PARAMETER :: ONEMEG = 1048576 49 50 ! The following have no direct usage in the code. They are generic 51 ! hooks wereby a user can specify some information. It may be useful 52 ! to have the USR_I/J/K variables calculated in a check routine 53 ! the same way that coordinates for BCs, ICs, PSs, are calculated. 54 !--------------------------------------------------------------------// 55 ! X coordinate of the west face of user output region 56 DOUBLE PRECISION :: USR_X_w (DIMENSION_USR) 57 ! X coordinate of the east face of user output region 58 DOUBLE PRECISION :: USR_X_e (DIMENSION_USR) 59 ! Y coordinate of the south face of user output region 60 DOUBLE PRECISION :: USR_Y_s (DIMENSION_USR) 61 ! Y coordinate of the north face of user output region 62 DOUBLE PRECISION :: USR_Y_n (DIMENSION_USR) 63 ! Z coordinate of the bottom face of user output region 64 DOUBLE PRECISION :: USR_Z_b (DIMENSION_USR) 65 ! Z coordinate of the top face of user output region 66 DOUBLE PRECISION :: USR_Z_t (DIMENSION_USR) 67 ! I index of the west face of user output region 68 INTEGER :: USR_I_w (DIMENSION_USR) 69 ! I index of the east face of user output region 70 INTEGER :: USR_I_e (DIMENSION_USR) 71 ! J index of the south face of user output region 72 INTEGER :: USR_J_s (DIMENSION_USR) 73 ! J index of the north face of user output region 74 INTEGER :: USR_J_n (DIMENSION_USR) 75 ! K index of the bottom face of user output region 76 INTEGER :: USR_K_b (DIMENSION_USR) 77 ! K index of the top face of user output region 78 INTEGER :: USR_K_t (DIMENSION_USR) 79 ! Type of user-defined output: BINARY or ASCII. 80 CHARACTER(LEN=6) :: USR_TYPE (DIMENSION_USR) 81 ! Variables to be written in the user-defined output file. 82 CHARACTER(LEN=60) :: USR_VAR (DIMENSION_USR) 83 ! Format for writing user-defined (ASCII) output file. 84 CHARACTER(LEN=60) :: USR_FORMAT (DIMENSION_USR) 85 ! Extension for the user-defined output file. 86 CHARACTER(LEN=16) :: USR_EXT (DIMENSION_USR) 87 88 contains 89 90 91 END MODULE output 92