Back to home page

MITgcm

 
 

    


File indexing completed on 2024-06-06 05:10:33 UTC

view on githubraw file Latest commit af61e5eb on 2024-06-06 03:30:35 UTC
5ed655852f Jean*0001 #include "COST_OPTIONS.h"
2dcaa8b9a5 Patr*0002 
af61e5eb16 Mart*0003       SUBROUTINE COST_READPARMS( myThid )
2dcaa8b9a5 Patr*0004 
                0005 c     ==================================================================
                0006 c     SUBROUTINE cost_readparms
                0007 c     ==================================================================
                0008 c
                0009 c     o This routine initialises the package cost.
                0010 c
                0011 c     started: Ralf Giering 18-Jan-2001
                0012 c
                0013 c     ==================================================================
                0014 c     SUBROUTINE cost_readparms
                0015 c     ==================================================================
                0016 
af61e5eb16 Mart*0017       IMPLICIT NONE
2dcaa8b9a5 Patr*0018 
                0019 c     == global variables ==
                0020 #include "EEPARAMS.h"
                0021 #include "SIZE.h"
                0022 #include "GRID.h"
e20b49665f Mart*0023 #include "PARAMS.h"
2dcaa8b9a5 Patr*0024 #include "cost.h"
                0025 
                0026 c     == routine arguments ==
af61e5eb16 Mart*0027       INTEGER myThid
2dcaa8b9a5 Patr*0028 
                0029 c     == local variables ==
af61e5eb16 Mart*0030       CHARACTER*(max_len_mbuf) msgbuf
                0031       INTEGER iUnit
2dcaa8b9a5 Patr*0032 
                0033 c     == end of interface ==
                0034 
                0035 c--   Read the namelist input.
af61e5eb16 Mart*0036       NAMELIST /cost_nml/
cda1c18f72 Jean*0037      &         mult_atl, mult_test, mult_tracer,
                0038      &         multTheta, multSalt, multUvel, multVvel, multEtan,
616600b8d2 Patr*0039 #ifdef ALLOW_COST_DEPTH
cda1c18f72 Jean*0040      &         mult_depth,
616600b8d2 Patr*0041 #endif
11c3150c71 Mart*0042 #ifdef ALLOW_COST_HFLUXM
cda1c18f72 Jean*0043      &         mult_temp_tut, mult_hflux_tut,
11c3150c71 Mart*0044 #endif
af61e5eb16 Mart*0045      &         lastinterval, cost_mask_file
2dcaa8b9a5 Patr*0046 
                0047       _BEGIN_MASTER( myThid )
                0048 
                0049 c--     Set default values.
                0050         mult_atl              =      0. _d 0
                0051         mult_test             =      0. _d 0
bbf42b7711 Patr*0052         mult_tracer           =      0. _d 0
586ad2dc56 Patr*0053         multTheta             =      0. _d 0
                0054         multSalt              =      0. _d 0
                0055         multUvel              =      0. _d 0
                0056         multVvel              =      0. _d 0
                0057         multEtan              =      0. _d 0
616600b8d2 Patr*0058 #ifdef ALLOW_COST_DEPTH
                0059         mult_depth            =      0. _d 0
                0060 #endif
11c3150c71 Mart*0061 #ifdef ALLOW_COST_HFLUXM
14021e1fda Davi*0062         mult_temp_tut         =      0. _d 0
                0063         mult_hflux_tut        =      0. _d 0
11c3150c71 Mart*0064 #endif
af61e5eb16 Mart*0065         cost_mask_file        =      ' '
2dcaa8b9a5 Patr*0066 
449f3c105b Patr*0067 c--     30*24*3600 = 2592000 = 1 model month
                0068         lastinterval = 2592000.
                0069 
2dcaa8b9a5 Patr*0070 c--     Next, read the cost data file.
9aaf43452b Patr*0071         WRITE(msgBuf,'(A)') 'COST_READPARMS: opening data.cost'
                0072         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0073      &                    SQUEEZE_RIGHT , 1)
                0074 
                0075         CALL OPEN_COPY_DATA_FILE(
                0076      I                          'data.cost', 'COST_READPARMS',
                0077      O                          iUnit,
                0078      I                          myThid )
                0079 
                0080         READ(  iUnit, nml = cost_nml )
                0081 
                0082         WRITE(msgBuf,'(A)') 'COST_READPARMS: finished reading data.cost'
                0083         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0084      &                  SQUEEZE_RIGHT , 1)
                0085 
7a77863887 Mart*0086 #ifdef SINGLE_DISK_IO
                0087         CLOSE(iUnit)
                0088 #else
                0089         CLOSE(iUnit,STATUS='DELETE')
                0090 #endif /* SINGLE_DISK_IO */
2dcaa8b9a5 Patr*0091 
cda1c18f72 Jean*0092         IF ( MOD(lastinterval,deltaTClock) .GT. 0. )
e20b49665f Mart*0093      &       lastinterval = MAX(
cda1c18f72 Jean*0094      &       INT(lastinterval/deltaTClock-1)*deltaTClock,deltaTClock)
e20b49665f Mart*0095 
7507ba8fa5 Davi*0096 #if (defined ALLOW_COST_HFLUXM) || (defined ALLOW_COST_TEMP)
913151f332 Davi*0097 c-- get the weights for the cost functions
                0098       CALL COST_WEIGHTS( myThid )
98264b2c3d Gael*0099 cgf : to compile previous line user is expected to provide cost_weights.F
7507ba8fa5 Davi*0100 #endif
af61e5eb16 Mart*0101 
                0102 C--   print cost parameters to stdout for better debugging
                0103       WRITE(msgBuf,'(A)')
                0104      &'// ======================================================='
                0105       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0106      &                    SQUEEZE_RIGHT, myThid )
                0107       WRITE(msgBuf,'(a)') '// cost configuration  >>> START <<<'
                0108       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0109      &                    SQUEEZE_RIGHT, myThid )
                0110       WRITE(msgBuf,'(A)')
                0111      &'// ======================================================='
                0112       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0113      &                    SQUEEZE_RIGHT, myThid )
                0114 
                0115       CALL WRITE_0D_RL( lastinterval, INDEX_NONE,'lastinterval =',
                0116      &'   /* cost interval over which to average ( s ). */')
                0117 C
                0118        CALL WRITE_0D_C( cost_mask_file, -1, INDEX_NONE,
                0119      &  'cost_mask_file =', ' /* file name of cost mask file */')
                0120 
                0121       WRITE(msgBuf,'(A)')
                0122      &'// ======================================================='
                0123       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0124      &                    SQUEEZE_RIGHT, myThid )
                0125       WRITE(msgBuf,'(A)') '// cost configuration  >>> END <<<'
                0126       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0127      &                    SQUEEZE_RIGHT, myThid )
                0128       WRITE(msgBuf,'(A)')
                0129      &'// ======================================================='
                0130       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0131      &                    SQUEEZE_RIGHT, myThid )
                0132       WRITE(msgBuf,'(A)') ' '
                0133       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0134      &                    SQUEEZE_RIGHT, myThid )
                0135 
                0136       _END_MASTER( myThid )
2dcaa8b9a5 Patr*0137 
                0138       _BARRIER
                0139 
af61e5eb16 Mart*0140       RETURN
                0141       END