Back to home page

MITgcm

 
 

    


File indexing completed on 2023-03-29 05:10:01 UTC

view on githubraw file Latest commit cda1c18f on 2023-03-28 22:31:47 UTC
5ed655852f Jean*0001 #include "COST_OPTIONS.h"
2dcaa8b9a5 Patr*0002 
720be40b89 Patr*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 
                0017       implicit none
                0018 
                0019 c     == global variables ==
                0020 
                0021 #include "EEPARAMS.h"
                0022 #include "SIZE.h"
                0023 #include "GRID.h"
e20b49665f Mart*0024 #include "PARAMS.h"
2dcaa8b9a5 Patr*0025 
                0026 #include "cost.h"
                0027 
                0028 c     == routine arguments ==
                0029       integer mythid
                0030 
                0031 c     == local variables ==
9aaf43452b Patr*0032       character*(max_len_mbuf) msgbuf
                0033       integer iUnit
2dcaa8b9a5 Patr*0034 
                0035 c     == end of interface ==
                0036 
                0037 c--   Read the namelist input.
951926fb9b Jean*0038       namelist /cost_nml/
cda1c18f72 Jean*0039      &         mult_atl, mult_test, mult_tracer,
                0040      &         multTheta, multSalt, multUvel, multVvel, multEtan,
616600b8d2 Patr*0041 #ifdef ALLOW_COST_DEPTH
cda1c18f72 Jean*0042      &         mult_depth,
616600b8d2 Patr*0043 #endif
11c3150c71 Mart*0044 #ifdef ALLOW_COST_HFLUXM
cda1c18f72 Jean*0045      &         mult_temp_tut, mult_hflux_tut,
11c3150c71 Mart*0046 #endif
cda1c18f72 Jean*0047      &         lastinterval
2dcaa8b9a5 Patr*0048 
                0049       _BEGIN_MASTER( myThid )
                0050 
                0051 c--     Set default values.
                0052         mult_atl              =      0. _d 0
                0053         mult_test             =      0. _d 0
bbf42b7711 Patr*0054         mult_tracer           =      0. _d 0
586ad2dc56 Patr*0055         multTheta             =      0. _d 0
                0056         multSalt              =      0. _d 0
                0057         multUvel              =      0. _d 0
                0058         multVvel              =      0. _d 0
                0059         multEtan              =      0. _d 0
616600b8d2 Patr*0060 #ifdef ALLOW_COST_DEPTH
                0061         mult_depth            =      0. _d 0
                0062 #endif
11c3150c71 Mart*0063 #ifdef ALLOW_COST_HFLUXM
14021e1fda Davi*0064         mult_temp_tut         =      0. _d 0
                0065         mult_hflux_tut        =      0. _d 0
11c3150c71 Mart*0066 #endif
2dcaa8b9a5 Patr*0067 
449f3c105b Patr*0068 c--     30*24*3600 = 2592000 = 1 model month
                0069         lastinterval = 2592000.
                0070 
2dcaa8b9a5 Patr*0071 c--     Next, read the cost data file.
9aaf43452b Patr*0072         WRITE(msgBuf,'(A)') 'COST_READPARMS: opening data.cost'
                0073         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0074      &                    SQUEEZE_RIGHT , 1)
                0075 
                0076         CALL OPEN_COPY_DATA_FILE(
                0077      I                          'data.cost', 'COST_READPARMS',
                0078      O                          iUnit,
                0079      I                          myThid )
                0080 
                0081         READ(  iUnit, nml = cost_nml )
                0082 
                0083         WRITE(msgBuf,'(A)') 'COST_READPARMS: finished reading data.cost'
                0084         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0085      &                  SQUEEZE_RIGHT , 1)
                0086 
7a77863887 Mart*0087 #ifdef SINGLE_DISK_IO
                0088         CLOSE(iUnit)
                0089 #else
                0090         CLOSE(iUnit,STATUS='DELETE')
                0091 #endif /* SINGLE_DISK_IO */
2dcaa8b9a5 Patr*0092 
cda1c18f72 Jean*0093         IF ( MOD(lastinterval,deltaTClock) .GT. 0. )
e20b49665f Mart*0094      &       lastinterval = MAX(
cda1c18f72 Jean*0095      &       INT(lastinterval/deltaTClock-1)*deltaTClock,deltaTClock)
e20b49665f Mart*0096 
7507ba8fa5 Davi*0097 #if (defined ALLOW_COST_HFLUXM) || (defined ALLOW_COST_TEMP)
913151f332 Davi*0098 c-- get the weights for the cost functions
                0099       CALL COST_WEIGHTS( myThid )
98264b2c3d Gael*0100 cgf : to compile previous line user is expected to provide cost_weights.F
7507ba8fa5 Davi*0101 #endif
2dcaa8b9a5 Patr*0102       _END_MASTER( mythid )
                0103 
                0104       _BARRIER
                0105 
                0106       end