Changeset 2098 for LMDZ5/trunk/libf/phylmd
- Timestamp:
- Jul 22, 2014, 12:51:23 PM (10 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/calbeta_clim.F90
r1907 r2098 5 5 6 6 SUBROUTINE calbeta_clim(klon,time,lat_radian,beta) 7 8 !======================================================================9 ! Auteur(s): A.K. TRAORE10 !======================================================================11 !USE phys_local_var_mod, ONLY : ideal_beta !pour faire la variable dans le12 ! physiq.f pour des sorties directes de beta13 !==============================================14 7 15 implicit none 16 integer klon,nt,j,it 17 real logbeta(klon),pi 18 real lat(klon),lat_radian(klon) 19 integer time 20 real time_radian 21 real lat_sahel,beta(klon) 22 real lat_nord,lat_sud 23 !============================================== 8 !====================================================================== 9 ! Auteur(s): A.K. TRAORE 10 !====================================================================== 24 11 25 pi=2.*asin(1.) 26 beta=0. 27 28 !calcul des cordonnees 12 !USE phys_local_var_mod, ONLY : ideal_beta !pour faire la variable dans le 13 ! physiq.f pour des sorties directes de beta 29 14 30 ! print*,'LATITUDES BETA ',lat_radian 31 time_radian=(time+15.)*2.*pi/360. 15 USE phys_cal_mod, only: year_len 32 16 33 print*,'BETA time_radian',time_radian,time 17 implicit none 18 integer klon,nt,j,it 19 real logbeta(klon),pi 20 real lat(klon),lat_radian(klon) 21 integer time 22 real time_radian 23 real lat_sahel,beta(klon) 24 real lat_nord,lat_sud 25 !============================================== 34 26 35 lat(:)=180.*lat_radian(:)/pi !lat(:)=lat_radian(:) 36 37 lat_sahel=-5*sin(time_radian)+13 38 lat_nord=lat_sahel+25. 39 lat_sud=lat_sahel-25. 40 do j=1,klon 41 !=========== 42 if (lat(j) < 5. ) then 43 44 logbeta(j)=0.2*(lat(j)-lat_sud)-1.6 45 beta(j)=10**(logbeta(j)) 46 beta(j)=max(beta(j),0.03) 47 beta(j)=min(beta(j),0.22) 48 ! print*,'j,lat,lat_radian,beta',j,lat(j),lat_radian(j),beta(j) 49 !=========== 50 elseif (lat(j) < 22.) then !lat(j)<22. 51 52 logbeta(j)=-0.25*(lat(j)-lat_sahel)-1.6 53 beta(j)=10**(logbeta(j)) 54 beta(j)=max(beta(j),1.e-2) 55 beta(j)=min(beta(j),0.22) 56 ! print*,'j,lat,lat_radian,beta',j,lat(j),lat_radian(j),beta(j) 57 !=========== 58 else 59 logbeta(j)=0.25*(lat(j)-lat_nord)-1. 60 beta(j)=10**(logbeta(j)) 61 beta(j)=max(beta(j),1.e-2) 62 beta(j)=min(beta(j),0.25) 63 ! print*,'j,lat,lat_radian,beta',j,lat(j),lat_radian(j),beta(j) 64 endif 65 !=========== 66 enddo 67 end 27 pi=2.*asin(1.) 28 beta=0. 29 30 !calcul des cordonnees 31 32 ! print*,'LATITUDES BETA ',lat_radian 33 time_radian=(time+15.)*2.*pi / year_len 34 35 print*,'BETA time_radian',time_radian,time 36 37 lat(:)=180.*lat_radian(:)/pi !lat(:)=lat_radian(:) 38 39 lat_sahel=-5*sin(time_radian)+13 40 lat_nord=lat_sahel+25. 41 lat_sud=lat_sahel-25. 42 do j=1,klon 43 !=========== 44 if (lat(j) < 5. ) then 45 46 logbeta(j)=0.2*(lat(j)-lat_sud)-1.6 47 beta(j)=10**(logbeta(j)) 48 beta(j)=max(beta(j),0.03) 49 beta(j)=min(beta(j),0.22) 50 ! print*,'j,lat,lat_radian,beta',j,lat(j),lat_radian(j),beta(j) 51 !=========== 52 elseif (lat(j) < 22.) then !lat(j)<22. 53 54 logbeta(j)=-0.25*(lat(j)-lat_sahel)-1.6 55 beta(j)=10**(logbeta(j)) 56 beta(j)=max(beta(j),1.e-2) 57 beta(j)=min(beta(j),0.22) 58 ! print*,'j,lat,lat_radian,beta',j,lat(j),lat_radian(j),beta(j) 59 !=========== 60 else 61 logbeta(j)=0.25*(lat(j)-lat_nord)-1. 62 beta(j)=10**(logbeta(j)) 63 beta(j)=max(beta(j),1.e-2) 64 beta(j)=min(beta(j),0.25) 65 ! print*,'j,lat,lat_radian,beta',j,lat(j),lat_radian(j),beta(j) 66 endif 67 !=========== 68 enddo 69 70 end SUBROUTINE calbeta_clim -
LMDZ5/trunk/libf/phylmd/minmaxqfi.F90
r1907 r2098 14 14 INTEGER,DIMENSION(klon) :: jadrs 15 15 INTEGER :: i, jbad, k 16 17 include "iniprint.h" 16 18 17 19 DO k = 1, klev … … 24 26 ENDDO 25 27 IF (jbad.GT.0) THEN 26 WRITE(*,*)comment 27 DO i = 1, jbad 28 WRITE(*,*) "i,k,q=", jadrs(i),k,zq(jadrs(i),k) 29 ENDDO 28 WRITE(*,*)comment, "k = ", k, "jbad > 0" 29 if (prt_level >= 1) then 30 DO i = 1, jbad 31 WRITE(*,*) "i,q=", jadrs(i), zq(jadrs(i),k) 32 ENDDO 33 end if 30 34 ENDIF 31 35 ENDDO -
LMDZ5/trunk/libf/phylmd/phys_cal_mod.F90
r1907 r2098 10 10 INTEGER :: days_elapsed ! number of whole days since start of the simulation 11 11 INTEGER :: mth_len ! number of days in the current month 12 INTEGER year_len ! number of days in the current year 12 13 REAL :: hour 13 14 REAL :: jD_1jan … … 21 22 ! This subroutine updates the module saved variables. 22 23 23 USE IOIPSL 24 USE IOIPSL, only: ju2ymds, ymds2ju, ioget_mon_len, ioget_year_len 24 25 25 26 REAL, INTENT(IN) :: jD_cur ! jour courant a l'appel de la physique (jour julien) … … 37 38 mth_len = ioget_mon_len(year_cur,mth_cur) 38 39 40 year_len = ioget_year_len(year_cur) 41 39 42 END SUBROUTINE phys_cal_update 40 43 -
LMDZ5/trunk/libf/phylmd/physiq.F90
r2090 r2098 11 11 12 12 USE ioipsl, only: histbeg, histvert, histdef, histend, histsync, & 13 histwrite, ju2ymds, ymds2ju, ioget_year_len,getin13 histwrite, ju2ymds, ymds2ju, getin 14 14 USE comgeomphy 15 USE phys_cal_mod 15 USE phys_cal_mod, only: year_len, mth_len, days_elapsed, jh_1jan, year_cur, & 16 mth_cur, phys_cal_update 16 17 USE write_field_phy 17 18 USE dimphy … … 1576 1577 ! Ozone from a file 1577 1578 ! Update required ozone index: 1578 ro3i = int((days_elapsed + jh_cur - jh_1jan) / ioget_year_len(year_cur) & 1579 * 360.) + 1 1579 ro3i = int((days_elapsed + jh_cur - jh_1jan) / year_len * 360.) + 1 1580 1580 if (ro3i == 361) ro3i = 360 1581 1581 ! (This should never occur, except perhaps because of roundup
Note: See TracChangeset
for help on using the changeset viewer.