Changeset 956 for LMDZ4/trunk
- Timestamp:
- May 9, 2008, 6:17:59 PM (17 years ago)
- Location:
- LMDZ4/trunk/libf
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/dyn3d/calfis.F
r644 r956 65 65 c Input : 66 66 c ------- 67 c ecritphy frequence d'ecriture (en jours)de histphy68 67 c pucov covariant zonal velocity 69 68 c pvcov covariant meridional velocity -
LMDZ4/trunk/libf/dyn3d/conf_gcm.F
r691 r956 33 33 #include "serre.h" 34 34 #include "comdissnew.h" 35 #include "clesphys.h" 35 36 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 37 ! #include "clesphys.h" 36 38 #include "iniprint.h" 37 39 c … … 288 290 CALL getin('iphysiq', iphysiq) 289 291 290 ccc .... P.Le Van, ajout le 03/01/96 pour l'ecriture phys ...291 c292 293 !Config Key = ecritphy294 !Config Desc = Frequence d'ecriture de la physique295 !Config Def = 1296 !Config Help = frequence de l'ecriture du fichier histphy297 !Config en jours.298 ecritphy = 1299 CALL getin('ecritphy',ecritphy)300 301 !Config Key = cycle_diurne302 !Config Desc = Cycle ddiurne303 !Config Def = y304 !Config Help = Cette option permet d'eteidre le cycle diurne.305 !Config Peut etre util pour accelerer le code !306 cycle_diurne = .TRUE.307 CALL getin('cycle_diurne',cycle_diurne)308 309 !Config Key = soil_model310 !Config Desc = Modele de sol311 !Config Def = y312 !Config Help = Choix du modele de sol (Thermique ?)313 !Config Option qui pourait un string afin de pouvoir314 !Config plus de choix ! Ou meme une liste d'options !315 soil_model = .TRUE.316 CALL getin('soil_model',soil_model)317 318 !Config Key = new_oliq319 !Config Desc = Nouvelle eau liquide320 !Config Def = y321 !Config Help = Permet de mettre en route la322 !Config nouvelle parametrisation de l'eau liquide !323 new_oliq = .TRUE.324 CALL getin('new_oliq',new_oliq)325 326 !Config Key = ok_orodr327 !Config Desc = Orodr ???328 !Config Def = y329 !Config Help = Y en a pas comprendre !330 !Config331 ok_orodr = .TRUE.332 CALL getin('ok_orodr',ok_orodr)333 334 !Config Key = ok_orolf335 !Config Desc = Orolf ??336 !Config Def = y337 !Config Help = Connais pas !338 ok_orolf = .TRUE.339 CALL getin('ok_orolf', ok_orolf)340 341 !Config Key = ok_limitvrai342 !Config Desc = Force la lecture de la bonne annee343 !Config Def = n344 !Config Help = On peut forcer le modele a lire le345 !Config fichier SST de la bonne annee. C'est une tres bonne346 !Config idee, pourquoi ne pas mettre toujours a y ???347 ok_limitvrai = .FALSE.348 CALL getin('ok_limitvrai',ok_limitvrai)349 350 !Config Key = nbapp_rad351 !Config Desc = Frequence d'appel au rayonnement352 !Config Def = 12353 !Config Help = Nombre d'appels des routines de rayonnements354 !Config par jour.355 nbapp_rad = 12356 CALL getin('nbapp_rad',nbapp_rad)357 358 !Config Key = iflag_con359 !Config Desc = Flag de convection360 !Config Def = 2361 !Config Help = Flag pour la convection les options suivantes existent :362 !Config 1 pour LMD,363 !Config 2 pour Tiedtke,364 !Config 3 pour CCM(NCAR)365 iflag_con = 2366 CALL getin('iflag_con',iflag_con)367 !368 292 !Config Key = ip_ebil_dyn 369 293 !Config Desc = PRINT level for energy conserv. diag. … … 381 305 clesphy0(i) = 0. 382 306 ENDDO 383 clesphy0(1) = FLOAT( iflag_con )384 clesphy0(2) = FLOAT( nbapp_rad )385 386 IF( cycle_diurne ) clesphy0(3) = 1.387 IF( soil_model ) clesphy0(4) = 1.388 IF( new_oliq ) clesphy0(5) = 1.389 IF( ok_orodr ) clesphy0(6) = 1.390 IF( ok_orolf ) clesphy0(7) = 1.391 IF( ok_limitvrai ) clesphy0(8) = 1.392 393 307 394 308 ccc .... P. Le Van , ajout le 7/03/95 .pour le zoom ... … … 617 531 write(lunout,*)' iflag_phys = ', iflag_phys 618 532 write(lunout,*)' iphysiq = ', iphysiq 619 write(lunout,*)' ecritphy = ', ecritphy620 write(lunout,*)' cycle_diurne = ', cycle_diurne621 write(lunout,*)' soil_model = ', soil_model622 write(lunout,*)' new_oliq = ', new_oliq623 write(lunout,*)' ok_orodr = ', ok_orodr624 write(lunout,*)' ok_orolf = ', ok_orolf625 write(lunout,*)' ok_limitvrai = ', ok_limitvrai626 write(lunout,*)' nbapp_rad = ', nbapp_rad627 write(lunout,*)' iflag_con = ', iflag_con628 533 write(lunout,*)' clonn = ', clonn 629 534 write(lunout,*)' clatt = ', clatt … … 773 678 write(lunout,*)' iflag_phys = ', iflag_phys 774 679 write(lunout,*)' iphysiq = ', iphysiq 775 write(lunout,*)' ecritphy = ', ecritphy776 write(lunout,*)' cycle_diurne = ', cycle_diurne777 write(lunout,*)' soil_model = ', soil_model778 write(lunout,*)' new_oliq = ', new_oliq779 write(lunout,*)' ok_orodr = ', ok_orodr780 write(lunout,*)' ok_orolf = ', ok_orolf781 write(lunout,*)' ok_limitvrai = ', ok_limitvrai782 write(lunout,*)' nbapp_rad = ', nbapp_rad783 write(lunout,*)' iflag_con = ', iflag_con784 680 write(lunout,*)' clonn = ', clonn 785 681 write(lunout,*)' clatt = ', clatt -
LMDZ4/trunk/libf/dyn3d/control.h
r792 r956 13 13 COMMON/control/nday,day_step, & 14 14 & iperiod,iapp_tracvl,iconser,iecri,idissip,iphysiq , & 15 & periodav, ecritphy,iecrimoy,dayref,anneeref,&15 & periodav,iecrimoy,dayref,anneeref, & 16 16 & raz_date,offline,ip_ebil_dyn 17 17 … … 19 19 & idissip,iphysiq,iecrimoy,dayref,anneeref, raz_date & 20 20 & ,ip_ebil_dyn 21 REAL periodav , ecritphy21 REAL periodav 22 22 logical offline 23 23 -
LMDZ4/trunk/libf/dyn3d/defrun.F
r524 r956 195 195 WRITE(tapeout,*) iphysiq 196 196 197 198 ccc .... P.Le Van, ajout le 03/01/96 pour l'ecriture phys ...199 c200 READ (tapedef,9001) ch1,ch4201 READ (tapedef,*) ecritphy202 WRITE(tapeout,9001) ch1,'ecritphy'203 WRITE(tapeout,*) ecritphy204 197 205 198 READ (tapedef,9001) ch1,ch4 -
LMDZ4/trunk/libf/dyn3d/gcm.F
r863 r956 9 9 USE IOIPSL 10 10 #endif 11 12 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 13 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 14 ! A nettoyer. On ne veut qu'une ou deux routines d'interface 15 ! dynamique -> physique pour l'initialisation 16 #ifdef CPP_PHYS 11 17 USE dimphy 12 18 USE comgeomphy 13 19 USE mod_phys_lmdz_para, ONLY : klon_mpi_para_nb 20 #endif 21 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 22 14 23 IMPLICIT NONE 15 24 … … 170 179 c T : on lit start.nc 171 180 c F : le modele s'autoinitialise avec un cas academique (iniacademic) 172 #ifdef CPP_IOIPSL173 181 read_start=.true. 182 #ifdef CPP_IOIPSL 183 #else 184 read_start=.false. 185 #endif 186 #ifdef CPP_PHYS 174 187 #else 175 188 read_start=.false. … … 197 210 #endif 198 211 212 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 213 ! FH 2008/05/02 214 ! A nettoyer. On ne veut qu'une ou deux routines d'interface 215 ! dynamique -> physique pour l'initialisation 216 #ifdef CPP_PHYS 199 217 CALL Init_Phys_lmdz(iim,jjp1,llm,nqmx-2,1,(jjm-1)*iim+2) 200 218 call InitComgeomphy 219 #endif 220 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 201 221 202 222 #ifdef INCA -
LMDZ4/trunk/libf/dyn3d/ini_paramLMDZ_dyn.h
r692 r956 153 153 . "once", dt_cum,dt_cum) 154 154 c 155 CALL histdef(nid_ctesGCM, "ecritphy",156 ."frequence de l ecriture du fichier histphy en jours",157 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,158 . "once", dt_cum,dt_cum)159 c160 CALL histdef(nid_ctesGCM, "cycle_diurne",161 ."Avoir un cycle diurne: 1=true, 0=false",162 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,163 . "once", dt_cum,dt_cum)164 c165 CALL histdef(nid_ctesGCM, "soil_model",166 ."Choix du modele de sol (Thermique ?): 1=true, 0=false",167 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,168 . "once", dt_cum,dt_cum)169 c170 CALL histdef(nid_ctesGCM, "new_oliq",171 ."Nouvelle eau liquide: 1=true, 0=false",172 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,173 . "once", dt_cum,dt_cum)174 c175 CALL histdef(nid_ctesGCM, "ok_orodr",176 ."Orography drag : 1=true, 0=false",177 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,178 . "once", dt_cum,dt_cum)179 c180 CALL histdef(nid_ctesGCM, "ok_orolf",181 ."Orography lift : 1=true, 0=false",182 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,183 . "once", dt_cum,dt_cum)184 c185 CALL histdef(nid_ctesGCM, "ok_limitvrai",186 ."Force la lecture de la bonne annee: 1=true, 0=false",187 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,188 . "once", dt_cum,dt_cum)189 c190 CALL histdef(nid_ctesGCM, "nbapp_rad",191 ."Nombre d appels des routines de rayonnements par jour",192 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,193 . "once", dt_cum,dt_cum)194 c195 CALL histdef(nid_ctesGCM, "iflag_con",196 ."Flag pour la convection: 1=LMD, 2=Tiedtke, 3=KE, 4=KE vect.",197 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,198 . "once", dt_cum,dt_cum)199 c200 155 CALL histdef(nid_ctesGCM, "clon", 201 156 ."longitude en degres du centre du zoom", -
LMDZ4/trunk/libf/dyn3d/leapfrog.F
r825 r956 63 63 #include "academic.h" 64 64 65 #include "clesphys.h" 65 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 66 ! #include "clesphys.h" 66 67 67 68 integer nq -
LMDZ4/trunk/libf/dyn3d/tetaleveli1j.F
r947 r956 5 5 c================================================================ 6 6 7 USE dimphy 7 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 8 ! USE dimphy 8 9 IMPLICIT none 9 10 -
LMDZ4/trunk/libf/dyn3d/tetaleveli1j1.F
r947 r956 5 5 c================================================================ 6 6 7 USE dimphy 7 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 8 ! USE dimphy 8 9 IMPLICIT none 9 10 -
LMDZ4/trunk/libf/dyn3d/write_paramLMDZ_dyn.h
r825 r956 1 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 2 ! Attention : il n'y a aucune raison pour ecrire ces constantes 3 ! comme des champs 2D. A corriger un jour ... 4 1 5 c 2 6 ndex2d = 0 … … 119 123 . zx_tmp_2d,iip1*jjp1,ndex2d) 120 124 c 121 zx_tmp_2d(1:iip1,1:jjp1)=ecritphy 122 CALL histwrite(nid_ctesGCM, "ecritphy", itau_w, 123 . zx_tmp_2d,iip1*jjp1,ndex2d) 124 c 125 IF(cycle_diurne) THEN 126 zx_tmp_2d(1:iip1,1:jjp1)=1. 127 ELSE 128 zx_tmp_2d(1:iip1,1:jjp1)=0. 129 ENDIF 130 CALL histwrite(nid_ctesGCM, "cycle_diurne", itau_w, 131 . zx_tmp_2d,iip1*jjp1,ndex2d) 132 c 133 IF(soil_model) THEN 134 zx_tmp_2d(1:iip1,1:jjp1)=1. 135 ELSE 136 zx_tmp_2d(1:iip1,1:jjp1)=0. 137 ENDIF 138 CALL histwrite(nid_ctesGCM, "soil_model", itau_w, 139 . zx_tmp_2d,iip1*jjp1,ndex2d) 140 c 141 IF(new_oliq) THEN 142 zx_tmp_2d(1:iip1,1:jjp1)=1. 143 ELSE 144 zx_tmp_2d(1:iip1,1:jjp1)=0. 145 ENDIF 146 CALL histwrite(nid_ctesGCM, "new_oliq", itau_w, 147 . zx_tmp_2d,iip1*jjp1,ndex2d) 148 c 149 IF(ok_orodr) THEN 150 zx_tmp_2d(1:iip1,1:jjp1)=1. 151 ELSE 152 zx_tmp_2d(1:iip1,1:jjp1)=0. 153 ENDIF 154 CALL histwrite(nid_ctesGCM, "ok_orodr", itau_w, 155 . zx_tmp_2d,iip1*jjp1,ndex2d) 156 c 157 IF(ok_orolf) THEN 158 zx_tmp_2d(1:iip1,1:jjp1)=1. 159 ELSE 160 zx_tmp_2d(1:iip1,1:jjp1)=0. 161 ENDIF 162 CALL histwrite(nid_ctesGCM, "ok_orolf", itau_w, 163 . zx_tmp_2d,iip1*jjp1,ndex2d) 164 c 165 IF(ok_limitvrai) THEN 166 zx_tmp_2d(1:iip1,1:jjp1)=1. 167 ELSE 168 zx_tmp_2d(1:iip1,1:jjp1)=0. 169 ENDIF 170 CALL histwrite(nid_ctesGCM, "ok_limitvrai", itau_w, 171 . zx_tmp_2d,iip1*jjp1,ndex2d) 172 c 173 zx_tmp_2d(1:iip1,1:jjp1)=nbapp_rad 174 CALL histwrite(nid_ctesGCM, "nbapp_rad", itau_w, 175 . zx_tmp_2d,iip1*jjp1,ndex2d) 176 c 177 zx_tmp_2d(1:iip1,1:jjp1)=iflag_con 178 CALL histwrite(nid_ctesGCM, "iflag_con", itau_w, 179 . zx_tmp_2d,iip1*jjp1,ndex2d) 125 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 126 ! FH 2008/05/02 127 ! La variable cycle_diurne n'est pas vue par la dynamique 128 ! IF(cycle_diurne) THEN 129 ! zx_tmp_2d(1:iip1,1:jjp1)=1. 130 ! ELSE 131 ! zx_tmp_2d(1:iip1,1:jjp1)=0. 132 ! ENDIF 133 ! CALL histwrite(nid_ctesGCM, "cycle_diurne", itau_w, 134 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 135 ! 136 ! IF(soil_model) THEN 137 ! zx_tmp_2d(1:iip1,1:jjp1)=1. 138 ! ELSE 139 ! zx_tmp_2d(1:iip1,1:jjp1)=0. 140 ! ENDIF 141 ! CALL histwrite(nid_ctesGCM, "soil_model", itau_w, 142 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 143 ! 144 ! IF(new_oliq) THEN 145 ! zx_tmp_2d(1:iip1,1:jjp1)=1. 146 ! ELSE 147 ! zx_tmp_2d(1:iip1,1:jjp1)=0. 148 ! ENDIF 149 ! CALL histwrite(nid_ctesGCM, "new_oliq", itau_w, 150 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 151 ! 152 ! IF(ok_orodr) THEN 153 ! zx_tmp_2d(1:iip1,1:jjp1)=1. 154 ! ELSE 155 ! zx_tmp_2d(1:iip1,1:jjp1)=0. 156 ! ENDIF 157 ! CALL histwrite(nid_ctesGCM, "ok_orodr", itau_w, 158 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 159 ! 160 ! IF(ok_orolf) THEN 161 ! zx_tmp_2d(1:iip1,1:jjp1)=1. 162 ! ELSE 163 ! zx_tmp_2d(1:iip1,1:jjp1)=0. 164 ! ENDIF 165 ! CALL histwrite(nid_ctesGCM, "ok_orolf", itau_w, 166 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 167 ! 168 ! IF(ok_limitvrai) THEN 169 ! zx_tmp_2d(1:iip1,1:jjp1)=1. 170 ! ELSE 171 ! zx_tmp_2d(1:iip1,1:jjp1)=0. 172 ! ENDIF 173 ! CALL histwrite(nid_ctesGCM, "ok_limitvrai", itau_w, 174 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 175 ! 176 ! zx_tmp_2d(1:iip1,1:jjp1)=nbapp_rad 177 ! CALL histwrite(nid_ctesGCM, "nbapp_rad", itau_w, 178 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 179 ! 180 ! zx_tmp_2d(1:iip1,1:jjp1)=iflag_con 181 ! CALL histwrite(nid_ctesGCM, "iflag_con", itau_w, 182 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 183 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 180 184 c 181 185 zx_tmp_2d(1:iip1,1:jjp1)=clon -
LMDZ4/trunk/libf/phy_IPCC_AR4/conf_phys.F90
r868 r956 92 92 REAL,SAVE :: cvl_corr_omp 93 93 LOGICAL,SAVE :: ok_lic_melt_omp 94 95 LOGICAL,SAVE :: cycle_diurne_omp,soil_model_omp,new_oliq_omp 96 LOGICAL,SAVE :: ok_orodr_omp, ok_orolf_omp, ok_limitvrai_omp 97 INTEGER, SAVE :: nbapp_rad_omp, iflag_con_omp 98 94 99 ! 95 100 ! … … 351 356 352 357 358 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 359 ! FH 2008/05/02 360 ! Constantes precedemment dans dyn3d/conf_gcm 361 362 !Config Key = cycle_diurne 363 !Config Desc = Cycle ddiurne 364 !Config Def = y 365 !Config Help = Cette option permet d'eteidre le cycle diurne. 366 !Config Peut etre util pour accelerer le code ! 367 cycle_diurne_omp = .TRUE. 368 CALL getin('cycle_diurne',cycle_diurne_omp) 369 370 !Config Key = soil_model 371 !Config Desc = Modele de sol 372 !Config Def = y 373 !Config Help = Choix du modele de sol (Thermique ?) 374 !Config Option qui pourait un string afin de pouvoir 375 !Config plus de choix ! Ou meme une liste d'options ! 376 soil_model_omp = .TRUE. 377 CALL getin('soil_model',soil_model_omp) 378 379 !Config Key = new_oliq 380 !Config Desc = Nouvelle eau liquide 381 !Config Def = y 382 !Config Help = Permet de mettre en route la 383 !Config nouvelle parametrisation de l'eau liquide ! 384 new_oliq_omp = .TRUE. 385 CALL getin('new_oliq',new_oliq_omp) 386 387 !Config Key = ok_orodr 388 !Config Desc = Orodr ??? 389 !Config Def = y 390 !Config Help = Y en a pas comprendre ! 391 !Config 392 ok_orodr_omp = .TRUE. 393 CALL getin('ok_orodr',ok_orodr_omp) 394 395 !Config Key = ok_orolf 396 !Config Desc = Orolf ?? 397 !Config Def = y 398 !Config Help = Connais pas ! 399 ok_orolf_omp = .TRUE. 400 CALL getin('ok_orolf_omp', ok_orolf_omp) 401 402 !Config Key = ok_limitvrai 403 !Config Desc = Force la lecture de la bonne annee 404 !Config Def = n 405 !Config Help = On peut forcer le modele a lire le 406 !Config fichier SST de la bonne annee. C'est une tres bonne 407 !Config idee, pourquoi ne pas mettre toujours a y ??? 408 ok_limitvrai_omp = .FALSE. 409 CALL getin('ok_limitvrai',ok_limitvrai_omp) 410 411 !Config Key = nbapp_rad 412 !Config Desc = Frequence d'appel au rayonnement 413 !Config Def = 12 414 !Config Help = Nombre d'appels des routines de rayonnements 415 !Config par jour. 416 nbapp_rad_omp = 12 417 CALL getin('nbapp_rad',nbapp_rad_omp) 418 419 !Config Key = iflag_con 420 !Config Desc = Flag de convection 421 !Config Def = 2 422 !Config Help = Flag pour la convection les options suivantes existent : 423 !Config 1 pour LMD, 424 !Config 2 pour Tiedtke, 425 !Config 3 pour CCM(NCAR) 426 iflag_con_omp = 2 427 CALL getin('iflag_con',iflag_con_omp) 428 429 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 353 430 !Config Key = epmax 354 431 !Config Desc = Efficacite precip … … 789 866 CFC12_ppt = CFC12_ppt_omp 790 867 RCFC12 = RCFC12_omp 868 869 870 cycle_diurne = cycle_diurne_omp 871 soil_model = soil_model_omp 872 new_oliq = new_oliq_omp 873 ok_orodr = ok_orodr_omp 874 ok_orolf = ok_orolf_omp 875 ok_limitvrai = ok_limitvrai_omp 876 nbapp_rad = nbapp_rad_omp 877 iflag_con = iflag_con_omp 878 879 791 880 epmax = epmax_omp 792 881 ok_adj_ema = ok_adj_ema_omp … … 878 967 write(numout,*)' cvl_corr=', cvl_corr 879 968 write(numout,*)'ok_lic_melt=', ok_lic_melt 969 write(numout,*)'cycle_diurne=',cycle_diurne 970 write(numout,*)'soil_model=',soil_model 971 write(numout,*)'new_oliq=',new_oliq 972 write(numout,*)'ok_orodr=',ok_orodr 973 write(numout,*)'ok_orolf=',ok_orolf 974 write(numout,*)'ok_limitvrai=',ok_limitvrai 975 write(numout,*)'nbapp_rad=',nbapp_rad 976 write(numout,*)'iflag_con=',iflag_con 880 977 write(numout,*)' epmax = ', epmax 881 978 write(numout,*)' ok_adj_ema = ', ok_adj_ema -
LMDZ4/trunk/libf/phy_IPCC_AR4/ini_histrac.h
r868 r956 23 23 24 24 zsto = pdtphys 25 zout = pdtphys * ecrit_tra 25 ! zout = pdtphys * ecrit_tra 26 zout = ecrit_tra 26 27 c 27 28 CALL histdef(nid_tra, "phis", "Surface geop. height", "-", -
LMDZ4/trunk/libf/phy_IPCC_AR4/phyetat0.F
r868 r956 7 7 . rlat_p, rlon_p, pctsrf_p, tsol_p, 8 8 . ocean_in, ok_veget_in, 9 . alb e_p, alblw_p,9 . alb1_p, alb2_p, 10 10 . rain_fall_p, snow_fall_p,solsw_p, sollw_p, 11 11 . radsol_p,clesphy0, … … 37 37 #include "clesphys.h" 38 38 #include "temps.h" 39 #include "thermcell.h" 40 #include "compbl.h" 39 41 c====================================================================== 40 42 CHARACTER*(*) fichnom … … 50 52 REAL qsol_p(klon) 51 53 REAL snow_p(klon,nbsrf) 52 REAL albe_p(klon,nbsrf) 53 cIM BEG alblw 54 REAL alblw_p(klon,nbsrf) 55 cIM END alblw 54 REAL alb1_p(klon,nbsrf) ! albedo in visible SW interval 55 REAL alb2_p(klon,nbsrf) ! albedo in near IR interval 56 56 REAL evap_p(klon,nbsrf) 57 57 REAL radsol_p(klon) … … 89 89 REAL qsol(klon_glo) 90 90 REAL snow(klon_glo,nbsrf) 91 REAL alb e(klon_glo,nbsrf)92 REAL alb lw(klon_glo,nbsrf)91 REAL alb1(klon_glo,nbsrf) 92 REAL alb2(klon_glo,nbsrf) 93 93 REAL evap(klon_glo,nbsrf) 94 94 REAL radsol(klon_glo) … … 127 127 c 128 128 INTEGER nid, nvarid 129 INTEGER ierr, i, nsrf, isoil 129 INTEGER ierr, i, nsrf, isoil ,k 130 130 INTEGER length 131 131 PARAMETER (length=100) … … 134 134 CHARACTER*7 str7 135 135 CHARACTER*2 str2 136 real iolat(jjm+1) 136 137 c FH1D 138 c real iolat(jjm+1) 139 real iolat(jjm+1-1/iim) 137 140 c 138 141 c Ouvrir le fichier contenant l'etat initial: … … 181 184 182 185 c 183 186 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 187 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 188 ! Les constantes de la physiques sont lues dans la physique seulement. 189 ! Les egalites du type 190 ! tab_cntrl( 5 )=clesphy0(1) 191 ! sont remplacees par 192 ! clesphy0(1)=tab_cntrl( 5 ) 193 ! On inverse aussi la logique. 194 ! On remplit les tab_cntrl avec les parametres lus dans les .def 195 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 196 184 197 DO i = 1, length 185 198 tabcntr0( i ) = tab_cntrl( i ) 186 199 ENDDO 187 200 c 188 cycle_diurne = .FALSE. 189 soil_model = .FALSE. 190 new_oliq = .FALSE. 191 ok_orodr = .FALSE. 192 ok_orolf = .FALSE. 193 ok_limitvrai = .FALSE. 194 195 196 IF( clesphy0(1).NE.tab_cntrl( 5 ) ) THEN 197 tab_cntrl( 5 ) = clesphy0(1) 198 ENDIF 199 200 IF( clesphy0(2).NE.tab_cntrl( 6 ) ) THEN 201 tab_cntrl( 6 ) = clesphy0(2) 202 ENDIF 203 204 IF( clesphy0(3).NE.tab_cntrl( 7 ) ) THEN 205 tab_cntrl( 7 ) = clesphy0(3) 206 ENDIF 207 208 IF( clesphy0(4).NE.tab_cntrl( 8 ) ) THEN 209 tab_cntrl( 8 ) = clesphy0(4) 210 ENDIF 211 212 IF( clesphy0(5).NE.tab_cntrl( 9 ) ) THEN 213 tab_cntrl( 9 ) = clesphy0( 5 ) 214 ENDIF 215 216 IF( clesphy0(6).NE.tab_cntrl( 10 ) ) THEN 217 tab_cntrl( 10 ) = clesphy0( 6 ) 218 ENDIF 219 220 IF( clesphy0(7).NE.tab_cntrl( 11 ) ) THEN 221 tab_cntrl( 11 ) = clesphy0( 7 ) 222 ENDIF 223 224 IF( clesphy0(8).NE.tab_cntrl( 12 ) ) THEN 225 tab_cntrl( 12 ) = clesphy0( 8 ) 226 ENDIF 227 228 229 dtime = tab_cntrl(1) 230 radpas = tab_cntrl(2) 201 tab_cntrl(1)=dtime 202 tab_cntrl(2)=radpas 231 203 co2_ppm_etat0 = tab_cntrl(3) 232 204 solaire_etat0 = tab_cntrl(4) 233 iflag_con = tab_cntrl(5) 234 nbapp_rad = tab_cntrl(6) 235 236 237 cycle_diurne = .FALSE. 238 soil_model = .FALSE. 239 new_oliq = .FALSE. 240 ok_orodr = .FALSE. 241 ok_orolf = .FALSE. 242 ok_limitvrai = .FALSE. 243 244 IF( tab_cntrl( 7) .EQ. 1. ) cycle_diurne = .TRUE. 245 IF( tab_cntrl( 8) .EQ. 1. ) soil_model = .TRUE. 246 IF( tab_cntrl( 9) .EQ. 1. ) new_oliq = .TRUE. 247 IF( tab_cntrl(10) .EQ. 1. ) ok_orodr = .TRUE. 248 IF( tab_cntrl(11) .EQ. 1. ) ok_orolf = .TRUE. 249 IF( tab_cntrl(12) .EQ. 1. ) ok_limitvrai = .TRUE. 205 tab_cntrl(5)=iflag_con 206 tab_cntrl(6)=nbapp_rad 207 208 if (cycle_diurne) tab_cntrl( 7) =1. 209 if (soil_model) tab_cntrl( 8) =1. 210 if (new_oliq) tab_cntrl( 9) =1. 211 if (ok_orodr) tab_cntrl(10) =1. 212 if (ok_orolf) tab_cntrl(11) =1. 213 if (ok_limitvrai) tab_cntrl(12) =1. 250 214 251 215 252 216 itau_phy = tab_cntrl(15) 217 218 219 220 IF( clesphy0(1).NE.tab_cntrl( 5 ) ) THEN 221 clesphy0(1)=tab_cntrl( 5 ) 222 ENDIF 223 224 IF( clesphy0(2).NE.tab_cntrl( 6 ) ) THEN 225 clesphy0(2)=tab_cntrl( 6 ) 226 ENDIF 227 228 IF( clesphy0(3).NE.tab_cntrl( 7 ) ) THEN 229 clesphy0(3)=tab_cntrl( 7 ) 230 ENDIF 231 232 IF( clesphy0(4).NE.tab_cntrl( 8 ) ) THEN 233 clesphy0(4)=tab_cntrl( 8 ) 234 ENDIF 235 236 IF( clesphy0(5).NE.tab_cntrl( 9 ) ) THEN 237 clesphy0(5)=tab_cntrl( 9 ) 238 ENDIF 239 240 IF( clesphy0(6).NE.tab_cntrl( 10 ) ) THEN 241 clesphy0(6)=tab_cntrl( 10 ) 242 ENDIF 243 244 IF( clesphy0(7).NE.tab_cntrl( 11 ) ) THEN 245 clesphy0(7)=tab_cntrl( 11 ) 246 ENDIF 247 248 IF( clesphy0(8).NE.tab_cntrl( 12 ) ) THEN 249 clesphy0(8)=tab_cntrl( 12 ) 250 ENDIF 251 253 252 254 253 c … … 721 720 ENDIF 722 721 c 723 c Lecture de albedo au sol:722 c Lecture de albedo de l'interval visible au sol: 724 723 c 725 724 ierr = NF_INQ_VARID (nid, "ALBE", nvarid) … … 739 738 ENDIF 740 739 #ifdef NC_DOUBLE 741 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, alb e(1,nsrf))742 #else 743 ierr = NF_GET_VAR_REAL(nid, nvarid, alb e(1,nsrf))740 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, alb1(1,nsrf)) 741 #else 742 ierr = NF_GET_VAR_REAL(nid, nvarid, alb1(1,nsrf)) 744 743 #endif 745 744 IF (ierr.NE.NF_NOERR) THEN … … 750 749 xmax = -1.0E+20 751 750 DO i = 1, klon_glo 752 xmin = MIN(alb e(i,nsrf),xmin)753 xmax = MAX(alb e(i,nsrf),xmax)751 xmin = MIN(alb1(i,nsrf),xmin) 752 xmax = MAX(alb1(i,nsrf),xmax) 754 753 ENDDO 755 754 PRINT*,'Albedo du sol ALBE**:', nsrf, xmin, xmax … … 759 758 PRINT*, ' J ignore donc les autres ALBE**' 760 759 #ifdef NC_DOUBLE 761 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, alb e(1,1))762 #else 763 ierr = NF_GET_VAR_REAL(nid, nvarid, alb e(1,1))760 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, alb1(1,1)) 761 #else 762 ierr = NF_GET_VAR_REAL(nid, nvarid, alb1(1,1)) 764 763 #endif 765 764 IF (ierr.NE.NF_NOERR) THEN … … 770 769 xmax = -1.0E+20 771 770 DO i = 1, klon_glo 772 xmin = MIN(alb e(i,1),xmin)773 xmax = MAX(alb e(i,1),xmax)771 xmin = MIN(alb1(i,1),xmin) 772 xmax = MAX(alb1(i,1),xmax) 774 773 ENDDO 775 774 PRINT*,'Neige du sol <ALBE>', xmin, xmax 776 775 DO nsrf = 2, nbsrf 777 776 DO i = 1, klon_glo 778 alb e(i,nsrf) = albe(i,1)779 ENDDO 780 ENDDO 781 ENDIF 782 783 c 784 c Lecture de albedo au sol LW:777 alb1(i,nsrf) = alb1(i,1) 778 ENDDO 779 ENDDO 780 ENDIF 781 782 c 783 c Lecture de albedo au sol dans l'interval proche infra-rouge: 785 784 c 786 785 ierr = NF_INQ_VARID (nid, "ALBLW", nvarid) … … 791 790 DO nsrf = 1, nbsrf 792 791 DO i = 1, klon_glo 793 alb lw(i,nsrf) = albe(i,nsrf)792 alb2(i,nsrf) = alb1(i,nsrf) 794 793 ENDDO 795 794 ENDDO … … 798 797 PRINT*, ' J ignore donc les autres ALBLW**' 799 798 #ifdef NC_DOUBLE 800 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, alb lw(1,1))801 #else 802 ierr = NF_GET_VAR_REAL(nid, nvarid, alb lw(1,1))799 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, alb2(1,1)) 800 #else 801 ierr = NF_GET_VAR_REAL(nid, nvarid, alb2(1,1)) 803 802 #endif 804 803 IF (ierr.NE.NF_NOERR) THEN … … 809 808 xmax = -1.0E+20 810 809 DO i = 1, klon_glo 811 xmin = MIN(alb lw(i,1),xmin)812 xmax = MAX(alb lw(i,1),xmax)810 xmin = MIN(alb2(i,1),xmin) 811 xmax = MAX(alb2(i,1),xmax) 813 812 ENDDO 814 813 PRINT*,'Neige du sol <ALBLW>', xmin, xmax 815 814 DO nsrf = 2, nbsrf 816 815 DO i = 1, klon_glo 817 alb lw(i,nsrf) = alblw(i,1)816 alb2(i,nsrf) = alb2(i,1) 818 817 ENDDO 819 818 ENDDO … … 1427 1426 1428 1427 c 1429 ierr = NF_INQ_VARID (nid, "QANCIEN", nvarid)1430 IF (ierr.NE.NF_NOERR) THEN1431 PRINT*, "phyetat0: Le champ <QANCIEN> est absent"1432 PRINT*, "Depart legerement fausse. Mais je continue"1433 ancien_ok = .FALSE.1434 ELSE1435 #ifdef NC_DOUBLE1436 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, q_ancien)1437 #else1438 ierr = NF_GET_VAR_REAL(nid, nvarid, q_ancien)1439 #endif1440 IF (ierr.NE.NF_NOERR) THEN1441 PRINT*, "phyetat0: Lecture echouee pour <QANCIEN>"1442 CALL abort1443 ENDIF1444 ENDIF1445 c1446 1428 c Lecture ratqs 1447 1429 c … … 1492 1474 xmax = MAXval(run_off_lic_0) 1493 1475 PRINT*,'(ecart-type) run_off_lic_0:', xmin, xmax 1494 c 1476 1477 1495 1478 c Fermer le fichier: 1496 1479 c … … 1503 1486 cym en attendant mieux 1504 1487 iolat(1)=rlat(1) 1505 iolat(jjm+1)=rlat(klon_glo) 1488 1489 !FH1D 1490 !iolat(jjm+1)=rlat(klon_glo) 1491 iolat(jjm+1-1/iim)=rlat(klon_glo) 1492 if (iim.gt.1) then 1506 1493 do i=2,jjm 1507 1494 iolat(i)=rlat(2+(i-2)*iim) 1508 1495 enddo 1496 endif 1497 1509 1498 CALL bcast_mpi(iolat) 1510 1499 CALL bcast_mpi(rlon) 1511 call init_iophy(iolat,rlon(2:iim+1)) 1500 1501 !FH1D 1502 ! call init_iophy(iolat,rlon(2:iim+1)) 1503 call init_iophy(iolat,rlon(2-1/iim:iim+1-1/iim)) 1512 1504 1513 1505 c$OMP END MASTER … … 1522 1514 call Scatter( qsol,qsol_p) 1523 1515 call Scatter( snow,snow_p) 1524 call Scatter( alb e,albe_p)1525 call Scatter( alb lw,alblw_p)1516 call Scatter( alb1,alb1_p) 1517 call Scatter( alb2,alb2_p) 1526 1518 call Scatter( evap,evap_p) 1527 1519 call Scatter( radsol,radsol_p) -
LMDZ4/trunk/libf/phy_IPCC_AR4/physiq.F
r868 r956 1582 1582 itaprad = 0 1583 1583 1584 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1585 ! FH 2008/05/02 changement lie a la lecture de nbapp_rad dans phylmd 1586 ! plutot que 1587 ! dyn3d 1588 ! Attention : la version precedente n'etait pas tres propre. 1589 ! Il se peut qu'il faille prendre une valeur differente de nbapp_rad 1590 ! pour obtenir le meme resultat. 1591 dtime=pdtphys 1592 radpas = NINT( 86400./dtime/nbapp_rad) 1593 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1594 1584 1595 CALL phyetat0 ("startphy.nc",dtime,co2_ppm_etat0,solaire_etat0, 1585 1596 . rlat,rlon,pctsrf, ftsol, … … 1601 1612 ENDDO 1602 1613 1603 radpas = NINT( 86400./dtime/nbapp_rad)1604 1614 c 1605 1615 C on remet le calendrier a zero -
LMDZ4/trunk/libf/phy_IPCC_AR4/phytrac.F
r868 r956 428 428 429 429 c jg: c'est ca qu'on veut????? 430 ecrit_tra = FLOAT(NINT(86400./pdtphys *ecritphy))431 print*,'dans phytrac ',pdtphys,ecrit phy,ecrit_tra430 ! ecrit_tra = FLOAT(NINT(86400./pdtphys *ecritphy)) 431 print*,'dans phytrac ',pdtphys,ecrit_tra 432 432 433 433 if(nbtr.lt.nqmax) then -
LMDZ4/trunk/libf/phylmd/conf_phys.F90
r955 r956 113 113 ! 114 114 ! 115 LOGICAL,SAVE :: cycle_diurne_omp,soil_model_omp,new_oliq_omp 116 LOGICAL,SAVE :: ok_orodr_omp, ok_orolf_omp, ok_limitvrai_omp 117 INTEGER, SAVE :: nbapp_rad_omp, iflag_con_omp 115 118 ! 116 119 … … 373 376 ! RCFC12 = 2.020102726958923E-09 374 377 !OK call getin('RCFC12', RCFC12) 378 379 380 381 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 382 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 383 ! Constantes precedemment dans dyn3d/conf_gcm 384 385 !Config Key = cycle_diurne 386 !Config Desc = Cycle ddiurne 387 !Config Def = y 388 !Config Help = Cette option permet d'eteidre le cycle diurne. 389 !Config Peut etre util pour accelerer le code ! 390 cycle_diurne_omp = .TRUE. 391 CALL getin('cycle_diurne',cycle_diurne_omp) 392 393 !Config Key = soil_model 394 !Config Desc = Modele de sol 395 !Config Def = y 396 !Config Help = Choix du modele de sol (Thermique ?) 397 !Config Option qui pourait un string afin de pouvoir 398 !Config plus de choix ! Ou meme une liste d'options ! 399 soil_model_omp = .TRUE. 400 CALL getin('soil_model',soil_model_omp) 401 402 !Config Key = new_oliq 403 !Config Desc = Nouvelle eau liquide 404 !Config Def = y 405 !Config Help = Permet de mettre en route la 406 !Config nouvelle parametrisation de l'eau liquide ! 407 new_oliq_omp = .TRUE. 408 CALL getin('new_oliq',new_oliq_omp) 409 410 !Config Key = ok_orodr 411 !Config Desc = Orodr ??? 412 !Config Def = y 413 !Config Help = Y en a pas comprendre ! 414 !Config 415 ok_orodr_omp = .TRUE. 416 CALL getin('ok_orodr',ok_orodr_omp) 417 418 !Config Key = ok_orolf 419 !Config Desc = Orolf ?? 420 !Config Def = y 421 !Config Help = Connais pas ! 422 ok_orolf_omp = .TRUE. 423 CALL getin('ok_orolf_omp', ok_orolf_omp) 424 425 !Config Key = ok_limitvrai 426 !Config Desc = Force la lecture de la bonne annee 427 !Config Def = n 428 !Config Help = On peut forcer le modele a lire le 429 !Config fichier SST de la bonne annee. C'est une tres bonne 430 !Config idee, pourquoi ne pas mettre toujours a y ??? 431 ok_limitvrai_omp = .FALSE. 432 CALL getin('ok_limitvrai',ok_limitvrai_omp) 433 434 !Config Key = nbapp_rad 435 !Config Desc = Frequence d'appel au rayonnement 436 !Config Def = 12 437 !Config Help = Nombre d'appels des routines de rayonnements 438 !Config par jour. 439 nbapp_rad_omp = 12 440 CALL getin('nbapp_rad',nbapp_rad_omp) 441 442 !Config Key = iflag_con 443 !Config Desc = Flag de convection 444 !Config Def = 2 445 !Config Help = Flag pour la convection les options suivantes existent : 446 !Config 1 pour LMD, 447 !Config 2 pour Tiedtke, 448 !Config 3 pour CCM(NCAR) 449 iflag_con_omp = 2 450 CALL getin('iflag_con',iflag_con_omp) 451 452 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 375 453 !! 376 454 !! Constante solaire & Parametres orbitaux & taux gaz effet de serre END … … 932 1010 CFC12_ppt = CFC12_ppt_omp 933 1011 RCFC12 = RCFC12_omp 1012 1013 cycle_diurne = cycle_diurne_omp 1014 soil_model = soil_model_omp 1015 new_oliq = new_oliq_omp 1016 ok_orodr = ok_orodr_omp 1017 ok_orolf = ok_orolf_omp 1018 ok_limitvrai = ok_limitvrai_omp 1019 nbapp_rad = nbapp_rad_omp 1020 iflag_con = iflag_con_omp 1021 934 1022 epmax = epmax_omp 935 1023 ok_adj_ema = ok_adj_ema_omp … … 1035 1123 write(numout,*)' cvl_corr=', cvl_corr 1036 1124 write(numout,*)'ok_lic_melt=', ok_lic_melt 1125 write(numout,*)'cycle_diurne=',cycle_diurne 1126 write(numout,*)'soil_model=',soil_model 1127 write(numout,*)'new_oliq=',new_oliq 1128 write(numout,*)'ok_orodr=',ok_orodr 1129 write(numout,*)'ok_orolf=',ok_orolf 1130 write(numout,*)'ok_limitvrai=',ok_limitvrai 1131 write(numout,*)'nbapp_rad=',nbapp_rad 1132 write(numout,*)'iflag_con=',iflag_con 1037 1133 write(numout,*)' epmax = ', epmax 1038 1134 write(numout,*)' ok_adj_ema = ', ok_adj_ema -
LMDZ4/trunk/libf/phylmd/ini_histrac.h
r782 r956 23 23 24 24 zsto = pdtphys 25 zout = pdtphys *ecrit_tra25 zout = ecrit_tra 26 26 c 27 27 CALL histdef(nid_tra, "phis", "Surface geop. height", "-", -
LMDZ4/trunk/libf/phylmd/phyetat0.F
r937 r956 191 191 192 192 c 193 193 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 194 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 195 ! Les constantes de la physiques sont lues dans la physique seulement. 196 ! Les egalites du type 197 ! tab_cntrl( 5 )=clesphy0(1) 198 ! sont remplacees par 199 ! clesphy0(1)=tab_cntrl( 5 ) 200 ! On inverse aussi la logique. 201 ! On remplit les tab_cntrl avec les parametres lus dans les .def 202 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 203 194 204 DO i = 1, length 195 205 tabcntr0( i ) = tab_cntrl( i ) 196 206 ENDDO 197 207 c 198 cycle_diurne = .FALSE. 199 soil_model = .FALSE. 200 new_oliq = .FALSE. 201 ok_orodr = .FALSE. 202 ok_orolf = .FALSE. 203 ok_limitvrai = .FALSE. 204 205 206 IF( clesphy0(1).NE.tab_cntrl( 5 ) ) THEN 207 tab_cntrl( 5 ) = clesphy0(1) 208 ENDIF 209 210 IF( clesphy0(2).NE.tab_cntrl( 6 ) ) THEN 211 tab_cntrl( 6 ) = clesphy0(2) 212 ENDIF 213 214 IF( clesphy0(3).NE.tab_cntrl( 7 ) ) THEN 215 tab_cntrl( 7 ) = clesphy0(3) 216 ENDIF 217 218 IF( clesphy0(4).NE.tab_cntrl( 8 ) ) THEN 219 tab_cntrl( 8 ) = clesphy0(4) 220 ENDIF 221 222 IF( clesphy0(5).NE.tab_cntrl( 9 ) ) THEN 223 tab_cntrl( 9 ) = clesphy0( 5 ) 224 ENDIF 225 226 IF( clesphy0(6).NE.tab_cntrl( 10 ) ) THEN 227 tab_cntrl( 10 ) = clesphy0( 6 ) 228 ENDIF 229 230 IF( clesphy0(7).NE.tab_cntrl( 11 ) ) THEN 231 tab_cntrl( 11 ) = clesphy0( 7 ) 232 ENDIF 233 234 IF( clesphy0(8).NE.tab_cntrl( 12 ) ) THEN 235 tab_cntrl( 12 ) = clesphy0( 8 ) 236 ENDIF 237 238 239 dtime = tab_cntrl(1) 240 radpas = tab_cntrl(2) 208 tab_cntrl(1)=dtime 209 tab_cntrl(2)=radpas 241 210 co2_ppm_etat0 = tab_cntrl(3) 242 211 solaire_etat0 = tab_cntrl(4) 243 iflag_con = tab_cntrl(5) 244 nbapp_rad = tab_cntrl(6) 245 246 247 cycle_diurne = .FALSE. 248 soil_model = .FALSE. 249 new_oliq = .FALSE. 250 ok_orodr = .FALSE. 251 ok_orolf = .FALSE. 252 ok_limitvrai = .FALSE. 253 254 IF( tab_cntrl( 7) .EQ. 1. ) cycle_diurne = .TRUE. 255 IF( tab_cntrl( 8) .EQ. 1. ) soil_model = .TRUE. 256 IF( tab_cntrl( 9) .EQ. 1. ) new_oliq = .TRUE. 257 IF( tab_cntrl(10) .EQ. 1. ) ok_orodr = .TRUE. 258 IF( tab_cntrl(11) .EQ. 1. ) ok_orolf = .TRUE. 259 IF( tab_cntrl(12) .EQ. 1. ) ok_limitvrai = .TRUE. 212 tab_cntrl(5)=iflag_con 213 tab_cntrl(6)=nbapp_rad 214 215 if (cycle_diurne) tab_cntrl( 7) =1. 216 if (soil_model) tab_cntrl( 8) =1. 217 if (new_oliq) tab_cntrl( 9) =1. 218 if (ok_orodr) tab_cntrl(10) =1. 219 if (ok_orolf) tab_cntrl(11) =1. 220 if (ok_limitvrai) tab_cntrl(12) =1. 260 221 261 222 262 223 itau_phy = tab_cntrl(15) 224 225 226 227 IF( clesphy0(1).NE.tab_cntrl( 5 ) ) THEN 228 clesphy0(1)=tab_cntrl( 5 ) 229 ENDIF 230 231 IF( clesphy0(2).NE.tab_cntrl( 6 ) ) THEN 232 clesphy0(2)=tab_cntrl( 6 ) 233 ENDIF 234 235 IF( clesphy0(3).NE.tab_cntrl( 7 ) ) THEN 236 clesphy0(3)=tab_cntrl( 7 ) 237 ENDIF 238 239 IF( clesphy0(4).NE.tab_cntrl( 8 ) ) THEN 240 clesphy0(4)=tab_cntrl( 8 ) 241 ENDIF 242 243 IF( clesphy0(5).NE.tab_cntrl( 9 ) ) THEN 244 clesphy0(5)=tab_cntrl( 9 ) 245 ENDIF 246 247 IF( clesphy0(6).NE.tab_cntrl( 10 ) ) THEN 248 clesphy0(6)=tab_cntrl( 10 ) 249 ENDIF 250 251 IF( clesphy0(7).NE.tab_cntrl( 11 ) ) THEN 252 clesphy0(7)=tab_cntrl( 11 ) 253 ENDIF 254 255 IF( clesphy0(8).NE.tab_cntrl( 12 ) ) THEN 256 clesphy0(8)=tab_cntrl( 12 ) 257 ENDIF 258 263 259 264 260 c -
LMDZ4/trunk/libf/phylmd/physiq.F
r955 r956 1251 1251 print*,'iflag_coupl,iflag_clos,iflag_wake', 1252 1252 . iflag_coupl,iflag_clos,iflag_wake 1253 print*,'CYCLE_DIURNE', cycle_diurne 1253 1254 1254 1255 c … … 1266 1267 PRINT*, "Using method MELLOR&YAMADA" 1267 1268 endif 1269 1270 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1271 ! FH 2008/05/02 changement lie a la lecture de nbapp_rad dans phylmd plutot que 1272 ! dyn3d 1273 ! Attention : la version precedente n'etait pas tres propre. 1274 ! Il se peut qu'il faille prendre une valeur differente de nbapp_rad 1275 ! pour obtenir le meme resultat. 1276 dtime=pdtphys 1277 radpas = NINT( 86400./dtime/nbapp_rad) 1278 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1279 1268 1280 1269 1281 CALL phyetat0 ("startphy.nc",dtime,co2_ppm_etat0,solaire_etat0, … … 1293 1305 ENDDO 1294 1306 1295 radpas = NINT( 86400./dtime/nbapp_rad)1296 1307 c 1297 1308 C on remet le calendrier a zero -
LMDZ4/trunk/libf/phylmd/phytrac.F
r955 r956 273 273 274 274 C 275 C Variables liees a l'ecriture de la bande histoire : phytrac.nc276 c277 c INTEGER ecrit_tra278 c SAVE ecrit_tra279 280 275 logical ok_sync 281 276 parameter (ok_sync = .true.) … … 425 420 426 421 c jg: c'est ca qu'on veut????? 427 ecrit_tra = FLOAT(NINT(86400./pdtphys *ecritphy)) 428 print*,'dans phytrac ',pdtphys,ecritphy,ecrit_tra 422 ! FH 2008/05/09 correction de la frequence d'ecriture des traceurs 423 ! ecrit_tra = FLOAT(NINT(86400./pdtphys *ecritphy)) 424 print*,'dans phytrac ',pdtphys,ecrit_tra 429 425 430 426 if(nbtr.lt.nqmax) then -
LMDZ4/trunk/libf/phylmd/write_paramLMDZ_phy.h
r828 r956 139 139 . zx_tmp_2d,iim*jjmp1,ndex2d) 140 140 c 141 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 142 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 143 ! Mais est-il bien raisonable de stoker ces fichiers comme des 144 ! champs 2D... 145 ! WARNING : 146 ! Il faudrait ici ajoute l'ecriture des champs 147 ! cycle_diurne = cycle_diurne_omp 148 ! soil_model = soil_model_omp 149 ! new_oliq = new_oliq_omp 150 ! ok_orodr = ok_orodr_omp 151 ! ok_orolf = ok_orolf_omp 152 ! ok_limitvrai = ok_limitvrai_omp 153 ! nbapp_rad = nbapp_rad_omp 154 ! iflag_con = iflag_con_omp 155 ! qui se trouvaient auparavant dans gcm.def et maintenant dans 156 ! physiq.def. 157 ! Mais regarder d'abord a quoi ca sert ... 158 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 159 160 161 c 141 162 IF(ok_adj_ema) THEN 142 163 zx_tmp_2d(1:iim,1:jjmp1)=1.
Note: See TracChangeset
for help on using the changeset viewer.