File indexing completed on 2021-04-08 05:12:33 UTC
view on githubraw file Latest commit ba0b0470 on 2021-04-08 01:06:32 UTC
fc7306ba7d Jean*0001 #include "THSICE_OPTIONS.h"
e813f81630 Jean*0002 #ifdef ALLOW_AIM
0003 # include "AIM_OPTIONS.h"
0004 #endif
fc7306ba7d Jean*0005
87ea84cac6 Jean*0006
0007
0008
fc7306ba7d Jean*0009 SUBROUTINE THSICE_INI_VARS( myThid )
87ea84cac6 Jean*0010
0011
fc7306ba7d Jean*0012
87ea84cac6 Jean*0013
fc7306ba7d Jean*0014
0015
87ea84cac6 Jean*0016
0017
0018
fc7306ba7d Jean*0019 IMPLICIT NONE
0020
0021
0022 #include "SIZE.h"
0023 #include "EEPARAMS.h"
0024 #include "PARAMS.h"
b25f5fd517 Jean*0025 #include "FFIELDS.h"
fc7306ba7d Jean*0026 #include "THSICE_PARAMS.h"
87ea84cac6 Jean*0027 #include "THSICE_VARS.h"
e813f81630 Jean*0028 #ifdef ALLOW_AIM
0029 # include "AIM_FFIELDS.h"
0030 #endif
fc7306ba7d Jean*0031
87ea84cac6 Jean*0032
fc7306ba7d Jean*0033
e813f81630 Jean*0034
fc7306ba7d Jean*0035 INTEGER myThid
87ea84cac6 Jean*0036
fc7306ba7d Jean*0037
0038 #ifdef ALLOW_THSICE
0039
87ea84cac6 Jean*0040
0041
fc7306ba7d Jean*0042 INTEGER bi, bj
e813f81630 Jean*0043 INTEGER i, j
2cf110c259 Jean*0044
87ea84cac6 Jean*0045 _RL v2Loc
611a16e877 Dimi*0046 _RL Tf
fc7306ba7d Jean*0047
0048
e813f81630 Jean*0049 DO bj = myByLo(myThid), myByHi(myThid)
0050 DO bi = myBxLo(myThid), myBxHi(myThid)
87ea84cac6 Jean*0051
7269783f6f Jean*0052 DO j=1-OLy,sNy+OLy
0053 DO i=1-OLx,sNx+OLx
87ea84cac6 Jean*0054 iceMask(i,j,bi,bj) = 0. _d 0
0055 iceHeight(i,j,bi,bj)= 0. _d 0
fc7306ba7d Jean*0056 snowHeight(i,j,bi,bj)=0. _d 0
87ea84cac6 Jean*0057 Tsrf(i,j,bi,bj) = 0. _d 0
0058 Tice1(i,j,bi,bj) = 0. _d 0
0059 Tice2(i,j,bi,bj) = 0. _d 0
0060 Qice1(i,j,bi,bj) = 0. _d 0
0061 Qice2(i,j,bi,bj) = 0. _d 0
0062 snowAge(i,j,bi,bj) = 0. _d 0
0063 ENDDO
0064 ENDDO
0065
7269783f6f Jean*0066 DO j=1-OLy,sNy+OLy
0067 DO i=1-OLx,sNx+OLx
87ea84cac6 Jean*0068 sHeating(i,j,bi,bj) = 0. _d 0
0069 flxCndBt(i,j,bi,bj) = 0. _d 0
a4e6fa7055 Jean*0070 siceAlb(i,j,bi,bj) = 0. _d 0
7269783f6f Jean*0071 icFlxSW (i,j,bi,bj) = 0. _d 0
0072 icFlxAtm(i,j,bi,bj) = 0. _d 0
0073 icFrwAtm(i,j,bi,bj) = 0. _d 0
f6439efa9f Jean*0074
d6f06800ae Patr*0075 oceFWfx(i,j,bi,bj) = 0. _d 0
0076 oceSflx(i,j,bi,bj) = 0. _d 0
0077 oceQnet(i,j,bi,bj) = 0. _d 0
87ea84cac6 Jean*0078 ENDDO
0079 ENDDO
0080
0081 v2Loc = vMxL_default*vMxL_default
7269783f6f Jean*0082 DO j=1-OLy,sNy+OLy
0083 DO i=1-OLx,sNx+OLx
87ea84cac6 Jean*0084 hOceMxL(i,j,bi,bj) = hMxL_default
0085 tOceMxL(i,j,bi,bj) = 0. _d 0
0086 sOceMxL(i,j,bi,bj) = sMxL_default
0087 v2ocMxL(i,j,bi,bj) = v2Loc
fc7306ba7d Jean*0088 ENDDO
0089 ENDDO
e813f81630 Jean*0090 #ifdef ALLOW_AIM
0091 IF ( useAIM ) THEN
0092
0093
0094 DO j=1-OLy,sNy+OLy
0095 DO i=1-OLx,sNx+OLx
0096 IF ( aim_landFr(i,j,bi,bj).EQ.1. _d 0 )
0097 & hOceMxL(i,j,bi,bj) = 0.
0098 ENDDO
0099 ENDDO
0100 ENDIF
0101 #endif /* ALLOW_AIM */
fc7306ba7d Jean*0102 ENDDO
e813f81630 Jean*0103 ENDDO
de836be2bc Jean*0104 adjustFrW = 0. _d 0
fc7306ba7d Jean*0105
987916f561 Jean*0106
0107
60cad0f1a5 Jean*0108 #ifdef ALLOW_OCN_COMPON_INTERF
0109 IF ( useCoupler .AND. thSIce_skipThermo ) RETURN
0110 #endif /* ALLOW_OCN_COMPON_INTERF */
0111
5b187c067b Jean*0112 IF ( startIceModel.LE.0 .AND.
0113 & ( nIter0.NE.0 .OR. pickupSuff.NE.' ' )
0114 & ) THEN
fc7306ba7d Jean*0115
af20bc5e19 Jean*0116 CALL THSICE_READ_PICKUP( nIter0, myThid )
fc7306ba7d Jean*0117
987916f561 Jean*0118 ELSE
0119
187bb17f9b Dimi*0120 IF ( thSIceFract_InitFile .NE. ' ' ) THEN
0121 CALL READ_REC_XY_RL(thSIceFract_InitFile,iceMask,1,0,myThid)
611a16e877 Dimi*0122 ENDIF
0123 IF ( thSIceThick_InitFile .NE. ' ' ) THEN
0124 CALL READ_REC_XY_RL(thSIceThick_InitFile,iceHeight,1,0,myThid)
187bb17f9b Dimi*0125 ENDIF
987916f561 Jean*0126 IF ( thSIceSnowH_InitFile .NE. ' ' ) THEN
0127 CALL READ_REC_XY_RL(thSIceSnowH_InitFile,snowHeight,1,0,myThid)
0128 ENDIF
0129 IF ( thSIceSnowA_InitFile .NE. ' ' ) THEN
0130 CALL READ_REC_XY_RL(thSIceSnowA_InitFile,snowAge,1,0,myThid)
0131 ENDIF
0132 IF ( thSIceEnthp_InitFile .NE. ' ' ) THEN
0133 CALL READ_REC_XY_RL(thSIceEnthp_InitFile,Qice1,1,0,myThid)
0134 CALL READ_REC_XY_RL(thSIceEnthp_InitFile,Qice2,2,0,myThid)
611a16e877 Dimi*0135 ENDIF
0136 IF ( thSIceTsurf_InitFile .NE. ' ' ) THEN
b56aaa4b63 Jean*0137 CALL READ_REC_XY_RL(thSIceTsurf_InitFile,Tsrf,1,0,myThid)
611a16e877 Dimi*0138 ENDIF
0139 IF ( thSIceEnthp_InitFile .EQ. ' ' ) THEN
0140
ba0b047096 Mart*0141
552e00ed8a Dimi*0142
611a16e877 Dimi*0143 Tf = -1.70 _d 0
187bb17f9b Dimi*0144 DO bj = myByLo(myThid), myByHi(myThid)
0145 DO bi = myBxLo(myThid), myBxHi(myThid)
0146 DO j=1-OLy,sNy+OLy
0147 DO i=1-OLx,sNx+OLx
0148 IF (iceMask(i,j,bi,bj) .NE. 0. _d 0) THEN
611a16e877 Dimi*0149 Qice1(i,j,bi,bj) = -cpWater*Tmlt1
0150 & + cpIce *(Tmlt1-Tf) + Lfresh*(1. _d 0-Tmlt1/Tf)
0151 Qice2(i,j,bi,bj) = -cpIce *Tf + Lfresh
187bb17f9b Dimi*0152 ENDIF
0153 ENDDO
0154 ENDDO
0155 ENDDO
0156 ENDDO
987916f561 Jean*0157 ENDIF
0158 ENDIF
0159
7163a40534 Jean*0160 _EXCH_XY_RL(iceMask,myThid)
0161 _EXCH_XY_RL(iceHeight, myThid)
0162 _EXCH_XY_RL(snowHeight,myThid)
0163 _EXCH_XY_RL(Tsrf, myThid)
0164 _EXCH_XY_RL(Tice1, myThid)
0165 _EXCH_XY_RL(Tice2, myThid)
0166 _EXCH_XY_RL(Qice1, myThid)
0167 _EXCH_XY_RL(Qice2, myThid)
0168 _EXCH_XY_RL(snowAge,myThid)
fc7306ba7d Jean*0169
b25f5fd517 Jean*0170
611a16e877 Dimi*0171 IF ( useSEAICE ) THEN
0172 DO bj = myByLo(myThid), myByHi(myThid)
0173 DO bi = myBxLo(myThid), myBxHi(myThid)
0174 DO j=1-OLy,sNy+OLy
0175 DO i=1-OLx,sNx+OLx
0176 sIceLoad(i,j,bi,bj) = ( snowHeight(i,j,bi,bj)*rhos
0177 & + iceHeight(i,j,bi,bj)*rhoi
0178 & )*iceMask(i,j,bi,bj)
b25f5fd517 Jean*0179 ENDDO
611a16e877 Dimi*0180 ENDDO
0181 ENDDO
0182 ENDDO
0183 ENDIF
b25f5fd517 Jean*0184
fc7306ba7d Jean*0185 #endif /* ALLOW_THSICE */
0186
0187 RETURN
0188 END