init_be Subroutine

subroutine init_be(pctsrf, pplay, masktr, tautr, vdeptr, scavtr, srcbe)

Uses

  • proc~~init_be~~UsesGraph proc~init_be init_be module~yomcst_mod_h yomcst_mod_h proc~init_be->module~yomcst_mod_h module~dimphy~3 dimphy proc~init_be->module~dimphy~3 module~indice_sol_mod indice_sol_mod proc~init_be->module~indice_sol_mod module~geometry_mod geometry_mod proc~init_be->module~geometry_mod module~yoecumf_mod_h yoecumf_mod_h proc~init_be->module~yoecumf_mod_h

!SUBROUTINE init_be(pctsrf,masktr,tautr,vdeptr,scavtr,srcbe)

! Source actuellement definie pour klev = 19 et klev >= 39 IF (klev /= 19 .AND. klev<39) CALL abort_physic("init_be","Source du be7 necessite klev=19 ou klev>=39",1) !

!!!jyg le 13/03/2013; puis 20/03/2013 : pref est maintenant une table. ! ! Recherche d'un point rlat=0., rlon=180. iref=(klon+1)/2 DO i = 1,klon IF (abs(rlatd(i)) .LT. 0.15 .AND. cos(rlond(i)) .LT. -0.85) iref=i ENDDO ! ! Grille de pression de reference (= approx de sommets de couches) pref(1) = pplay(iref,1)+0.5(pplay(iref,1)-pplay(iref,2)) DO k = 2,klev pref(k) = 0.5(pplay(iref,k-1)+pplay(iref,k)) ENDDO !

jyg qcos=qcos+cos(glt)cos(latitude(i))cos(longitude(i)+glg) jyg end !=========================== ! Cas 19 niveaux verticaux !=========================== IF (klev.eq.19) then DO k = 1,klev DO i = 1,klon !!!jyg le 13/03/2013 ! ! k est le niveau dans la grille locale ! Determination du niveau kref dans la grille de refernce kref = 1 DO k2 = 1,klev IF (pref(k2) .GT. pplay(i,k)) kref=k2 ENDDO !!! latgeo=(180./rpi)*abs(rlatgeo(i)) IF ( kref .EQ. 1 ) THEN IF (latgeo.GE.50.0) srcbe(i,k)=0.1 IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=0.09 IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=0.07 END IF IF ( kref .EQ. 2 ) THEN IF (latgeo.GE.50.0) srcbe(i,k)=0.12 IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=0.1 IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=0.09 IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=0.07 END IF IF ( kref .EQ. 3 ) THEN IF (latgeo.GE.50.0) srcbe(i,k)=0.14 IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=0.12 IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=0.1 IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=0.09 IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=0.07 END IF IF ( kref .EQ. 4 ) THEN IF (latgeo.GE.50.0) srcbe(i,k)=0.175 IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=0.16 IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=0.14 IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=0.12 IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=0.1 IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=0.09 END IF IF ( kref .EQ. 5 ) THEN IF (latgeo.GE.50.0) srcbe(i,k)=0.28 IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=0.26 IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=0.23 IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=0.175 IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=0.14 IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=0.12 END IF IF ( kref .EQ. 6 ) THEN IF (latgeo.GE.50.0) srcbe(i,k)=0.56 IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=0.49 IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=0.42 IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=0.28 IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=0.26 IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=0.245 END IF IF ( kref .EQ. 7 ) THEN IF (latgeo.GE.50.0) srcbe(i,k)=1.05 IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=0.875 IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=0.7 IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=0.52 IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=0.44 IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=0.385 END IF IF ( kref .EQ. 8 ) THEN IF (latgeo.GE.50.0) srcbe(i,k)=2. IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=1.8 IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=1.5 IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=1. IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=0.8 IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=0.75 END IF IF ( kref .EQ. 9 ) THEN IF (latgeo.GE.50.0) srcbe(i,k)=4. IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=3.5 IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=3. IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=2.5 IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=1.8 IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=1.4 END IF IF ( kref .EQ. 10 ) THEN IF (latgeo.GE.50.0) srcbe(i,k)=8.5 IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=8. IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=7. IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=4.5 IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=3.5 IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=3. END IF IF ( kref .EQ. 11 ) THEN IF (latgeo.GE.50.0) srcbe(i,k)=17. IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=15. IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=11. IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=8. IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=5. IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=4. END IF IF ( kref .EQ. 12 ) THEN IF (latgeo.GE.50.0) srcbe(i,k)=25. IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=22. IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=17. IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=11. IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=7.5 IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=7. END IF IF ( kref .EQ. 13 ) THEN IF (latgeo.GE.60.0) srcbe(i,k)=33. IF (latgeo.GE.50.0 .and. latgeo.LT.60.0) srcbe(i,k)=32. IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=30. IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=22. IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=15. IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=11. IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=8. END IF IF ( kref .EQ. 14 ) THEN IF (latgeo.GE.60.0) srcbe(i,k)=48. IF (latgeo.GE.50.0 .and. latgeo.LT.60.0) srcbe(i,k)=45. IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=36. IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=26. IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=17.5 IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=12.5 IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=10. END IF IF ( kref .EQ. 15 ) THEN IF (latgeo.GE.70.0) srcbe(i,k)=58. IF (latgeo.GE.60.0 .and. latgeo.LT.70.0) srcbe(i,k)=57. IF (latgeo.GE.50.0 .and. latgeo.LT.60.0) srcbe(i,k)=50. IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=38. IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=25. IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=15. IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=12.5 IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=10. END IF IF ( kref .EQ. 16 ) THEN IF (latgeo.GE.70.0) srcbe(i,k)=70. IF (latgeo.GE.60.0 .and. latgeo.LT.70.0) srcbe(i,k)=65. IF (latgeo.GE.50.0 .and. latgeo.LT.60.0) srcbe(i,k)=50. IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=32. IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=20. IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=13. IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=9. IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=7.5 END IF IF ( kref .GE. 17 ) THEN IF (latgeo.GE.70.0) srcbe(i,k)=80. IF (latgeo.GE.60.0 .and. latgeo.LT.70.0) srcbe(i,k)=70. IF (latgeo.GE.50.0 .and. latgeo.LT.60.0) srcbe(i,k)=45. IF (latgeo.GE.40.0 .and. latgeo.LT.50.0) srcbe(i,k)=27. IF (latgeo.GE.30.0 .and. latgeo.LT.40.0) srcbe(i,k)=17.5 IF (latgeo.GE.20.0 .and. latgeo.LT.30.0) srcbe(i,k)=12. IF (latgeo.GE.10.0 .and. latgeo.LT.20.0) srcbe(i,k)=8. IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=7. END IF END DO END DO END IF ! fin de 19 niveaux verticaux

