File indexing completed on 2023-11-05 05:10:53 UTC
view on githubraw file Latest commit 65754df4 on 2023-11-04 17:55:24 UTC
359d9ec3d7 Patr*0001 #include "SHELFICE_OPTIONS.h"
ceca9ed7c5 Jean*0002 #ifdef ALLOW_COST
0003 # include "COST_OPTIONS.h"
0004 #endif
0005 #ifdef ALLOW_CTRL
0006 # include "CTRL_OPTIONS.h"
0007 #endif
359d9ec3d7 Patr*0008
9896423eca Jean*0009
0010
0011
0012 SUBROUTINE SHELFICE_COST_FINAL( myThid )
0013
0014
359d9ec3d7 Patr*0015
0016
0017
0018
9896423eca Jean*0019
0020
359d9ec3d7 Patr*0021 IMPLICIT NONE
0022
0023
0024 #include "SIZE.h"
0025 #include "EEPARAMS.h"
0026 #include "PARAMS.h"
0027 #include "DYNVARS.h"
0028 #include "GRID.h"
0029 #include "SHELFICE.h"
0030 #include "SHELFICE_COST.h"
0031
0032 #ifdef ALLOW_COST
abed653eb5 Mart*0033 # include "cost.h"
65754df434 Mart*0034 # ifndef ALLOW_OPENAD
0035 # include "OPTIMCYCLE.h"
0036 # endif
abed653eb5 Mart*0037 #endif
359d9ec3d7 Patr*0038
9896423eca Jean*0039
0040
0041 INTEGER myThid
359d9ec3d7 Patr*0042
0043 #ifdef ALLOW_COST
9896423eca Jean*0044
abed653eb5 Mart*0045 LOGICAL MASTER_CPU_THREAD
0046 EXTERNAL MASTER_CPU_THREAD
0047
9896423eca Jean*0048
0049 INTEGER bi, bj
0050 INTEGER ifc
0051 CHARACTER*(25) cfname
961e4878d5 Jean*0052
0d89045df1 Mart*0053 _RL f_shelfice
0054 _RL f_shifwflx
9896423eca Jean*0055
0d89045df1 Mart*0056 _RL no_shifwflx
0057
9896423eca Jean*0058 INTEGER i, j
0059
359d9ec3d7 Patr*0060
b963de6667 Mart*0061 f_shelfice = 0. _d 0
0062 f_shifwflx = 0. _d 0
9896423eca Jean*0063
b963de6667 Mart*0064 no_shifwflx= 0. _d 0
961e4878d5 Jean*0065
3bafcf6020 Timo*0066 IF ( .NOT. useECCO ) THEN
359d9ec3d7 Patr*0067
3bafcf6020 Timo*0068 DO bj = myByLo(myThid), myByHi(myThid)
0069 DO bi = myBxLo(myThid), myBxHi(myThid)
359d9ec3d7 Patr*0070
9896423eca Jean*0071 DO j=1,sNy
0072 DO i=1,sNx
0073
359d9ec3d7 Patr*0074 objf_shelfice(bi,bj) = objf_shelfice(bi,bj)
0075 & + cMeanSHIforS(i,j,bi,bj)/lastinterval/rhoConstFresh
0076 & *_rA(i,j,bi,bj)
9896423eca Jean*0077
0078 ENDDO
0079 ENDDO
0080
3bafcf6020 Timo*0081 ENDDO
9896423eca Jean*0082 ENDDO
3bafcf6020 Timo*0083 ENDIF
b963de6667 Mart*0084
9896423eca Jean*0085
0086 DO bj = myByLo(myThid), myByHi(myThid)
0087 DO bi = myBxLo(myThid), myBxHi(myThid)
abed653eb5 Mart*0088 write(standardmessageunit,'(A,D22.15)')
0089 & ' --> objf_shelfice(bi,bj) = ', objf_shelfice(bi,bj)
9896423eca Jean*0090 tile_fc(bi,bj) = tile_fc(bi,bj)
abed653eb5 Mart*0091 & + mult_shelfice * objf_shelfice(bi,bj)
0d89045df1 Mart*0092
9896423eca Jean*0093 ENDDO
0094 ENDDO
abed653eb5 Mart*0095
9896423eca Jean*0096 CALL GLOBAL_SUM_TILE_RL( objf_shelfice, f_shelfice, myThid )
0097
0d89045df1 Mart*0098
5357e1c86c Jean*0099 # ifndef ALLOW_OPENAD
9896423eca Jean*0100
abed653eb5 Mart*0101 IF ( MASTER_CPU_THREAD(myThid) ) THEN
0102
0103 ifc = 30
0104 WRITE(cfname,'(A,i4.4)') 'costfunction_shelfice',optimcycle
0105 OPEN(unit=ifc,file=cfname)
0106
0107 WRITE(ifc,*) 'fc =', fc
9896423eca Jean*0108
0d89045df1 Mart*0109 WRITE(ifc,*) 'f_shelfice =', f_shelfice
abed653eb5 Mart*0110
0111 CLOSE(ifc)
359d9ec3d7 Patr*0112
abed653eb5 Mart*0113 ENDIF
5357e1c86c Jean*0114 # endif /* ALLOW_OPENAD */
bb49380557 Patr*0115
359d9ec3d7 Patr*0116 #endif /* ALLOW_COST */
0117
9896423eca Jean*0118 RETURN
359d9ec3d7 Patr*0119 END