Changeset 2258 for LMDZ5/branches/testing/libf/dyn3dmem/gcm.F
- Timestamp:
- Apr 13, 2015, 10:21:09 AM (10 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 2218,2221-2237
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/dyn3dmem/gcm.F
r2187 r2258 1 1 ! 2 ! $Id $2 ! $Id: $ 3 3 ! 4 4 c … … 23 23 ! Only INCA needs these informations (from the Earth's physics) 24 24 USE indice_sol_mod 25 USE mod_phys_lmdz_omp_data, ONLY: klon_omp 25 26 #endif 26 27 27 28 #ifdef CPP_PHYS 28 USE mod_grid_phy_lmdz 29 USE mod_phys_lmdz_para, ONLY : klon_mpi_para_nb 30 USE mod_phys_lmdz_omp_data, ONLY: klon_omp 31 USE dimphy 32 USE comgeomphy 29 ! USE mod_grid_phy_lmdz 30 ! USE mod_phys_lmdz_para, ONLY : klon_mpi_para_nb 31 ! USE dimphy 32 ! USE comgeomphy 33 33 #endif 34 34 IMPLICIT NONE … … 83 83 #endif 84 84 85 INTEGER longcles86 PARAMETER ( longcles = 20 )87 REAL clesphy0( longcles )88 SAVE clesphy089 90 91 92 85 REAL zdtvr 93 86 … … 111 104 112 105 LOGICAL lafin 113 c INTEGER ij,iq,l,i,j114 INTEGER i,j115 116 106 117 107 real time_step, t_wrt, t_ops 118 119 120 LOGICAL call_iniphys121 data call_iniphys/.true./122 108 123 109 c+jld variables test conservation energie … … 142 128 143 129 c----------------------------------------------------------------------- 144 c variables pour l'initialisation de la physique :145 c ------------------------------------------------146 INTEGER ngridmx147 PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm )148 REAL zcufi(ngridmx),zcvfi(ngridmx)149 REAL latfi(ngridmx),lonfi(ngridmx)150 REAL airefi(ngridmx)151 SAVE latfi, lonfi, airefi152 153 INTEGER :: ierr154 155 156 c-----------------------------------------------------------------------157 130 c Initialisations: 158 131 c ---------------- … … 171 144 c --------------------------------------- 172 145 c 173 ! Ehouarn: dump possibility of using defrun 174 !#ifdef CPP_IOIPSL 175 CALL conf_gcm( 99, .TRUE. , clesphy0 ) 146 CALL conf_gcm( 99, .TRUE. ) 176 147 if (mod(iphysiq, iperiod) /= 0) call abort_gcm("conf_gcm", 177 148 s "iphysiq must be a multiple of iperiod", 1) 178 !#else179 ! CALL defrun( 99, .TRUE. , clesphy0 )180 !#endif181 149 c 182 150 c … … 192 160 #ifdef CPP_PHYS 193 161 CALL Init_Phys_lmdz(iim,jjp1,llm,mpi_size,distrib_phys) 194 #endif 162 !#endif 163 ! CALL set_bands 164 !#ifdef CPP_PHYS 165 CALL Init_interface_dyn_phys 166 #endif 167 CALL barrier 168 195 169 CALL set_bands 196 #ifdef CPP_PHYS197 CALL Init_interface_dyn_phys198 #endif199 CALL barrier200 201 170 if (mpi_rank==0) call WriteBands 202 171 call Set_Distrib(distrib_caldyn) … … 206 175 c$OMP END PARALLEL 207 176 208 #ifdef CPP_PHYS209 c$OMP PARALLEL210 call InitComgeomphy 211 c$OMP END PARALLEL212 #endif177 !#ifdef CPP_PHYS 178 !c$OMP PARALLEL 179 ! call InitComgeomphy ! now done in iniphysiq 180 !c$OMP END PARALLEL 181 !#endif 213 182 214 183 c----------------------------------------------------------------------- … … 225 194 call ioconf_calendar('noleap') 226 195 write(lunout,*)'CALENDRIER CHOISI: Terrestre a 365 jours/an' 227 else if (calend == ' earth_366d') then196 else if (calend == 'gregorian') then 228 197 call ioconf_calendar('gregorian') 229 198 write(lunout,*)'CALENDRIER CHOISI: Terrestre bissextile' … … 321 290 322 291 C 323 C on remet le calendrier àzero si demande292 C on remet le calendrier \`a zero si demande 324 293 c 325 294 IF (start_time /= starttime) then 326 295 WRITE(lunout,*)' GCM: Attention l''heure de depart lue dans le' 327 &,' fichier restart ne correspond pas àcelle lue dans le run.def'296 &,' fichier restart ne correspond pas a celle lue dans le run.def' 328 297 IF (raz_date == 1) then 329 298 WRITE(lunout,*)'Je prends l''heure lue dans run.def' … … 431 400 c Initialisation de la physique : 432 401 c ------------------------------- 433 IF (call_iniphys.and.(iflag_phys==1.or.iflag_phys>=100)) THEN 434 latfi(1)=rlatu(1) 435 lonfi(1)=0. 436 zcufi(1) = cu(1) 437 zcvfi(1) = cv(1) 438 DO j=2,jjm 439 DO i=1,iim 440 latfi((j-2)*iim+1+i)= rlatu(j) 441 lonfi((j-2)*iim+1+i)= rlonv(i) 442 zcufi((j-2)*iim+1+i) = cu((j-1)*iip1+i) 443 zcvfi((j-2)*iim+1+i) = cv((j-1)*iip1+i) 444 ENDDO 445 ENDDO 446 latfi(ngridmx)= rlatu(jjp1) 447 lonfi(ngridmx)= 0. 448 zcufi(ngridmx) = cu(ip1jm+1) 449 zcvfi(ngridmx) = cv(ip1jm-iim) 450 CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi) 451 452 WRITE(lunout,*) 453 . 'GCM: WARNING!!! vitesse verticale nulle dans la physique' 402 IF ((iflag_phys==1).or.(iflag_phys>=100)) THEN 454 403 ! Physics: 455 404 #ifdef CPP_PHYS 456 CALL iniphysiq(ngridmx,llm,daysec,day_ini,dtphys/nsplit_phys, 457 & latfi,lonfi,airefi,zcufi,zcvfi,rad,g,r,cpp, 458 & iflag_phys) 459 #endif 460 call_iniphys=.false. 461 ENDIF ! of IF (call_iniphys.and.(iflag_phys==1.or.iflag_phys>=100)) 405 CALL iniphysiq(iim,jjm,llm,daysec,day_ini,dtphys/nsplit_phys, 406 & rlatu,rlonv,aire,cu,cv,rad,g,r,cpp, 407 & iflag_phys) 408 #endif 409 ENDIF ! of IF ((iflag_phys==1).or.(iflag_phys>=100)) 462 410 463 411 … … 547 495 548 496 c$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/,/logici/,/logicl/) 549 CALL leapfrog_loc(ucov,vcov,teta,ps,masse,phis,q,clesphy0, 550 . time_0) 497 CALL leapfrog_loc(ucov,vcov,teta,ps,masse,phis,q,time_0) 551 498 c$OMP END PARALLEL 552 499
Note: See TracChangeset
for help on using the changeset viewer.