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