!!!! IF (klev .ge. 39) then !jyg le 13/03/2013

! jyg IF (latgeo.GE.0.0 .and. latgeo.LT.10.0) srcbe(i,k)=6. jyg end !!!! END IF ! fin de 39 niveaux verticaux

   print *,'  k, srcbe(i,k) ',   &
              k, srcbe(i,k)

Arguments

Type IntentOptional Attributes Name
real, intent(in), DIMENSION(klon,nbsrf) :: pctsrf
real, intent(in), DIMENSION(klon,klev) :: pplay
real, intent(out), DIMENSION(klon) :: masktr
real, intent(out) :: tautr
real, intent(out) :: vdeptr
real, intent(out) :: scavtr
real, intent(out), DIMENSION(klon,klev) :: srcbe

! INTEGER :: iref ! numero d'un point oceanique donnant la grille de pression de reference


Called by

proc~~init_be~~CalledByGraph proc~init_be init_be proc~traclmdz_init traclmdz_init proc~traclmdz_init->proc~init_be proc~traclmdz_init~2 traclmdz_init proc~traclmdz_init~2->proc~init_be proc~phytrac phytrac proc~phytrac->proc~traclmdz_init proc~phytrac~2 phytrac proc~phytrac~2->proc~traclmdz_init proc~physiq physiq proc~physiq->proc~phytrac proc~physiq~2 physiq proc~physiq~2->proc~phytrac proc~old_lmdz1d old_lmdz1d proc~old_lmdz1d->proc~physiq proc~call_physiq call_physiq proc~call_physiq->proc~physiq proc~call_physiq~2 call_physiq proc~call_physiq~2->proc~physiq proc~scm scm proc~scm->proc~physiq program~lmdz1d lmdz1d program~lmdz1d->proc~old_lmdz1d program~lmdz1d->proc~scm proc~calfis calfis proc~calfis->proc~call_physiq proc~leapfrog leapfrog proc~leapfrog->proc~calfis program~gcm~2 gcm program~gcm~2->proc~leapfrog

Contents