2 |
|
|
3 |
IMPLICIT NONE |
IMPLICIT NONE |
4 |
|
|
5 |
real, parameter:: kap = 0.4 |
real, parameter, private:: kap = 0.4 |
|
private |
|
|
public yamada4 |
|
6 |
|
|
7 |
contains |
contains |
8 |
|
|
31 |
! température potentielle au centre de chaque couche (en entrée : |
! température potentielle au centre de chaque couche (en entrée : |
32 |
! la valeur au début du pas de temps) |
! la valeur au début du pas de temps) |
33 |
|
|
34 |
REAL cd(klon) ! cdrag (en entrée : la valeur au début du pas de temps) |
REAL, intent(in):: cd(:) ! (ngrid) cdrag, valeur au début du pas de temps |
35 |
|
|
36 |
REAL, intent(inout):: q2(klon, klev+1) |
REAL, intent(inout):: q2(klon, klev+1) |
37 |
! $q^2$ au bas de chaque couche |
! $q^2$ au bas de chaque couche |
341 |
|
|
342 |
!******************************************************************* |
!******************************************************************* |
343 |
|
|
344 |
function frif(ri) |
real function frif(ri) |
345 |
|
|
|
real frif |
|
346 |
real, intent(in):: ri |
real, intent(in):: ri |
347 |
|
|
348 |
frif = 0.6588*(ri+0.1776-sqrt(ri*ri-0.3221*ri+0.03156)) |
frif = 0.6588*(ri+0.1776-sqrt(ri*ri-0.3221*ri+0.03156)) |
351 |
|
|
352 |
!******************************************************************* |
!******************************************************************* |
353 |
|
|
354 |
function falpha(ri) |
real function falpha(ri) |
355 |
|
|
|
real falpha |
|
356 |
real, intent(in):: ri |
real, intent(in):: ri |
357 |
|
|
358 |
falpha = 1.318*(0.2231-ri)/(0.2341-ri) |
falpha = 1.318*(0.2231-ri)/(0.2341-ri) |
361 |
|
|
362 |
!******************************************************************* |
!******************************************************************* |
363 |
|
|
364 |
function fsm(ri) |
real function fsm(ri) |
365 |
|
|
|
real fsm |
|
366 |
real, intent(in):: ri |
real, intent(in):: ri |
367 |
|
|
368 |
fsm = 1.96*(0.1912-ri)*(0.2341-ri)/((1.-ri)*(0.2231-ri)) |
fsm = 1.96*(0.1912-ri)*(0.2341-ri)/((1.-ri)*(0.2231-ri)) |
371 |
|
|
372 |
!******************************************************************* |
!******************************************************************* |
373 |
|
|
374 |
function fl(zzz, zl0, zq2, zn2) |
real function fl(zzz, zl0, zq2, zn2) |
375 |
|
|
|
real fl |
|
376 |
real, intent(in):: zzz, zl0, zq2, zn2 |
real, intent(in):: zzz, zl0, zq2, zn2 |
377 |
|
|
378 |
fl = max(min(zl0 * kap * zzz / (kap * zzz + zl0), & |
fl = max(min(zl0 * kap * zzz / (kap * zzz + zl0), & |