6 SUBROUTINE mod1d_n (DGO, O, OR, SG, S, &
7 hprogram,ptime,pemis,pdir_alb,psca_alb,plw,psca_sw,&
8 pdir_sw, psfth,psftq,psfu,psfv,prain,psst )
61 USE modi_diag_inline_ocean_n
66 USE yomhook
,ONLY : lhook, dr_hook
67 USE parkind1
,ONLY : jprb
76 TYPE(ocean_t),
INTENT(INOUT) :: o
81 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
82 REAL ,
INTENT(IN) :: ptime
83 REAL,
DIMENSION(:) ,
INTENT(IN) :: pemis
84 REAL,
DIMENSION(:,:),
INTENT(IN) :: pdir_alb
85 REAL,
DIMENSION(:,:),
INTENT(IN) :: psca_alb
86 REAL,
DIMENSION(:) ,
INTENT(IN) :: plw
87 REAL,
DIMENSION(:,:),
INTENT(IN) :: psca_sw
88 REAL,
DIMENSION(:,:),
INTENT(IN) :: pdir_sw
89 REAL,
DIMENSION(:) ,
INTENT(IN) :: psfth
90 REAL,
DIMENSION(:) ,
INTENT(IN) :: psftq
91 REAL,
DIMENSION(:) ,
INTENT(IN) :: psfu
92 REAL,
DIMENSION(:) ,
INTENT(IN) :: psfv
93 REAL,
DIMENSION(:) ,
INTENT(IN) :: prain
95 REAL,
DIMENSION(:) ,
INTENT(INOUT) :: psst
100 INTEGER :: itime,nocean_step
101 REAL,
DIMENSION(SIZE(PSFTH)) :: zfsol,zfnsol
102 REAL,
DIMENSION(SIZE(PSFTH)) :: zsfteau
103 REAL,
DIMENSION(SIZE(PSFTH)) :: zlv
105 REAL,
DIMENSION(SIZE(PSFTH)) :: zlwu
106 REAL,
DIMENSION(SIZE(PDIR_ALB,1),SIZE(PDIR_ALB,2)) :: zswu
109 REAL,
DIMENSION(SIZE(PSFTH)) :: zseatemp
111 LOGICAL :: gcallmixt, gtimeok
113 REAL(KIND=JPRB) :: zhook_handle
117 IF (lhook) CALL dr_hook(
'MOD1D_N',0,zhook_handle)
122 nocean_step=int(o%XOCEAN_TSTEP)
124 gtimeok=(mod(itime,nocean_step)==0)
125 gcallmixt=((mod(itime,nocean_step)==0).AND.(o%NOCTCOUNT>0))
136 zswu(jpt,:)= pdir_sw(jpt,:) * pdir_alb(jpt,:) + psca_sw(jpt,:)*psca_alb(jpt,:)
138 zfsol(jpt)=(sum(pdir_sw(jpt,:))+sum(psca_sw(jpt,:))-sum(zswu(jpt,:)))/(xrhosw*xcpsw)
140 zlwu(jpt)= pemis(jpt)*xstefan*psst(jpt)**4 + (1-pemis(jpt))*plw(jpt)
142 IF (psst(jpt)<=(xtt-2))
THEN
143 zfnsol(jpt)=(plw(jpt)-zlwu(jpt)-psfth(jpt)-(xlstt*psftq(jpt)))/(xrhosw*xcpsw)
144 zsfteau(jpt)=psftq(jpt)/xrhoswref
146 zlv(jpt)=xlvtt+(xcpv-xcl)*(psst(jpt)-xtt)
147 zfnsol(jpt)=(plw(jpt)-zlwu(jpt)-psfth(jpt)-(zlv(jpt)*psftq(jpt)))/(xrhosw*xcpsw)
148 zsfteau(jpt)=(psftq(jpt)-prain(jpt))/xrhoswref
156 IF (or%LFLUX_NULL)
THEN
157 WRITE(iluout,*)
'Caution : SURFACE FLUX ARE SET TO 0 '
164 zfsol,zfnsol,zsfteau,psfu,psfv,zseatemp)
178 o%NOCTCOUNT=o%NOCTCOUNT+1
181 IF (lhook) CALL dr_hook(
'MOD1D_N',1,zhook_handle)
subroutine diag_inline_ocean_n(DGO, O, S)
subroutine mixtl_n(O, OR, SG, PFSOL, PFNSOL, PSFTEAU, PSFU, PSFV, PSEATEMP)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine mod1d_n(DGO, O, OR, SG, S, HPROGRAM, PTIME, PEMIS, PDIR_ALB, PSCA_ALB, PLW, PSCA_SW, PDIR_SW, PSFTH, PSFTQ, PSFU, PSFV, PRAIN, PSST)