4 SUBROUTINE conf_gcm( tapedef, etatinit )
26 LOGICAL,
INTENT(IN) :: etatinit
27 INTEGER,
INTENT(IN) :: tapedef
31 include
"dimensions.h"
35 include
"comdissnew.h"
43 CHARACTER ch1*72,ch2*72,ch3*72,ch4*12
44 REAL clonn,clatt,grossismxx,grossismyy
45 REAL dzoomxx,dzoomyy, tauxx,tauyy
46 LOGICAL fxyhypbb, ysinuss
85 OPEN(
unit=
lunout,file=
'lmdz.out',action=
'write', &
86 status=
'unknown',form=
'formatted')
112 calend =
'earth_360d'
113 CALL getin(
'calend', calend)
238 CALL getin(
'lstardis',lstardis)
298 CALL getin(
'dissip_zref',dissip_zref )
313 CALL getin(
'mode_top_bound',mode_top_bound)
378 test_etatinit:
IF (.not. etatinit)
then
385 CALL getin(
'clon',clonn)
393 CALL getin(
'clat',clatt)
395 IF( abs(
clat - clatt).GE. 0.001 )
THEN
396 write(
lunout,*)
'conf_gcm: La valeur de clat passee par run.def', &
397 ' est differente de celle lue sur le fichier start '
407 CALL getin(
'grossismx',grossismxx)
409 IF( abs(
grossismx - grossismxx).GE. 0.001 )
THEN
410 write(
lunout,*)
'conf_gcm: La valeur de grossismx passee par ', &
411 'run.def est differente de celle lue sur le fichier start '
421 CALL getin(
'grossismy',grossismyy)
423 IF( abs(
grossismy - grossismyy).GE. 0.001 )
THEN
424 write(
lunout,*)
'conf_gcm: La valeur de grossismy passee par ', &
425 'run.def est differente de celle lue sur le fichier start '
431 'conf_gcm: *** ATTENTION !! grossismx < 1 . *** '
439 'conf_gcm: *** ATTENTION !! grossismy < 1 . *** '
455 CALL getin(
'fxyhypb',fxyhypbb)
459 write(
lunout,*)
' ******** PBS DANS CONF_GCM ******** '
460 write(
lunout,*)
' *** fxyhypb lu sur le fichier start est ', &
461 'F alors qu il est T sur run.def ***'
465 IF( .NOT.fxyhypbb )
THEN
466 write(
lunout,*)
' ******** PBS DANS CONF_GCM ******** '
467 write(
lunout,*)
' *** fxyhypb lu sur le fichier start est ', &
468 'T alors qu il est F sur run.def **** '
479 CALL getin(
'dzoomx',dzoomxx)
482 IF( abs(
dzoomx - dzoomxx).GE. 0.001 )
THEN
483 write(
lunout,*)
'conf_gcm: La valeur de dzoomx passee par ', &
484 'run.def est differente de celle lue sur le fichier start '
495 CALL getin(
'dzoomy',dzoomyy)
498 IF( abs(
dzoomy - dzoomyy).GE. 0.001 )
THEN
499 write(
lunout,*)
'conf_gcm: La valeur de dzoomy passee par ', &
500 'run.def est differente de celle lue sur le fichier start '
510 CALL getin(
'taux',tauxx)
513 IF( abs(
taux - tauxx).GE. 0.001 )
THEN
514 write(
lunout,*)
'conf_gcm: La valeur de taux passee par ', &
515 'run.def est differente de celle lue sur le fichier start '
525 CALL getin(
'tauy',tauyy)
528 IF( abs(tauy - tauyy).GE. 0.001 )
THEN
529 write(
lunout,*)
'conf_gcm: La valeur de tauy passee par ', &
530 'run.def est differente de celle lue sur le fichier start '
545 CALL getin(
'ysinus',ysinuss)
547 IF( .NOT.ysinus )
THEN
549 write(
lunout,*)
' ******** PBS DANS CONF_GCM ******** '
550 write(
lunout,*)
' *** ysinus lu sur le fichier start est F', &
551 ' alors qu il est T sur run.def ***'
555 IF( .NOT.ysinuss )
THEN
556 write(
lunout,*)
' ******** PBS DANS CONF_GCM ******** '
557 write(
lunout,*)
' *** ysinus lu sur le fichier start est T', &
558 ' alors qu il est F sur run.def **** '
616 write(
lunout,*)
' #########################################'
617 write(
lunout,*)
' Configuration des parametres du gcm: '
619 write(
lunout,*)
' calend = ', calend
631 write(
lunout,*)
' lstardis = ', lstardis
643 write(
lunout,*)
' clonn = ', clonn
644 write(
lunout,*)
' clatt = ', clatt
647 write(
lunout,*)
' fxyhypbb = ', fxyhypbb
648 write(
lunout,*)
' dzoomxx = ', dzoomxx
649 write(
lunout,*)
' dzoomy = ', dzoomyy
650 write(
lunout,*)
' tauxx = ', tauxx
651 write(
lunout,*)
' tauyy = ', tauyy
693 'conf_gcm: *** ATTENTION !! grossismx < 1 . *** '
700 write(
lunout,*)
'conf_gcm: ***ATTENTION !! grossismy < 1 . *** '
748 CALL getin(
'tauy',tauy)
757 CALL getin(
'ysinus',ysinus)
820 CALL getin(
'vert_prof_dissip', vert_prof_dissip)
821 call assert(vert_prof_dissip == 0 .or. vert_prof_dissip == 1, &
822 "bad value for vert_prof_dissip")
829 ok_gradsfile = .
false.
830 CALL getin(
'ok_gradsfile',ok_gradsfile)
848 write(
lunout,*)
' #########################################'
849 write(
lunout,*)
' Configuration des parametres de cel0' &
852 write(
lunout,*)
' calend = ', calend
863 write(
lunout,*)
' lstardis = ', lstardis
883 write(
lunout,*)
' tauy = ', tauy
891 write(
lunout,*)
' ok_gradsfile = ', ok_gradsfile
!$Header!c!c!c include serre h!c REAL dzoomy
!$Header!c!c!c include serre h!c REAL alphax
integer, save iapp_tracvl
!$Id mode_top_bound COMMON comconstr omeg dissip_factz
character(len=4), save config_inca
!$Header!c!c!c include serre h!c REAL && grossismx
!$Header!c!c!c include serre h!c REAL clon
!$Id ysinus ok_gradsfile ok_limit
character(len=10), save planet_type
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
!$Id ysinus ok_gradsfile hybrid COMMON logici iflag_phys
!$Id mode_top_bound COMMON comconstr omeg dissip_zref tau_top_bound
logical, save output_grads_dyn
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
!$Id ysinus ok_gradsfile ok_etat0
integer, save dissip_period
!FH On elimine toutes les clefs physiques dans la dynamique prt_level
subroutine conf_gcm(tapedef, etatinit)
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
character(len=4), save type_trac
!$Id ysinus ok_gradsfile hybrid COMMON logici iflag_trac LOGICAL purmats
!$Header!c!c!c include serre h!c REAL dzoomx
!$Id mode_top_bound COMMON comconstr omeg dissip_deltaz
!$Header!c!c!c include serre h!c REAL grossismy
!$Header!c!c!c include serre h!c REAL taux
integer, save nsplit_phys
!$Header!INCLUDE comdissip h COMMON comdissip tetatemp
integer, save ip_ebil_dyn
!$Header!c!c!c include serre h!c REAL clat
!$Header!c!c!c include serre h!c REAL alphay
!$Header!integer nvarmx s s unit
!$Header!gestion des impressions de sorties et de débogage la sortie standard prt_level COMMON comprint lunout
!$Header!INCLUDE comdissip h COMMON comdissip coefdis