File indexing completed on 2022-08-15 05:10:06 UTC
view on githubraw file Latest commit cf705a6c on 2022-08-14 22:40:32 UTC
5ed655852f Jean*0001 #include "COST_OPTIONS.h"
ec31b3f7d5 Jean*0002 #ifdef ALLOW_CTRL
0003 # include "CTRL_OPTIONS.h"
0004 #endif
f1ca098265 Davi*0005
11c3150c71 Mart*0006
0007
0008
01a8008aaa Davi*0009 SUBROUTINE COST_WEIGHTS( myThid )
11c3150c71 Mart*0010
0011
0012
0013
0014
391bdbafb2 Jean*0015
11c3150c71 Mart*0016
0017
01a8008aaa Davi*0018 IMPLICIT NONE
11c3150c71 Mart*0019
f1ca098265 Davi*0020 #include "EEPARAMS.h"
0021 #include "SIZE.h"
0022 #include "PARAMS.h"
0023 #include "GRID.h"
cf705a6c8e Mart*0024 #ifdef ALLOW_OPENAD
0025 # include "FFIELDS.h"
0026 #else
0027 # include "cost_local.h"
11c3150c71 Mart*0028 #endif
f1ca098265 Davi*0029
11c3150c71 Mart*0030
01a8008aaa Davi*0031 INTEGER myThid
f1ca098265 Davi*0032
11c3150c71 Mart*0033
391bdbafb2 Jean*0034 INTEGER MDS_RECLEN
0035 EXTERNAL MDS_RECLEN
f1ca098265 Davi*0036
11c3150c71 Mart*0037
01a8008aaa Davi*0038 INTEGER bi,bj
0039 INTEGER i,j,k
391bdbafb2 Jean*0040 INTEGER iUnit, length_of_rec
f1ca098265 Davi*0041
0042 _RL dummy
01a8008aaa Davi*0043 _RL wti(Nr)
0044 REAL*8 tmpwti(Nr)
0045 CHARACTER*(MAX_LEN_MBUF) msgBuf
11c3150c71 Mart*0046
f1ca098265 Davi*0047
391bdbafb2 Jean*0048
01a8008aaa Davi*0049 DO k = 1,Nr
11c3150c71 Mart*0050 wti(k) = 0. _d 0
01a8008aaa Davi*0051 ENDDO
11c3150c71 Mart*0052 DO bj = myByLo(myThid),myByHi(myThid)
0053 DO bi = myBxLo(myThid),myBxHi(myThid)
0054 DO j = 1-OLy,sNy+OLy
0055 DO i = 1-OLx,sNx+OLx
0056 whfluxm(i,j,bi,bj)= 0. _d 0
0057 ENDDO
0058 ENDDO
0059 DO k = 1,Nr
0060 wtheta(k,bi,bj) = 0. _d 0
f1ca098265 Davi*0061 ENDDO
11c3150c71 Mart*0062 ENDDO
f1ca098265 Davi*0063 ENDDO
0064
391bdbafb2 Jean*0065
01a8008aaa Davi*0066
f1ca098265 Davi*0067 #ifdef ALLOW_COST_TEMP
391bdbafb2 Jean*0068
01a8008aaa Davi*0069 _BEGIN_MASTER(myThid)
0070 CALL MDSFINDUNIT( iUnit, myThid )
391bdbafb2 Jean*0071 length_of_rec = MDS_RECLEN( precFloat64, Nr, myThid )
0072 OPEN( iUnit, FILE='Err_levitus_15layer.bin', STATUS='OLD',
0073 & FORM='UNFORMATTED',ACCESS='DIRECT',RECL=length_of_rec )
0074 READ(iUnit,rec=1) tmpwti
01a8008aaa Davi*0075 CLOSE(iUnit)
0076 #ifdef _BYTESWAPIO
0077 CALL MDS_BYTESWAPR8( Nr, tmpwti )
0078 #endif
0079 _END_MASTER(myThid)
0080 _BARRIER
0081
0082 DO k=1,Nr
0083 wti(k) = tmpwti(k)
0084 ENDDO
0085 WRITE(msgBuf,'(3A)') 'S/R COST_WEIGHTS:',
0086 & ' Temperature weights loaded from: ','Err_levitus_15layer.bin'
0087 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0088 & SQUEEZE_RIGHT , myThid )
0089
4db199adb5 Jean*0090
f1ca098265 Davi*0091
11c3150c71 Mart*0092 DO bj = myByLo(myThid),myByHi(myThid)
0093 DO bi = myBxLo(myThid),myBxHi(myThid)
01a8008aaa Davi*0094 DO k = 1, Nr
f1ca098265 Davi*0095 wtheta(k,bi,bj) = 1. _d 0/wti(k)/wti(k)
0096 ENDDO
0097 ENDDO
0098 ENDDO
ec31b3f7d5 Jean*0099 #endif /* ALLOW_COST_TEMP */
391bdbafb2 Jean*0100
0101
0102
11c3150c71 Mart*0103 #ifdef ALLOW_COST_HFLUXM
391bdbafb2 Jean*0104 CALL READ_REC_3D_RL( 'Err_hflux.bin', precFloat64, 1,
0105 & whfluxm, 1, 0, myThid )
f1ca098265 Davi*0106 _EXCH_XY_RL(whfluxm , myThid )
11c3150c71 Mart*0107 DO bj = myByLo(myThid),myByHi(myThid)
0108 DO bi = myBxLo(myThid),myBxHi(myThid)
0109 DO j = 1-OLy,sNy+OLy
0110 DO i = 1-OLx,sNx+OLx
4db199adb5 Jean*0111
f1ca098265 Davi*0112 IF (whfluxm(i,j,bi,bj) .NE. 0. _d 0) THEN
0113 whfluxm(i,j,bi,bj) = 1. _d 0 /whfluxm(i,j,bi,bj)
0114 & /whfluxm(i,j,bi,bj)
0115 ELSE
0116 whfluxm(i,j,bi,bj) = 1. _d 0
0117 ENDIF
0118 ENDDO
0119 ENDDO
0120 ENDDO
0121 ENDDO
0122 #ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO
391bdbafb2 Jean*0123 CALL ACTIVE_WRITE_XY('whfluxm',whfluxm,1,0,myThid,dummy)
f1ca098265 Davi*0124 #endif
11c3150c71 Mart*0125 #endif /* ALLOW_COST_HFLUXM */
391bdbafb2 Jean*0126 RETURN
0127 END