File indexing completed on 2021-12-14 06:10:29 UTC
view on githubraw file Latest commit 73a44896 on 2021-10-25 03:57:51 UTC
3fd4b811ee Jean*0001 #include "ATM_CPL_OPTIONS.h"
5a2fc21c93 Jean*0002
0003
0004
0005
10dcab6431 Jean*0006 SUBROUTINE ATM_APPLY_IMPORT(
5a2fc21c93 Jean*0007 I land_frc,
10dcab6431 Jean*0008 U atmSST, atmSIfrc,
5a2fc21c93 Jean*0009 I myTime, myIter, bi, bj, myThid )
0010
0011
0012
0013
10dcab6431 Jean*0014
5a2fc21c93 Jean*0015
0016
10dcab6431 Jean*0017
5a2fc21c93 Jean*0018
0019
0020
0021
0022 IMPLICIT NONE
0023
0024
0025 #include "SIZE.h"
0026 #include "EEPARAMS.h"
0027 #include "PARAMS.h"
0028 #include "CPL_PARAMS.h"
0029
0030 #ifdef ALLOW_THSICE
0031 # include "THSICE_VARS.h"
0032 #endif
0033
0034
0035 #include "ATMCPL.h"
0036
0037
0038
0039
10dcab6431 Jean*0040
0041
5a2fc21c93 Jean*0042
0043
0044
0045
0046 _RS land_frc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
10dcab6431 Jean*0047 _RL atmSST (sNx,sNy)
0048 _RL atmSIfrc(sNx,sNy)
5a2fc21c93 Jean*0049 _RL myTime
0050 INTEGER myIter, bi, bj, myThid
0051
0052
0053
0054
0055 #ifdef COMPONENT_MODULE
0056
0057
0058 INTEGER i,j
0059
0060 #ifdef ALLOW_THSICE
353165edec Jean*0061 IF ( useImportThSIce .AND. useThSIce ) THEN
0062 IF ( MOD(myIter,cplSendFrq_iter).EQ.0 ) THEN
0063
0064 DO j=1,sNy
0065 DO i=1,sNx
0066 iceMask (i,j,bi,bj) = sIceFrac_cpl (i,j,bi,bj)
0067 iceHeight (i,j,bi,bj) = sIceThick_cpl(i,j,bi,bj)
0068 snowHeight(i,j,bi,bj) = sIceSnowH_cpl(i,j,bi,bj)
0069 Qice1 (i,j,bi,bj) = sIceQ1_cpl (i,j,bi,bj)
0070 Qice2 (i,j,bi,bj) = sIceQ2_cpl (i,j,bi,bj)
0071 ENDDO
0072 ENDDO
0073 ENDIF
0074
0075 ENDIF
0076 #endif /* ALLOW_THSICE */
0077
0078 #ifdef ALLOW_THSICE
5a2fc21c93 Jean*0079 IF ( useThSIce ) THEN
0080
0081
0082
10dcab6431 Jean*0083 IF ( useImportMxlD ) THEN
5a2fc21c93 Jean*0084 DO j=1,sNy
0085 DO i=1,sNx
0086 IF ( land_frc(i,j,bi,bj) .LT. 1. ) THEN
0087 hOceMxL(i,j,bi,bj) = ocMxlD(i,j,bi,bj)
0088 ENDIF
0089 ENDDO
0090 ENDDO
0091 ENDIF
0092
0093
10dcab6431 Jean*0094 IF ( useImportSST ) THEN
5a2fc21c93 Jean*0095 DO j=1,sNy
0096 DO i=1,sNx
0097 IF ( land_frc(i,j,bi,bj) .LT. 1. ) THEN
0098 tOceMxL(i,j,bi,bj) = SSTocn(i,j,bi,bj)
0099 ENDIF
0100 ENDDO
0101 ENDDO
0102 ENDIF
0103
0104
10dcab6431 Jean*0105 IF ( useImportSSS ) THEN
5a2fc21c93 Jean*0106 DO j=1,sNy
0107 DO i=1,sNx
0108 IF ( land_frc(i,j,bi,bj) .LT. 1. ) THEN
0109 sOceMxL(i,j,bi,bj) = SSSocn(i,j,bi,bj)
0110 ENDIF
0111 ENDDO
0112 ENDDO
0113 ENDIF
0114
0115
10dcab6431 Jean*0116 IF ( useImportVsq ) THEN
5a2fc21c93 Jean*0117 DO j=1,sNy
0118 DO i=1,sNx
0119 IF ( land_frc(i,j,bi,bj) .LT. 1. ) THEN
0120 v2ocMxL(i,j,bi,bj) = vSqocn(i,j,bi,bj)
0121 ENDIF
0122 ENDDO
0123 ENDDO
0124 ENDIF
0125
10dcab6431 Jean*0126 ELSEIF ( useAtm_Phys ) THEN
353165edec Jean*0127 #else /* ALLOW_THSICE */
10dcab6431 Jean*0128 IF ( useAtm_Phys ) THEN
5a2fc21c93 Jean*0129 #endif /* ALLOW_THSICE */
10dcab6431 Jean*0130
0131
0132 IF ( useImportSST ) THEN
0133 DO j=1,sNy
0134 DO i=1,sNx
73a448969e Jean*0135 IF ( ocMxlD(i,j,bi,bj) .GT. 0. ) THEN
10dcab6431 Jean*0136 atmSST(i,j) = SSTocn(i,j,bi,bj)+celsius2K
73a448969e Jean*0137 ENDIF
10dcab6431 Jean*0138 ENDDO
0139 ENDDO
0140 ENDIF
0141
0142 ELSE
0143
5a2fc21c93 Jean*0144
0145 IF ( useImportSST ) THEN
0146 DO j=1,sNy
0147 DO i=1,sNx
0148 IF ( land_frc(i,j,bi,bj) .LT. 1. ) THEN
0149
0150
10dcab6431 Jean*0151 IF ( atmSIfrc(i,j).EQ.0. ) THEN
0152 atmSST(i,j) = SSTocn(i,j,bi,bj)+celsius2K
5a2fc21c93 Jean*0153 ELSEIF ( SSTocn(i,j,bi,bj).GE. -1. _d 0) THEN
0154
0155
10dcab6431 Jean*0156 atmSST(i,j) = SSTocn(i,j,bi,bj)+celsius2K
0157 atmSIfrc(i,j) = 0.
5a2fc21c93 Jean*0158 ENDIF
0159
0160 ENDIF
0161 ENDDO
0162 ENDDO
0163 ENDIF
0164
0165
0166 ENDIF
0167
0168 #endif /* COMPONENT_MODULE */
0169
0170 RETURN
0171 END