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