copyright (C) 2001 MSC-RPN COMM %%%MC2%%%subroutine phyctrl (prout,status) 2,3 implicit none * logical prout integer status * * ########################################## * # Initialization of controle parameters # * # (see MC2 user guide for descriptions) # * ########################################## * #include "lcldim.cdk"
#include "physnml.cdk"
#include "physcom.cdk"
#include "yomdyn.cdk"
#include "partopo.cdk"
#include "path.cdk"
#include "lun.cdk"
#include "grd.cdk"
* character*8 dumc character*10 nmlname integer unnml,pnerrdirf,pnflag1,pnflag2,i,nfold,status2,status3, $ longueur data unnml /11/ * *---------------------------------------------------------------------- status = -1 status2 = -1 status3 = -1 nmlname = 'physics' pfbtyp ='prosplit' * if (.not.modrstrt) then radia ='newrad' radftp ='STD' fluvert ='clef' schmsol ='fcrest' mixing ='BLAC62' convec ='oldkuo' stcond ='conds' gwdrag ='gwd86' shlcvt(1) ='conres' shlcvt(2) ='nil' dzsedi = -1. hrclip = -1. ktdflt = 0. as = 12. beta = 1. * mxadj = 20 kntrad = 6 moyhr = 0 nsloflux = 0 lheat = 1 runlgt =-1 * kfcmom_L= .true. * for phy41 kfctrig(1) = 0. kfctrig(2) = 0. kfctrig(3) = 0.05 kfctrig(4) = 0.05 c kfctrig(1) = 0.05 kfcrad = 1500. kfcdepth= 4000. kfcdlev = 0.5 kfcdet = 0. kfctimec= 3600. kfctimea= 3600. kkl = 0.1 kfcpcp = 'ORI' * hcad =0.6 hfad =1. hmad =1. * impflx = .false. rad_filter = .true. strato =.false. agregat =.true. incore =.true. advectke=.false. diffuw =.false. dbgmem =.false. evap =.true. wet =.true. satuco =.true. inilwc =.false. snowmelt=.false. stomate =.false. typsol =.false. bkgalb =.true. snoalb =.true. cortm =.false. drylaps =.true. * 210 * * Secondary switches only active with fluvert= SIMP * drag =.false. chauf=.true. * * *** Updating configuration with namelist pil_cfgs * open (unnml,file=nml,access='SEQUENTIAL', $ form='FORMATTED',status='OLD',iostat=pnerrdirf) if (pnerrdirf.ne.0) then print '(/,2x,a/2x,3a/)', '==> ABORT -- ABORT <==', $ 'FILE ',nml(1:longueur(nml)),' NOT FOUND' goto 9991 endif * rewind ( unnml ) read (unnml, nml=physics, end = 9120) write (6,601) nmlname * close (unnml) * call low2up (pfbtyp,dumc) gnpfb = 1 if (dumc.eq.'PROSPLIT') gnpfb = 1 if (dumc.eq.'GIRARD1' ) gnpfb = 2 if (diffuw) then write (6,101) 'diffuw = .t.' goto 9991 endif call low2up (shlcvt(1),dumc) shlcvt(1) = dumc call low2up (shlcvt(2),dumc) shlcvt(2) = dumc Grdc_initsfc_L = .false. 101 format (/1x,'OPTION: ',a,' NEVER BEEN FULLY TESTED'/) * status2 = 1 * else * print '(1x,a/1x,3a)', 'WARNING -- RESTART MODE', $ 'USING CONFIGURATION OF PREVIOUS RUN (',nmlname,')' call rphypar
(un_rstrt) call mod_rstrt
(un_rstrt,prout,status2,'PHY') * endif * call serctrl
(prout,status3) c call diactrl (prout,runlgt) * if ((status2.eq.1).and.(status3.eq.1)) status = 1 goto 9991 9120 write (6, 9150) nmlname,nml 9991 continue #if defined (NEC) || defined (HPPA) call flush (6) #endif *---------------------------------------------------------------------- 601 format (' CONFIGURATION UPDATED WITH NAMELIST ',a) 9150 format (/,2x,'==> ABORT -- ABORT <=='/2x,'NAMELIST ',a, $ ' NOT FOUND ON FILE ',a/) * return end *
subroutine rphypar (fnrstrt) 1 implicit none integer fnrstrt * *AUTHOR Michel Desgagne Jan 1994 * *REVISION * *LANGUAGE Fortran 77 * *OBJECT * Read physics configuration on a restart file * *FILES * unit= pnrstrt: restart file * *ARGUMENTS * NAMES I/O TYPE A/S DESCRIPTION * * pnrstrt I I S restart file unit * *IMPLICIT #include "physnml.cdk"
#include "physcom.cdk"
#include "grd.cdk"
* *MODULES * ** *---------------------------------------------------------------------- * read (fnrstrt) radia,fluvert,schmsol,convec,stcond, $ mxadj,kntrad,lheat,hcad,hfad,hmad,snoalb, $ dbgmem,evap,wet,gwdrag,advectke,diffuw, $ inilwc,snowmelt,stomate,typsol,satuco,drag, $ chauf,incore,radftp,rad_filter,impflx, $ hrclip,gnpfb,shlcvt,moyhr,nsloflux,ktdflt,dzsedi, $ mixing,kfcmom_l,kfctrig,kfcrad,kfcdepth,kfcdlev, $ kfcdet,kfctimec,kfctimea,agregat,bkgalb,drylaps, $ as,beta,kfcpcp,kkl,strato,Grdc_initsfc_L * *---------------------------------------------------------------------- return end *
subroutine wphypar (fnrstrt) 1,1 implicit none integer fnrstrt * *AUTHOR Michel Desgagne Jan 1994 * *REVISION * *LANGUAGE Fortran 77 * *OBJECT * Write physics configuration on a restart file * *FILES * unit= pnrstrt: restart file * *ARGUMENTS * NAMES I/O TYPE A/S DESCRIPTION * * pnrstrt I I S restart file unit * *IMPLICIT #include "physnml.cdk"
#include "physcom.cdk"
#include "partopo.cdk"
#include "grd.cdk"
* *MODULES * ** *---------------------------------------------------------------------- * write (fnrstrt) radia,fluvert,schmsol,convec,stcond, $ mxadj,kntrad,lheat,hcad,hfad,hmad,snoalb, $ dbgmem,evap,wet,gwdrag,advectke,diffuw, $ inilwc,snowmelt,stomate,typsol,satuco,drag, $ chauf,incore,radftp,rad_filter,impflx, $ hrclip,gnpfb,shlcvt,moyhr,nsloflux,ktdflt,dzsedi, $ mixing,kfcmom_l,kfctrig,kfcrad,kfcdepth,kfcdlev, $ kfcdet,kfctimec,kfctimea,agregat,bkgalb,drylaps, $ as,beta,kfcpcp,kkl,strato,Grdc_initsfc_L * call wsercfg
(fnrstrt) c call wdiacfg (fnrstrt) * *---------------------------------------------------------------------- return end