6 SUBROUTINE conf_gcm( tapedef, etatinit, clesphy0 )
34 REAL clesphy0( longcles )
38 #include "dimensions.h"
42 #include "comdissnew.h"
54 CHARACTER ch1*72,ch2*72,ch3*72,ch4*12
55 REAL clonn,clatt,grossismxx,grossismyy
56 REAL dzoomxx,dzoomyy, tauxx,tauyy
57 LOGICAL fxyhypbb, ysinuss
59 LOGICAL use_filtre_fft
97 OPEN(
unit=
lunout,file=
'lmdz.out',action=
'write',
98 & status=
'unknown',form=
'formatted')
117 CALL
getin(
'planet_type',planet_type)
124 calend =
'earth_360d'
125 CALL
getin(
'calend', calend)
133 CALL
getin(
'dayref', dayref)
141 CALL
getin(
'anneeref',anneeref)
151 CALL
getin(
'raz_date', raz_date)
159 CALL
getin(
'nday',nday)
167 CALL
getin(
'starttime',starttime)
175 CALL
getin(
'day_step',day_step)
179 CALL
getin(
'nsplit_phys',nsplit_phys)
186 CALL
getin(
'iperiod',iperiod)
192 iapp_tracvl = iperiod
193 CALL
getin(
'iapp_tracvl',iapp_tracvl)
201 CALL
getin(
'iconser', iconser)
208 CALL
getin(
'iecri',iecri)
216 CALL
getin(
'periodav',periodav)
222 output_grads_dyn=.
false.
223 CALL
getin(
'output_grads_dyn',output_grads_dyn)
232 CALL
getin(
'dissip_period',dissip_period)
244 CALL
getin(
'lstardis',lstardis)
307 CALL
getin(
'dissip_zref',dissip_zref )
311 CALL
getin(
'iflag_top_bound',iflag_top_bound)
360 CALL
getin(
'iphysiq', iphysiq)
371 CALL
getin(
'ip_ebil_dyn',ip_ebil_dyn)
381 IF( etatinit ) go to 100
389 CALL
getin(
'clon',clonn)
397 CALL
getin(
'clat',clatt)
401 IF( abs(
clat - clatt).GE. 0.001 )
THEN
402 write(
lunout,*)
'conf_gcm: La valeur de clat passee par run.def',
403 &
' est differente de celle lue sur le fichier start '
413 CALL
getin(
'grossismx',grossismxx)
416 IF( abs(
grossismx - grossismxx).GE. 0.001 )
THEN
417 write(
lunout,*)
'conf_gcm: La valeur de grossismx passee par ',
418 &
'run.def est differente de celle lue sur le fichier start '
428 CALL
getin(
'grossismy',grossismyy)
430 IF( abs(
grossismy - grossismyy).GE. 0.001 )
THEN
431 write(
lunout,*)
'conf_gcm: La valeur de grossismy passee par ',
432 &
'run.def est differente de celle lue sur le fichier start '
438 &
'conf_gcm: *** ATTENTION !! grossismx < 1 . *** '
447 &
'conf_gcm: *** ATTENTION !! grossismy < 1 . *** '
465 CALL
getin(
'fxyhypb',fxyhypbb)
469 write(
lunout,*)
' ******** PBS DANS CONF_GCM ******** '
470 write(
lunout,*)
' *** fxyhypb lu sur le fichier start est ',
471 *
'F alors qu il est T sur run.def ***'
475 IF( .NOT.fxyhypbb )
THEN
476 write(
lunout,*)
' ******** PBS DANS CONF_GCM ******** '
477 write(
lunout,*)
' *** fxyhypb lu sur le fichier start est ',
478 *
'T alors qu il est F sur run.def **** '
489 CALL
getin(
'dzoomx',dzoomxx)
492 IF( abs(
dzoomx - dzoomxx).GE. 0.001 )
THEN
493 write(
lunout,*)
'conf_gcm: La valeur de dzoomx passee par ',
494 *
'run.def est differente de celle lue sur le fichier start '
505 CALL
getin(
'dzoomy',dzoomyy)
508 IF( abs(
dzoomy - dzoomyy).GE. 0.001 )
THEN
509 write(
lunout,*)
'conf_gcm: La valeur de dzoomy passee par ',
510 *
'run.def est differente de celle lue sur le fichier start '
520 CALL
getin(
'taux',tauxx)
523 IF( abs(
taux - tauxx).GE. 0.001 )
THEN
524 write(
lunout,*)
'conf_gcm: La valeur de taux passee par ',
525 *
'run.def est differente de celle lue sur le fichier start '
535 CALL
getin(
'tauy',tauyy)
538 IF( abs(tauy - tauyy).GE. 0.001 )
THEN
539 write(
lunout,*)
'conf_gcm: La valeur de tauy passee par ',
540 *
'run.def est differente de celle lue sur le fichier start '
555 CALL
getin(
'ysinus',ysinuss)
557 IF( .NOT.ysinus )
THEN
559 write(
lunout,*)
' ******** PBS DANS CONF_GCM ******** '
560 write(
lunout,*)
' *** ysinus lu sur le fichier start est F',
561 *
' alors qu il est T sur run.def ***'
565 IF( .NOT.ysinuss )
THEN
566 write(
lunout,*)
' ******** PBS DANS CONF_GCM ******** '
567 write(
lunout,*)
' *** ysinus lu sur le fichier start est T',
568 *
' alors qu il est F sur run.def **** '
580 CALL
getin(
'offline',offline)
590 CALL
getin(
'type_trac',type_trac)
600 CALL
getin(
'config_inca',config_inca)
608 CALL
getin(
'ok_dynzon',ok_dynzon)
616 CALL
getin(
'ok_dyn_ins',ok_dyn_ins)
624 CALL
getin(
'ok_dyn_ave',ok_dyn_ave)
626 write(
lunout,*)
' #########################################'
627 write(
lunout,*)
' Configuration des parametres du gcm: '
628 write(
lunout,*)
' planet_type = ', planet_type
629 write(
lunout,*)
' calend = ', calend
630 write(
lunout,*)
' dayref = ', dayref
631 write(
lunout,*)
' anneeref = ', anneeref
632 write(
lunout,*)
' nday = ', nday
633 write(
lunout,*)
' day_step = ', day_step
634 write(
lunout,*)
' iperiod = ', iperiod
635 write(
lunout,*)
' nsplit_phys = ', nsplit_phys
636 write(
lunout,*)
' iconser = ', iconser
637 write(
lunout,*)
' iecri = ', iecri
638 write(
lunout,*)
' periodav = ', periodav
639 write(
lunout,*)
' output_grads_dyn = ', output_grads_dyn
640 write(
lunout,*)
' dissip_period = ', dissip_period
641 write(
lunout,*)
' lstardis = ', lstardis
652 write(
lunout,*)
' iphysiq = ', iphysiq
653 write(
lunout,*)
' clonn = ', clonn
654 write(
lunout,*)
' clatt = ', clatt
657 write(
lunout,*)
' fxyhypbb = ', fxyhypbb
658 write(
lunout,*)
' dzoomxx = ', dzoomxx
659 write(
lunout,*)
' dzoomy = ', dzoomyy
660 write(
lunout,*)
' tauxx = ', tauxx
661 write(
lunout,*)
' tauyy = ', tauyy
662 write(
lunout,*)
' offline = ', offline
663 write(
lunout,*)
' type_trac = ', type_trac
664 write(
lunout,*)
' config_inca = ', config_inca
665 write(
lunout,*)
' ok_dynzon = ', ok_dynzon
666 write(
lunout,*)
' ok_dyn_ins = ', ok_dyn_ins
667 write(
lunout,*)
' ok_dyn_ave = ', ok_dyn_ave
707 &
'conf_gcm: *** ATTENTION !! grossismx < 1 . *** '
716 &
'conf_gcm: *** ATTENTION !! grossismy < 1 . *** '
764 CALL
getin(
'tauy',tauy)
773 CALL
getin(
'ysinus',ysinus)
781 CALL
getin(
'offline',offline)
791 CALL
getin(
'type_trac',type_trac)
801 CALL
getin(
'config_inca',config_inca)
809 CALL
getin(
'ok_dynzon',ok_dynzon)
817 CALL
getin(
'ok_dyn_ins',ok_dyn_ins)
825 CALL
getin(
'ok_dyn_ave',ok_dyn_ave)
833 use_filtre_fft=.
false.
834 CALL
getin(
'use_filtre_fft',use_filtre_fft)
836 IF (use_filtre_fft)
THEN
838 write(
lunout,*)
'use_filtre_fft n est pas implemente dans dyn3d'
850 vert_prof_dissip = merge(1, 0,
ok_strato .and. llm==39)
851 CALL
getin(
'vert_prof_dissip', vert_prof_dissip)
852 call
assert(vert_prof_dissip == 0 .or. vert_prof_dissip == 1,
853 $
"bad value for vert_prof_dissip")
860 ok_gradsfile = .
false.
861 CALL
getin(
'ok_gradsfile',ok_gradsfile)
885 write(
lunout,*)
' #########################################'
886 write(
lunout,*)
' Configuration des parametres de cel0'
888 write(
lunout,*)
' planet_type = ', planet_type
889 write(
lunout,*)
' calend = ', calend
890 write(
lunout,*)
' dayref = ', dayref
891 write(
lunout,*)
' anneeref = ', anneeref
892 write(
lunout,*)
' nday = ', nday
893 write(
lunout,*)
' day_step = ', day_step
894 write(
lunout,*)
' iperiod = ', iperiod
895 write(
lunout,*)
' iconser = ', iconser
896 write(
lunout,*)
' iecri = ', iecri
897 write(
lunout,*)
' periodav = ', periodav
898 write(
lunout,*)
' output_grads_dyn = ', output_grads_dyn
899 write(
lunout,*)
' dissip_period = ', dissip_period
900 write(
lunout,*)
' lstardis = ', lstardis
911 write(
lunout,*)
' iphysiq = ', iphysiq
920 write(
lunout,*)
' tauy = ', tauy
921 write(
lunout,*)
' offline = ', offline
922 write(
lunout,*)
' type_trac = ', type_trac
923 write(
lunout,*)
' config_inca = ', config_inca
924 write(
lunout,*)
' ok_dynzon = ', ok_dynzon
925 write(
lunout,*)
' ok_dyn_ins = ', ok_dyn_ins
926 write(
lunout,*)
' ok_dyn_ave = ', ok_dyn_ave
928 write(
lunout,*)
' ok_gradsfile = ', ok_gradsfile