File indexing completed on 2018-03-02 18:37:21 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
cdcb187d4c Jean*0001 #include "AIM_OPTIONS.h"
0002 #ifdef ALLOW_THSICE
0003 #include "THSICE_OPTIONS.h"
0004 #endif
0005
0006
0007
0008
0009 SUBROUTINE AIM_SICE2AIM(
9c764e2eeb Jean*0010 I land_frc,
6a69f6f181 Jean*0011 U aimTsoce, aimSIfrc,
9c764e2eeb Jean*0012 O aimTsice, aimAlb,
6a69f6f181 Jean*0013 I myTime, myIter, bi, bj, myThid )
cdcb187d4c Jean*0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 IMPLICIT NONE
0026
0027
0028
0029 #include "AIM_SIZE.h"
0030
0031
0032 #include "EEPARAMS.h"
0033 #include "PARAMS.h"
0034
0035
0036 #include "AIM_PARAMS.h"
0037 #include "com_forcon.h"
0038
0039 #ifdef ALLOW_THSICE
0040
0041 #include "THSICE_SIZE.h"
0042 #include "THSICE_PARAMS.h"
0043 #include "THSICE_VARS.h"
65d8b97200 Jean*0044 INTEGER siLo, siHi, sjLo, sjHi
0045 PARAMETER ( siLo = 1-OLx , siHi = sNx+OLx )
0046 PARAMETER ( sjLo = 1-OLy , sjHi = sNy+OLy )
22e821eefb Jean*0047 #endif /* ALLOW_THSICE */
431b7a8056 Jean*0048
cdcb187d4c Jean*0049
0050
0051
0052
0053
0054
0055
0056
0057
6a69f6f181 Jean*0058
cdcb187d4c Jean*0059
0060 _RS land_frc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0061 _RL aimTsoce(sNx,sNy)
0062 _RL aimSIfrc(sNx,sNy)
0063 _RL aimTsice(sNx,sNy)
0064 _RL aimAlb(sNx,sNy)
0065 INTEGER myIter, bi, bj, myThid
0066 _RL myTime
0067
0068
0069
0070
0071 #ifdef ALLOW_AIM
0072 #ifdef ALLOW_THSICE
0073
0074
0075
0076 INTEGER i,j
0077
0078 IF ( .TRUE. ) THEN
0079
0080 DO j=1,sNy
0081 DO i=1,sNx
0082 aimTsice(i,j) = Tsrf(i,j,bi,bj)+celsius2K
0083 aimSIfrc(i,j) = iceMask(i,j,bi,bj)
0084 ENDDO
0085 ENDDO
0086 ELSE
0087
0088 DO j=1,sNy
0089 DO i=1,sNx
0090 Tsrf (i,j,bi,bj) = aimTsice(i,j)-celsius2K
0091 Tice1(i,j,bi,bj) = Tsrf (i,j,bi,bj)
0092 Tice2(i,j,bi,bj) = Tsrf (i,j,bi,bj)
0093 iceMask(i,j,bi,bj) = aimSIfrc(i,j)
0094 ENDDO
0095 ENDDO
0096 ENDIF
0097
0098 IF ( .TRUE. ) THEN
6a69f6f181 Jean*0099
65d8b97200 Jean*0100 CALL THSICE_ALBEDO(
0101 I bi, bj, siLo, siHi, sjLo, sjHi,
0102 I 1, sNx, 1, sNy,
0103 I iceMask(siLo,sjLo,bi,bj), iceHeight(siLo,sjLo,bi,bj),
0104 I snowHeight(siLo,sjLo,bi,bj), Tsrf(siLo,sjLo,bi,bj),
0105 I snowAge(siLo,sjLo,bi,bj),
8d7aa9e635 Jean*0106 O siceAlb(siLo,sjLo,bi,bj), icAlbNIR(siLo,sjLo,bi,bj),
65d8b97200 Jean*0107 I myTime, myIter, myThid )
cdcb187d4c Jean*0108 DO j=1,sNy
0109 DO i=1,sNx
65d8b97200 Jean*0110 aimAlb(i,j) = siceAlb(i,j,bi,bj)
cdcb187d4c Jean*0111 ENDDO
0112 ENDDO
0113 ELSE
0114
0115 DO j=1,sNy
0116 DO i=1,sNx
0117 aimAlb(i,j) = ALBICE
0118 ENDDO
0119 ENDDO
0120 ENDIF
0121
9c764e2eeb Jean*0122
0123
0124
cdcb187d4c Jean*0125
6a69f6f181 Jean*0126 IF ( tauRelax_MxL .EQ. -1. _d 0
cdcb187d4c Jean*0127 & .OR. ( stepFwd_oceMxL .AND. StartIceModel.NE.0
0128 & .AND. myIter.EQ.nIter0 )
22e821eefb Jean*0129 & .OR. ( myIter.EQ.0 .AND. myTime.EQ.baseTime
0130 & .AND. .NOT.useCoupler )
cdcb187d4c Jean*0131 & ) THEN
0132 DO j=1,sNy
0133 DO i=1,sNx
0134 IF ( land_frc(i,j,bi,bj) .LT. 1. _d 0 ) THEN
0135 tOceMxL(i,j,bi,bj) = aimTsoce(i,j)-celsius2K
0136 sOceMxL(i,j,bi,bj) = sMxL_default
0137 ENDIF
0138 ENDDO
0139 ENDDO
6a69f6f181 Jean*0140 IF ( myIter.EQ.nIter0 ) THEN
0141
0142 CALL WRITE_LOCAL_RL( 'ice_tOceMxL', 'I10', 1,
22e821eefb Jean*0143 & tOceMxL(1-OLx,1-OLy,bi,bj),
6a69f6f181 Jean*0144 & bi, bj, 1, myIter, myThid )
0145 CALL WRITE_LOCAL_RL( 'ice_sOceMxL', 'I10', 1,
22e821eefb Jean*0146 & sOceMxL(1-OLx,1-OLy,bi,bj),
6a69f6f181 Jean*0147 & bi, bj, 1, myIter, myThid )
0148 ENDIF
9c764e2eeb Jean*0149 ELSE
0150
0151 DO j=1,sNy
0152 DO i=1,sNx
0153 IF ( land_frc(i,j,bi,bj) .LT. 1. _d 0 ) THEN
0154 aimTsoce(i,j) = tOceMxL(i,j,bi,bj)+celsius2K
0155 ENDIF
0156 ENDDO
0157 ENDDO
cdcb187d4c Jean*0158 ENDIF
0159
0160 #endif /* ALLOW_THSICE */
0161 #endif /* ALLOW_AIM */
0162
0163 RETURN
0164 END